GizmoAxis
GizmoAxis
GizmoAxis – абстрактный класс, базовый для всех осей GizmoControl.
Каждая ось описывает свой тип манипуляций над контролом.
Примеры реализаций: GizmoTranslationAxis, GizmoRotationAxis, GizmoScaleAxis.
export class GizmoAxis extends THREE.Object3D<ViewObjectEventMap> implements IGizmoObject {
protected _isHovered: boolean;
protected _isActive: boolean;
protected _plane: THREE.Plane;
protected _axisDir: THREE.Vector3;
protected _raycaster: THREE.Raycaster;
protected _worldPositionStart: THREE.Vector3;
protected _worldQuaternionStart: THREE.Quaternion;
protected _worldAxisDir: THREE.Vector3;
protected _startPoint: THREE.Vector3;
protected _endPoint: THREE.Vector3;
constructor(axisDir: THREE.Vector3, readonly handle: IGizmoObject, readonly picker?: IGizmoObject, readonly helper?: IGizmoObject);
getActive(): boolean;
setActive(value: boolean): void;
getHovered(): boolean;
setHovered(value: boolean): void;
dispose(): void;
abstract moveByNdcPt(ndcPos: THREE.Vector2, camera: THREE.Camera): THREE.Matrix4;
protected abstract updateGizmoPlane(camera: THREE.Camera): void;
protected setStartPt(ndcPos: THREE.Vector2, camera: THREE.Camera): void;
}
Поля
handle: IGizmoObject
Поле хранит геометрию оси, рисуемую на сцене. Если picker не задан, то используется для проверки пересечений. Подробнее: IGizmoObject.
readonly handle: IGizmoObject;
picker: IGizmoObject
Поле хранит геометрию оси, используемую для проверки пересечений. Подробнее: IGizmoObject.
readonly picker: IGizmoObject;
helper: IGizmoObject
Поле хранит вспомогательную геометрию оси. Подробнее: IGizmoObject.
readonly helper: IGizmoObject;
_isHovered: boolean
Поле хранит значение ховера для оси.
protected _isHovered: boolean;
_isActive: boolean
Поле хранит значение активности оси.
protected _isActive: boolean;
_plane: THREE.Plane
Поле хранит плоскость, используемую для расчётов смещения курсора при манипуляциях с осью. Подробнее: THREE.Plane.
protected _plane: THREE.Plane;
_axisDir: THREE.Vector3
Поле хранит вектор направления оси в локальных координатах. Подробнее: THREE.Vector3.
protected _axisDir: THREE.Vector3;
_raycaster: THREE.Raycaster
Поле хранит объект THREE.Raycaster, используемый для расчётов смещения при манипуляциях с осью.
protected _raycaster: THREE.Raycaster;
_worldPositionStart: THREE.Vector3
Поле хранит значение положения оси в мировых координатах в момент активации оси.
При setActive(true
) в данный вектор сохраняется значение положения оси. Используется для расчета смещения оси относительно начального положения во время манипуляций над осью.
Подробнее: THREE.Vector3.
protected _worldPositionStart: THREE.Vector3;
_worldQuaternionStart: THREE.Quaternion
Поле хранит значение кватерниона оси в момент активации оси.
При setActive(true
) в данный кватернион сохраняется значение поворота оси. Используется для расчета поворота оси относительно начального положения
во время манипуляций над осью.
Подробнее: THREE.Quaternion.
protected _worldQuaternionStart: THREE.Quaternion;
_worldAxisDir: THREE.Vector3
Поле хранит вектор направления оси в мировых координатах в момент активации оси.
При setActive(true
) в данный вектор сохраняется направление оси в мировых координатах.
Подробнее: THREE.Vector3.
protected _worldAxisDir: THREE.Vector3;
_startPoint: THREE.Vector3
Поле хранит начальное положение курсора на плоскости оси при начале манипуляции с осью. Используется для расчета смещения курсора в плоскости оси во время манипуляций с осью. Подробнее: THREE.Vector3.
protected _startPoint: THREE.Vector3;
_endPoint: THREE.Vector3
Поле хранит текущее или последнее положение курсора на плоскости оси при манипуляции с осью. Используется для расчета смещения курсора в плоскости оси относительно начальной точки во время манипуляций с осью. Подробнее: THREE.Vector3.
protected _endPoint: THREE.Vector3;
Конструктор
constructor(axisDir: THREE.Vector3,
handle: IGizmoObject,
picker?: IGizmoObject,
helper?: IGizmoObject);
где:
axisDir
– направление оси в локальных координатах. Подробнее: THREE.Vector3.
handle
– задает handle – геометрию оси, рисуемую на сцене. Подробнее: IGizmoObject.
picker
– задает picker – геометрию оси, используемую для проверки пересечений. Необязательный параметр. Подробнее: IGizmoObject.
helper
– задает helper – вспомогательную геометрию оси. Необязательный параметр. Подробнее: IGizmoObject.
Методы
getHovered()
Метод возвращает значение ховера для оси.
getHovered(): boolean;
Возвращает true
, если ховер активен.
setHovered()
Метод устанавливает значение ховера для оси, а так же вызывает методы setHovered(value)
у объектов handle, picker и helper.
setHovered(value: boolean): void;
где:
value
– значение ховера.
getActive()
Метод возвращает статус активности для оси.
getActive(): boolean;
Возвращает true
, если объект активен.
setActive()
Метод устанавливает статус активности для оси, а так же вызывает методы setActive(value)
у объектов handle, picker и helper.
setActive(value: boolean): void;
где:
value
– значение активности оси.
Если value
равен true
, то запоминает текущее положение оси в мировых координатах,
кватернион поворота и вектор направления оси в мировых координатах.
В противном случае сбрасывает значения начального и конечного положения курсора.
dispose()
Метод освобождает ресурсы, выделенные оси, а также вызывает методы dispose()
у объектов handle, picker и helper.
dispose(): void;
moveByNdcPt()
Абстрактный метод, вычисляет матрицу трансформации объекта, вызванной манипуляциями с осью.
abstract moveByNdcPt(ndcPos: THREE.Vector2, camera: THREE.Camera): THREE.Matrix4;
где:
ndcPos
– текущее положение курсора в Normalized Device Coordinates (NDC пространство).
Подробнее: THREE.Vector2.
camera
– камера, используемая для отрисовки GizmoAxis
на сцене.
Используется для перевода Normalized Device Coordinates (NDC пространство) в мировые координаты.
Подробнее: THREE.Camera.
Возвращает матрицу трансформации объекта. Подробнее: THREE.Matrix4.
updateGizmoPlane()
Абстрактный метод, обновляет плоскость, используемую для расчётов смещения курсора при манипуляциях с осью.
protected abstract updateGizmoPlane(camera: THREE.Camera): void;
где:
camera
– камера, используемая для отрисовки GizmoAxis
на сцене. Подробнее: THREE.Camera.
setStartPt()
Метод вычисляет начальное положение курсора на плоскости оси.
protected setStartPt(ndcPos: THREE.Vector2, camera: THREE.Camera): void;
где:
ndcPos
– положение курсора в Normalized Device Coordinates (NDC пространство). Подробнее: THREE.Vector2.
camera
– камера, используемая для отрисовки GizmoAxis
на сцене. Используется для перевода Normalized Device Coordinates (NDC пространство) в мировые координаты.
Подробнее: THREE.Camera.