ControlSettings - Руководство по Вердж3Д - Софт Эйт Софт
Description: Узнайте как использовать ControlSettings в интерактивных 3Д-веб-приложениях сделанных на Вердж3Д

# ControlSettings

Класс для хранения и применения настроек управления камерой («контролов»).

## Пример

`const aspect = app.container.offsetWidth / app.container.offsetHeight; const camera = new v3d.PerspectiveCamera(45, aspect, 1, 1000); camera.position.z = -5; camera.controlSettings = new v3d.ControlSettings('ORBIT'); app.scene.add(camera); // устанавливает активную камеру и назначает контролы в приложении app.setCamera(camera);`

## Конструктор

### ControlSettings(type : String, enablePan : Boolean, rotateSpeed : Float, moveSpeed : Float)

- type — тип контролов: `'ORBIT'`, `'FIRST_PERSON'` или `'FLYING'`. Необязательный, по умолчанию `'ORBIT'`.
- enablePan — create camera controls with panning enabled. Необязательный, по умолчанию `'true'`.
- rotateSpeed — camera rotation speed. Необязательный, по умолчанию `1`.
- moveSpeed — camera movement speed. Необязательный, по умолчанию `1`.

Создаёт новый объект с настройками управления камерой.

## Свойства

### # .enableKeys : Boolean

Включает или выключает возможность управления с клавиатуры. По умолчанию `true`.

### # .enablePan : Boolean

Включает или выключает панорамирование камеры. По умолчанию `true`.

### # .enableRotate : Boolean

Включает или выключает горизонтальный и вертикальный поворот камеры. По умолчанию `true`.

### # .enableZoom : Boolean

Включает или выключает зум (или движение вперёд-назад) камеры.

### # .moveSpeed : Float

Фактор скорости перемещения. При назначении настроек на объекте контролов, будет влиять одновременно на панорамирование и зум. По умолчанию `1`.

### # .orbitEnableTurnover : Boolean

Включает или выключает возможность поворота камеры через голову. По умолчанию `false`.

### # .orbitMaxAzimuthAngle : Float

Как сильно можно крутить орбитальную камеру по горизонтали (верхний лимит). Допустимый диапазон: от `-Math.PI` до `Math.PI` (или `Infinity` для отключения лимита). По умолчанию `Infinity`;

### # .orbitMaxDistance : Float

Как сильно можно отдалять орбитальную камеру (только для перспективных камер). По умолчанию `Infinity`.

### # .orbitMaxPolarAngle : Float

Как сильно можно крутить камеру по вертикали (верхний лимит). Допустимый диапазон: от `0` до `Math.PI` радиан, по умолчанию `Math.PI`.

### # .orbitMaxZoom : Float

Максимальный зум (только для ортогональных камер). По умолчанию `Infinity`.

### # .orbitMinAzimuthAngle : Float

Как сильно можно крутить орбитальную камеру по горизонтали (нижний лимит). Допустимый диапазон: от `-Math.PI` to `Math.PI` (или `-Infinity` для отключения лимита). По умолчанию `-Infinity`;

### # .orbitMinDistance : Float

Как сильно можно приближать орбитальную камеру (только для перспективных камер). По умолчанию `0`.

### # .orbitMinPolarAngle : Float

Как сильно можно крутить камеру по вертикали (нижний лимит). Допустимый диапазон: от `0` до `Math.PI` радиан, по умолчанию `0`.

### # .orbitMinZoom : Float

Минимальный зум (только для ортогональных камер). По умолчанию `0`.

### # .rotateSpeed : Float

Коэффициент скорости вращения. По умолчанию `1`.

### # .screenSpacePanning : Boolean

Определяет, как меняется положение камеры при панорамировании. Если `true`, камера движется в пространстве экрана. В противном случае камера движется в плоскости, ортогональной направлению вектора up камеры. По умолчанию `true`.

### # .type : String

Тип контролов: `"ORBIT"`, `"FIRST_PERSON"` или `"FLYING"`.

## Методы

### # .assignToControls(controls : Controls, scene : Scene)

- controls — объект контролов, например OrbitControls.
- scene — сцена, на которой будут применяться настройки контролов, только для FirstPersonControls.

Назначает настройки контролов на объект контролов.

### # .clone() → ControlSettings

Клонирует настройки контролов.

### # .copy(source : ControlSettings) → ControlSettings

Копирует настройки контролов.

## Исходный файл

О том как получить исходный код этого модуля читайте тут.