ICameraControl

ICameraControl

ICameraControl – интерфейс, позволяющий взаимодействовать с контроллером камеры.

export interface ICameraControl {
  getCamera(): THREE.Camera;
  getCameraParameters(): CameraParameters;
  setCameraParameters(iParams: CameraParameters): void;
  setAspectRatio(width: number, heigth: number): boolean;

  rotate(movement: THREE.Vector2, rotationCenter: THREE.Vector3): void;
  translate(startNdcPos: THREE.Vector2, endNdcPos: THREE.Vector2, viewCenter: THREE.Vector3): void;
  spin(movement: THREE.Vector2): void;
  getCameraOrientation(): CameraOrientation;
  setCameraOrientation(iOrientation: CameraOrientation, isAnimationEnabled?: boolean): void;
  setViewCenter(viewCenter: THREE.Vector3): void;
  getViewCenter(): THREE.Vector3;
  zoomToPoint(deltaSign: number, point: THREE.Vector3): void;
  zoomToFit(bb: THREE.Box3, iOrientation?: CameraOrientation, isAnimationEnabled?: boolean): void;

  getNavigationMode(): CameraNavigationMode;
  setNavigationMode(mode: CameraNavigationMode, isEnable: boolean, duration?: number): void;
}

Методы

getCamera()

Метод позволяет получить камеру.

  getCamera(): THREE.Camera;

Возвращает объект камеры. Подробнее: THREE.Camera.

getCameraParameters()

Метод позволяет получить параметры камеры.

getCameraParameters(): CameraParameters;

Возвращает параметры камеры. Подробнее: CameraParameters.

setCameraParameters()

Метод позволяет задать параметры камеры.

  setCameraParameters(iParams: CameraParameters): void;

где:
iParams – параметры камеры. Подробнее: CameraParameters.

setAspectRatio()

Метод позволяет задать соотношение сторон камеры.

setAspectRatio(width: number, heigth: number): boolean;

где:
width – ширина изображения, может быть в любых величинах.
heigth – высота изображения, может быть в любых величинах.
Результирующе соотношение сторон равно width / heigth.
Возвращает true, если новое соотношение сторон отличается от предыдущего..

rotate()

Метод позволяет повернуть камеру вокруг точки вращения по круговой орбите.

rotate(movement: THREE.Vector2, rotationCenter: THREE.Vector3): void;

где:
movement – смещение в экранных координатах.
rotationCenter – точка, относительно которой осуществляется вращение камеры.

translate()

Метод позволяет переместить камеру по прямолинейной траектории относительно заданной точки.

translate(startNdcPos: THREE.Vector2, endNdcPos: THREE.Vector2, viewCenter: THREE.Vector3): void;

где:
startNdcPos – начальное положение в Normalized Device Coordinates (NDC пространство).
endNdcPos – конечное положение в Normalized Device Coordinates (NDC пространство).
viewCenter – точка, относительно которой осуществляется смещение камеры.

spin()

Метод позволяет повернуть камеру вокруг Up вектора камеры.

spin(movement: THREE.Vector2): void;

где:
movement – смещение в экранных координатах.

getCameraOrientation()

Метод позволяет получить ориентацию камеры в пространстве. Подробнее: CameraOrientation.

getCameraOrientation(): CameraOrientation;

setCameraOrientation()

Метод позволяет ориентировать камеру в пространстве, позиция камеры при этом не изменяется.

setCameraOrientation(iOrientation: CameraOrientation, isAnimationEnabled?: boolean): void;

где:
iOrientation – конечная ориентация камеры. Подробнее: CameraOrientation.
isAnimationEnabled – анимация при изменении ориентации, true – отключить анимацию, false – включить анимацию. По умолчанию анимация включена.

getViewCenter()

Метод позволяет получить положение точки взгляда. Подробнее: ViewCenter.

getViewCenter(): THREE.Vector3;

setViewCenter()

Метод позволяет задать положение точки взгляда. Подробнее: ViewCenter.

setViewCenter(viewCenter: THREE.Vector3): void;

где:
viewCenter – положение точки взгляда в мировом пространстве.

zoomToPoint()

Метод позволяет приблизить либо отдалить камеру относительно точки.

zoomToPoint(deltaSign: number, point: THREE.Vector3): void;

где:
deltaSign – дистанция приближения.
point – точка приближения.

zoomToFit()

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

zoomToFit(boundingBox: THREE.Box3, iOrientation?: CameraOrientation, isAnimationEnabled?: boolean): void;

где:
boundingBox – ограничивающий объем, относительно которого центрируется камера. Подробнее: THREE.Box3.
iOrientation – конечная ориентация камеры. По умолчанию сохраняется текущая ориентация камеры. Подробнее: CameraOrientation.
isAnimationEnabled – анимация при центрировании, true – отключить анимацию, false – включить анимацию. По умолчанию анимация включена.

getNavigationMode()

Метод позволяет получить тип навигации, осуществляемой над камерой.

getNavigationMode(): CameraNavigationMode;

Возвращает тип навигации камеры. Подробнее: CameraNavigationMode.

setNavigationMode()

Метод позволяет задать тип навигации камеры в пространстве.

setNavigationMode(mode: CameraNavigationMode, isEnable: boolean, duration?: number): void;

где:
mode – тип навигации камеры. Подробнее: CameraNavigationMode.
isEnable – активность.
duration – продолжительность навигации в миллисекундах. Параметр применяется только если isEnable == true.

Если isEnable == true, и определён duration, то по истечении задержки duration произойдет отключение заданного типа навигации. Эквивалентно вызову setNavigationMode(mode, false) после задержки duration.

Если во время ожидания происходит вызов setNavigationMode с любыми параметрами, то задержка сбрасывается и вызов setNavigationMode(mode, false) происходит немедленно, затем применяются новые параметры.