# Class: CameraOrbitControl

## Hierarchy

- [`Component`](Component)

  ↳ **`CameraOrbitControl`**

## Table of contents

### Constructors

- constructor

### Events

- onAdd
- onRelease
- onRemove
- onTick
- onUpdate

### Properties

- dampingFactor
- enableDamping
- isEnabled
- isLockMove
- isLockRotate
- isLockX
- isLockY
- isLockZoom
- panMax
- panMin
- panSpeed
- priority
- rotateSpeed
- schema
- zoomMax
- zoomMin
- zoomSpeed
- EVENTS

### Accessors

- damping
- el
- scene
- target
- version

### Methods

- disable
- enable
- getData
- setData
- setDataOne

## Constructors

### constructor

• **new CameraOrbitControl**()

#### Inherited from

[Component](Component).[constructor](Component#constructor)

## Events

### onAdd

▸ **onAdd**(`parent`, `data`): `void`

添加到世界，继承请先`super.onAdd()`。

#### Parameters

| Name | Type |
| :------ | :------ |
| `parent` | [`Element`](Element) |
| `data` | [`ICameraOrbitControlData`](/miniprogram/dev/reference/xr-frame/api/interfaces/ICameraOrbitControlData) |

#### Returns

`void`

#### Inherited from

[Component](Component).[onAdd](Component#onAdd)

___

### onRelease

▸ **onRelease**(`data`): `void`

从被挂载的`element`上被移除，或是`element`被销毁时，触发的回调。
一般用于释放持有的资源。

#### Parameters

| Name | Type |
| :------ | :------ |
| `data` | [`ICameraOrbitControlData`](/miniprogram/dev/reference/xr-frame/api/interfaces/ICameraOrbitControlData) |

#### Returns

`void`

#### Inherited from

[Component](Component).[onRelease](Component#onRelease)

___

### onRemove

▸ **onRemove**(): `void`

销毁，继承请先`super.onUpdate()`。

#### Returns

`void`

#### Inherited from

[Component](Component).[onRemove](Component#onRemove)

___

### onTick

▸ **onTick**(`deltaTime`, `data`): `void`

渲染每帧触发的回调。

#### Parameters

| Name | Type |
| :------ | :------ |
| `deltaTime` | `number` |
| `data` | [`ICameraOrbitControlData`](/miniprogram/dev/reference/xr-frame/api/interfaces/ICameraOrbitControlData) |

#### Returns

`void`

#### Inherited from

[Component](Component).[onTick](Component#onTick)

___

### onUpdate

▸ **onUpdate**(`data`): `void`

每一帧更新，继承请先`super.onUpdate()`。

#### Parameters

| Name | Type |
| :------ | :------ |
| `data` | [`ICameraOrbitControlData`](/miniprogram/dev/reference/xr-frame/api/interfaces/ICameraOrbitControlData) |

#### Returns

`void`

#### Inherited from

[Component](Component).[onUpdate](Component#onUpdate)

## Properties

### dampingFactor

• **dampingFactor**: `number` = `0.1`

阻尼系数。

___

### enableDamping

• **enableDamping**: `boolean` = `true`

开启阻尼缓动。

___

### isEnabled

• **isEnabled**: `boolean` = `false`

是否已经开启。

___

### isLockMove

• **isLockMove**: `boolean` = `false`

是否锁定移动。

___

### isLockRotate

• **isLockRotate**: `boolean` = `false`

是否锁定旋转。

___

### isLockX

• **isLockX**: `boolean` = `false`

是否锁定横向旋转。

___

### isLockY

• **isLockY**: `boolean` = `false`

是否锁定纵向旋转。

___

### isLockZoom

• **isLockZoom**: `boolean` = `false`

是否锁定缩放。

___

### panMax

• **panMax**: [`Vector3`](Vector3)

允许的最大平移边界。

___

### panMin

• **panMin**: [`Vector3`](Vector3)

允许的最小平移边界。

___

### panSpeed

• **panSpeed**: `number` = `1`

平移速度。

___

### priority

• `Readonly` **priority**: `number`

自定义组件的更新优先级。

#### Inherited from

[Component](Component).[priority](Component#priority)

___

### rotateSpeed

• **rotateSpeed**: `number` = `1`

旋转速度。

___

### schema

• `Readonly` **schema**: [`IComponentSchema`](/miniprogram/dev/reference/xr-frame/api/interfaces/IComponentSchema)

详见[CameraOrbitControlSchema](../modules#CameraOrbitControlSchema)。

#### Overrides

[Component](Component).[schema](Component#schema)

___

### zoomMax

• **zoomMax**: `number`

允许的最大缩放值。

___

### zoomMin

• **zoomMin**: `number` = `-Infinity`

允许的最小缩放值。

___

### zoomSpeed

• **zoomSpeed**: `number` = `1`

缩放速度。

___

### EVENTS

▪ `Static` **EVENTS**: `string`[] = `[]`

#### Inherited from

[Component](Component).[EVENTS](Component#EVENTS)

## Accessors

### damping

• `get` **damping**(): `boolean`

当前是否正在缓动。

#### Returns

`boolean`

___

### el

• `get` **el**(): [`Element`](Element)

挂载的元素。

#### Returns

[`Element`](Element)

___

### scene

• `get` **scene**(): [`Scene`](Scene)

当前场景。

#### Returns

[`Scene`](Scene)

___

### target

• `get` **target**(): [`Vector3`](Vector3)

获取当前目标。

#### Returns

[`Vector3`](Vector3)

___

### version

• `get` **version**(): `number`

当前版本，每次有数据更新都会增加，可以用作和其他组件合作的依据。

#### Returns

`number`

## Methods

### disable

▸ **disable**(): `void`

关闭控制器。

#### Returns

`void`

___

### enable

▸ **enable**(): `void`

启动控制器。

#### Returns

`void`

___

### getData

▸ **getData**(`key`): [`ICameraOrbitControlData`](/miniprogram/dev/reference/xr-frame/api/interfaces/ICameraOrbitControlData)[`T`]

获取一个当前值。

#### Type parameters

| Name | Type |
| :------ | :------ |
| `T` | extends keyof [`ICameraOrbitControlData`](/miniprogram/dev/reference/xr-frame/api/interfaces/ICameraOrbitControlData) |

#### Parameters

| Name | Type |
| :------ | :------ |
| `key` | `T` |

#### Returns

[`ICameraOrbitControlData`](/miniprogram/dev/reference/xr-frame/api/interfaces/ICameraOrbitControlData)[`T`]

#### Inherited from

[Component](Component).[getData](Component#getData)

___

### setData

▸ **setData**(`data`): `void`

不通过`xml`而是直接设置`data`，注意值的类型需要和`schema`中一致。

#### Parameters

| Name | Type |
| :------ | :------ |
| `data` | `Partial` |

#### Returns

`void`

#### Inherited from

[Component](Component).[setData](Component#setData)

___

### setDataOne

▸ **setDataOne**(`key`, `value`): `void`

设置一个数据。

#### Type parameters

| Name | Type |
| :------ | :------ |
| `T` | extends keyof [`ICameraOrbitControlData`](/miniprogram/dev/reference/xr-frame/api/interfaces/ICameraOrbitControlData) |

#### Parameters

| Name | Type |
| :------ | :------ |
| `key` | `T` |
| `value` | [`ICameraOrbitControlData`](/miniprogram/dev/reference/xr-frame/api/interfaces/ICameraOrbitControlData)[`T`] |

#### Returns

`void`

#### Inherited from

[Component](Component).[setDataOne](Component#setDataOne)
