@realsee/dnalogel
Version:
84 lines (83 loc) • 3.31 kB
TypeScript
import type { Create3DElementReturnType } from '../../../CSS3DRenderPlugin';
import type * as THREE from 'three';
import type { Group, Mesh, Object3D } from 'three';
import { Vector3 } from 'three';
import type { Direction, Direction4 } from '../typings';
import type { tipsDom } from '../Helper/HTML/tipsDom';
import { IObject3D } from '../../three/IObject3D';
type NonVoid<T> = T extends void ? never : T;
export declare abstract class BaseHelper<OriginObject3D extends Object3D = Object3D> extends IObject3D {
protected originObject3D: OriginObject3D;
protected onRender: () => any;
get helperObject(): Object3D;
constructor(originObject3D: OriginObject3D, config?: {
onRender?: () => any;
});
render(): void;
enable(): void;
disable(): void;
show(): void;
hide(): void;
raycasterIntersectObject(raycaster: THREE.Raycaster, intersection?: THREE.Intersection[]): THREE.Intersection[];
initialPosition(): void;
initQuaternion(): void;
applyHelperScaleMatrix4(matrix: THREE.Matrix4, origin?: Vector3): void;
setHelperQuaternion(quaternion: THREE.Quaternion, origin?: Vector3): void;
applyHelperQuaternion(quaternion: THREE.Quaternion, origin?: Vector3): void;
dispose(): void;
}
export declare abstract class MoveHelperAbstract<OriginObject3D extends Object3D = Object3D> extends BaseHelper<OriginObject3D> {
abstract xArrow?: Object3D & {
arrow: Object3D;
line?: Object3D;
direction: Direction;
};
abstract yArrow?: Object3D & {
arrow: Object3D;
line?: Object3D;
direction: Direction;
};
abstract zArrow?: Object3D & {
arrow: Object3D;
line?: Object3D;
direction: Direction;
};
abstract showDraggingHelper(directions?: Direction[]): void;
}
export declare abstract class BoundingBoxHelperAbstract<OriginObject3D extends Object3D = Object3D> extends BaseHelper<OriginObject3D> {
}
type Circle = (Mesh | Group) & {
direction: Direction;
circle: Mesh;
angleSector?: Mesh & {
angleDirection: number;
baseAxes: Vector3;
};
};
export declare abstract class RotateHelperAbstract<OriginObject3D extends Object3D = Object3D> extends BaseHelper<OriginObject3D> {
abstract xCircle?: Circle;
abstract yCircle?: Circle;
abstract zCircle?: Circle;
abstract angleTips?: ReturnType<typeof tipsDom>;
abstract showDraggingHelper(directions: Direction[]): void;
}
export declare abstract class ScaleHelperAbstract<OriginObject3D extends Object3D = Object3D> extends BaseHelper<OriginObject3D> {
}
export declare abstract class RectangleScaleHelperAbstract<OriginObject3D extends Object3D, PointType extends Object3D | HTMLElement> extends ScaleHelperAbstract<OriginObject3D> {
abstract points: PointType extends Object3D ? {
point: PointType;
direction: Direction4;
}[] : {
point: PointType;
direction: Direction4;
position: Vector3;
}[];
abstract cornerPositions: Vector3[];
abstract css3DInstance?: NonVoid<Create3DElementReturnType>;
abstract plane?: THREE.Mesh;
abstract showDraggingHelper(directions?: Direction[]): void;
abstract updatePoints(): void;
abstract enable(): void;
abstract disable(): void;
}
export {};