@realsee/five
Version:
Realsee Renderer SDK
144 lines (143 loc) • 4.71 kB
TypeScript
import type * as THREE from 'three';
import type { BaseHelper, MoveHelperAbstract, RotateHelperAbstract, Circle } from './Helper/BaseHelper';
import type { MoveController, UseFaceNormalInterface } from './Controllers/MoveController';
import type { Object3DHelper, AddObject3DHelperConfig } from './Controller';
import type { BaseController } from './Controllers/BaseController';
import type { RotateController } from './Controllers/RotateController';
import type { BoundingBoxController } from './Controllers/BoundingBoxController';
export interface Object3DHelperPluginState {
enabled: boolean;
visible: boolean;
disposed: boolean;
}
export type HelperConfig<T extends object = object> = boolean | ({
enable: boolean;
} & T);
export type Object3DHelperPluginEventMap = {
show: (options?: {
userAction?: boolean;
}) => void;
hide: (options?: {
userAction?: boolean;
}) => void;
enable: (options?: {
userAction?: boolean;
}) => void;
disable: (options?: {
userAction?: boolean;
}) => void;
dispose: () => void;
stateChange: (params: {
state: Object3DHelperPluginState;
prevState?: Object3DHelperPluginState;
}) => void;
};
export type Direction = 'x' | 'y' | 'z' | 'xy' | 'xz' | 'yz' | 'plane';
export type Direction4 = 'nesw' | 'nwse' | 'ns' | 'ew';
export interface Scissor {
left: number;
bottom: number;
width: number;
height: number;
}
export type HelperEventMap = {
wantToMove: (position: THREE.Vector3) => void;
moveBefore: (position: THREE.Vector3) => void;
wantToRotate: (quaternion: THREE.Quaternion) => void;
wantToScale: (scale: THREE.Vector3) => void;
move: (position: THREE.Vector3) => void;
rotate: (quaternion: THREE.Quaternion) => void;
scale: (scale: THREE.Vector3) => void;
moveStart: (direction?: Direction) => void;
rotateStart: (direction?: Direction) => void;
scaleStart: (direction?: Direction | Direction4) => void;
moveEnd: () => void;
rotateEnd: () => void;
scaleEnd: () => void;
moveByMouseEnable: () => void;
moveByMouseDisable: () => void;
updateOtherHelpers: (params: {
camera: THREE.Camera;
}) => void;
};
export type InternalHelperEventMap = {
initialHelperPosition: () => void;
setObjectPosition: (position: THREE.Vector3) => void;
setObjectRotate: (quaternion: THREE.Quaternion, origin?: THREE.Vector3) => void;
setObjectScale: (scale: THREE.Vector3) => void;
applyObjectPosition: (position: {
matrix: THREE.Matrix4;
}) => void;
applyObjectRotate: (rotate: {
quaternion: THREE.Quaternion;
origin: THREE.Vector3;
}) => void;
applyObjectScale: (scale: {
matrix: THREE.Matrix4;
origin?: THREE.Vector3;
}) => void;
};
export interface Object3DHelperState {
enabled: boolean;
visible: boolean;
disposed: boolean;
}
export type Object3DHelperEventMap = HelperEventMap & {
show: (options?: {
userAction?: boolean;
}) => void;
hide: (options?: {
userAction?: boolean;
}) => void;
enable: (options?: {
userAction?: boolean;
}) => void;
disable: (options?: {
userAction?: boolean;
}) => void;
dispose: () => void;
stateChange: (params: {
state: Object3DHelperState;
prevState?: Object3DHelperState;
}) => void;
};
export interface HelperOffset {
x: number | {
percents: number;
};
y: number | {
percents: number;
};
z: number | {
percents: number;
};
}
export type Color = THREE.Color | string | number;
export type PositionFrom = 'objectPosition' | 'boundingBox' | 'boundingSphere' | THREE.Vector3 | ((object: THREE.Object3D) => THREE.Vector3);
export interface ObjectHelperControllers {
moveController?: MoveController;
rotateController?: RotateController;
boundingBoxController?: BoundingBoxController;
}
export type ScaleCallback = (params: {
intersectPoint: THREE.Vector3;
scalePosition: ScalePosition;
offset: THREE.Vector3;
}) => any;
export type ScalePosition = {
id?: string;
handlePosition: THREE.Vector3;
basePosition: THREE.Vector3;
};
export interface Vector3Position {
x: number;
y: number;
z: number;
}
export type Vector3WithArray = [number, number, number];
export interface Vector2Position {
x: number;
y: number;
}
export type Vector2WithArray = [number, number];
export type { BaseController, BoundingBoxController, MoveController, UseFaceNormalInterface, RotateController, MoveHelperAbstract, RotateHelperAbstract, Circle, BaseHelper, Object3DHelper, AddObject3DHelperConfig, };