@turbox3d/event-manager
Version:
Large-scale productivity application event management library
37 lines (36 loc) • 1.13 kB
TypeScript
import { Vec2, Vec3 } from '@turbox3d/shared';
import { CoordinateType } from './type';
interface ICanvasRect {
width: number;
height: number;
x: number;
y: number;
left?: number;
right?: number;
top?: number;
bottom?: number;
}
export declare class CoordinateController {
/** 获取画布矩形包围盒的实现 */
private getCanvasRectImpl;
/** 画布屏幕坐标转场景世界坐标的实现 */
private canvasToSceneImpl;
/** 场景世界坐标转画布屏幕坐标的实现 */
private sceneToCanvasImpl;
constructor({ getCanvasRectImpl, canvasToSceneImpl, sceneToCanvasImpl, }: {
getCanvasRectImpl: () => ICanvasRect;
canvasToSceneImpl: (point: Vec2, z?: number) => Vec2 | Vec3;
sceneToCanvasImpl: (point: Vec2 | Vec3) => Vec2;
});
/**
* 将坐标进行转化
*/
transform(point: Vec2 | Vec3, type: CoordinateType, z?: number): Vec2 | Vec3;
private screenToCanvas;
private canvasToScreen;
private canvasToScene;
private sceneToCanvas;
private screenToScene;
private sceneToScreen;
}
export {};