IGizmoObject

IGizmoObject

IGizmoObject – интерфейс, описывающий поведение объектов гизмо.

export interface IGizmoObject extends THREE.Object3D {
  //Метод возвращает статус ховера над IGizmoObject.
  getHovered(): boolean;
  //Метод задает ховер для IGizmoObject.
  setHovered(value: boolean): void;
  //Метод возвращает статус активности манипуляций над IGizmoObject.
  getActive(): boolean;
  //Метод задает статус активности манипуляций над IGizmoObject.
  setActive(value: boolean): void;
  //Метод освобождает выделенные объектом ресурсы.
  dispose(): void;
}

GizmoObject

GizmoObject – реализация интерфейса IGizmoObject. При изменении ховера, либо активности объекта, меняет материал геометрий.

export class GizmoObject extends THREE.Object3D implements IGizmoObject {
  constructor(protected _meshes: THREE.Mesh[], 
    readonly baseMaterial: THREE.Material,
    readonly hoverMaterial: THREE.Material,
    readonly activeMaterial: THREE.Material
  );
  getHovered(): boolean;
  setHovered(value: boolean): void;
  getActive(): boolean;
  setActive(value: boolean): void;
  dispose(): void;

  override raycast(raycaster: THREE.Raycaster, intersects: THREE.Intersection<THREE.Object3D<THREE.Event>>[]): void;
}

Поля

_meshes: THREE.Mesh[]

Геометрии, используемые для рендера на сцене. Также используются при расчете пересечений с GizmoObject.

baseMaterial: THREE.Material

Материал геометрий, применяемый в отсутствии ховера и при неактивном GizmoObject. По умолчанию: GizmoMaterials.gizmoMaterial.

baseMaterial: THREE.Material;

hoverMaterial: THREE.Material

Материал геометрий, применяемый при ховере над GizmoObject. По умолчанию: GizmoMaterials.matYellowTransparent.

hoverMaterial: THREE.Material;

activeMaterial: THREE.Material

Материал геометрий, применяемый при активной манипуляции над GizmoObject. По умолчанию: GizmoMaterials.matYellow.

activeMaterial: THREE.Material;

Конструктор

  constructor(protected _meshes: THREE.Mesh[], 
    readonly baseMaterial: THREE.Material,
    readonly hoverMaterial: THREE.Material,
    readonly activeMaterial: THREE.Material
  );

где:
_meshes – геометрии объекта для отрисовки на сцене.

baseMaterial – материал геометрий, применяемый в отсутствии ховера и при неактивном GizmoObject. Не обязательный параметр. Подробнее: THREE.Material.

hoverMaterial – материал геометрий, применяемый при ховере над GizmoObject. Не обязательный параметр. Подробнее: THREE.Material.

activeMaterial – материал геометрий, применяемый при активной манипуляции над GizmoObject. Не обязательный параметр. Подробнее: THREE.Material.

Методы

getHovered()

Метод возвращает статус ховера для GizmoObject.

  getHovered(): boolean;

Возвращает true, если над объектом находится курсор.

setHovered()

Метод устанавливает значение ховера для GizmoObject.

  setHovered(value: boolean): void;

где:
value - значение ховера.
Если value равно true, то материал геометрий изменится на hoverMaterial, если GizmoObject не активен. В противном случае, материалом геометрий будет или baseMaterial, или activeMaterial, в зависимости от активности GizmoObject.

getActive()

Метод возвращает статус активности для GizmoObject.

  getActive(): boolean;

Возвращает true, если объект активен.

setActive()

Метод устанавливает статус активности для GizmoObject.

  setActive(value: boolean): void;

где:
value - значение активности.
Если value равно true, то материал геометрий изменится на activeMaterial. В противном случае, материалом геометрий будет или baseMaterial, или hoverMaterial, в зависимости от значения ховера для GizmoObject. Активность GizmoObject имеет больший приоритет в установке материала геометрий, чем ховер.

raycast

Переопределённый метод Object3D.raycast. Проверяет пересечения для всех геометрий GizmoObject.

override raycast(raycaster: THREE.Raycaster, intersects: THREE.Intersection<THREE.Object3D<THREE.Event>>[]): void