Controls

FlyingControls

Контролы полёта позволяют камере двигаться по сцене подобно самолёту.

Конструктор

FlyingControls(object, domElement)

object
Камера, которой необходимо управлять (обязательный).
domElement
Элемент HTML, используемый для прослушивания событий (необ.). По умолчанию это весь документ, однако если вы хотите, чтобы элементы управления работали только над определенным элементом (например, холстом), вы можете указать его здесь.

Свойства

.domElement : HTMLElement

HTML-элемент, используемый для прослушивания событий мыши/тачскрина. Он должен быть передан в конструкторе; изменение его здесь не приведет к установке новых обработчиков событий. По умолчанию используется весь документ.

.enabled : Boolean

Включены ли элементы управления или нет.

.enableCtrlZoom : Boolean

Установите в true, чтобы осуществлять зум только при нажатой клавише ctrl (подобно тому как это сделано в Google Maps). По умолчанию false.

.enableDamping : Boolean

Установите значение true, чтобы включить демпфирование (инерцию), которое можно использовать для придания чувства веса элементам управления. По умолчанию установлено значение true.

Обратите внимание, что если эта функция включена, необходимо вызвать .update() в цикле анимации.

.enableKeys : Boolean

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

.enablePan : Boolean

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

.enableRotate : Boolean

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

Обратите внимание, что можно отключить одну ось, установив минимальное и максимальное значение полярного или азимутального углов в одно и то же значение, что приведет к фиксации вертикального или горизонтального вращения.

.enableZoom : Boolean

Включает или отключает зум (dollying) камеры. По умолчанию true.

.inTween : Boolean

Флаг, указывающий, находится ли камера в режиме автоматического наведения (tweening).

.maxAzimuthAngle : Float

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

.maxDistance : Float

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

.maxPolarAngle : Float

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

.maxZoom : Float

Насколько можно уменьшить масштаб изображения (только для OrthographicCamera). По умолчанию Infinity (бесконечность).

.minAzimuthAngle : Float

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

.minDistance : Float

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

.minPolarAngle : Float

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

.minZoom : Float

Насколько сильно можно увеличить масштаб изображения (только для OrthographicCamera). По умолчанию 0.

.mouseButtons : Object

Этот объект содержит ссылки на кнопки мыши, используемые для управления.

controls.mouseButtons = { ROTATE: v3d.MOUSE.LEFT, ZOOM: v3d.MOUSE.MIDDLE, PAN: v3d.MOUSE.RIGHT }

.object : Camera

Управляемая камера.

.panInertia : Float

Инерция панорамирования, используемая если .enableDamping установлен в true. Обратите внимание, что для работы данной функции необходимо вызвать .update() в цикле анимации. По умолчанию 0.05.

.panSpeed : Float

Скорость панорамирования. По умолчанию 20.0.

.panSpeedKey : Float

Скорость панорамирования (количество пикселей) при использовании курсорных клавиш клавиатуры. По умолчанию 0.4.

.panSpeedTouch : Float

Скорость панорамирования (количество пикселей) на устройствах с тачскрином. По умолчанию 15.0.

.rotateInertia : Float

Инерция вращения, используемая если .enableDamping установлен в true. Обратите внимание, что для работы данной функции необходимо вызвать .update() в цикле анимации. По умолчанию 0.05.

.rotateInertiaTouch : Float

Аналогично .rotateInertia, но используется на устройствах с тачскрином. По умолчанию 0.05.

.rotateSpeed : Float

Скорость вращения. По умолчанию 0.9.

.rotateSpeedTouch : Float

Скорость вращения при использовании такскринов. По умолчанию 0.75.

.zoomSpeed : Float

Скорость зума/приближения. По умолчанию 150.0.

.zoomSpeedKey : Float

Скорость зума/приближения при использовании курсорных клавиш клавиатуры. По умолчанию 0.5.

.zoomSpeedTouch : Float

Скорость зума/приближения на устройствах с тачскрином. По умолчанию 20.0.

.zoomInertia : Float

Инерция зума, используемая если .enableDamping установлен в true. Обратите внимание, что для работы данной функции необходимо вызвать .update() в цикле анимации. По умолчанию 0.05.

.zoomInertiaTouch : Float

Аналогично .zoomInertia, но используется на устройствах с тачскрином. По умолчанию 0.05.

Методы

.dispose()

Удаляет все обработчики событий.

.tween(toPosition : Vector3, toTarget : Vector3, time : Float, finishCb : Function, movementType : Constant)

toPosition
Новое положение камеры.
toTarget
Новая целевая точка.
time
Длина анимации перемещения.
finishCb
Функция обратного вызова, которая будет вызвана после завершения анимации перемещения.
movementType
Интерполяция движения. Может быть v3d.TweenLinear (по умолчанию) или v3d.TweenSpherical.

Запускает автоматическое изменение текущего положения камеры и целевой точки на указанное новое положение и цель в течение указанного времени.

.tweenZoomTo(toTarget : Vector3, toZoom : Float, time : Float, finishCb : Function)

toTarget
Новое положение камеры.
toZoom
Новое значение зума.
time
Длина анимации перемещения.
finishCb
Функция обратного вызова, которая будет вызвана после завершения анимации перемещения.

Плавно изменяет целевую точку и зум ортографической камеры в течение указанного времени.

.update() → Boolean

Обновить элементы управления. Должно вызываться после любого ручного изменения трансформации камеры, или в цикле обновления, если установлены .autoRotate или .enableDamping.

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

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