import { Component, Entity, Ray, Vector3, Mesh, Camera, Plane, ModelMesh, Pointer } from "@galacean/engine"; import { PlainColorMaterial } from "@galacean/engine-toolkit-custom-material"; import { State } from "./enums/GizmoState"; import { Group } from "./Group"; /** * @internal * Gizmo Component */ export declare abstract class GizmoComponent extends Component { /** gizmo state */ type: State; /** gizmo entity, visible part */ gizmoEntity: Entity; /** gizmo entity, invisible part */ gizmoHelperEntity: Entity; /** Get group when init gizmo. */ abstract init(camera: Camera, group: Group): void; /** Called when pointer enters gizmo. */ abstract onHoverStart(axisName: string): void; /** Called when pointer leaves gizmo. */ abstract onHoverEnd(): void; /** Called when gizmo starts to move.*/ abstract onMoveStart(ray: Ray, axisName: string): void; /** Called when gizmo is moving.*/ abstract onMove(ray: Ray, pointer?: Pointer): void; /** Called when gizmo movement ends.*/ abstract onMoveEnd(): void; /** Called when gizmo's transform is dirty.*/ abstract onUpdate(isModified: boolean): void; /** Called when camera switch between ortho and perps.*/ abstract onSwitch(isModified: boolean): void; /** Called when axis alpha needs to be modified.*/ abstract onAlphaChange(axisName: string, value: number): void; } export declare enum axisType { "x" = 0, "y" = 1, "z" = 2, "xyz" = 3, "xy" = 4, "yz" = 5, "xz" = 6 } export declare const axisVector: Vector3[]; export declare const axisPlane: Plane[]; export interface AxisProps { name: string; axisMesh: Array; axisMaterial: PlainColorMaterial; axisHelperMesh: Array; axisHelperMaterial: PlainColorMaterial; axisRotation: Array; axisTranslation: Array; priority?: number; }