soonspacejs
Version:
soonspacejs 2.x
41 lines (40 loc) • 1.84 kB
TypeScript
import { Vector3, Euler, Box3, Object3D, Vector2, Camera } from 'three';
import { IVector3, AxisType, Rotation } from '../Interface';
declare function IVector3ToVector3(val: IVector3 | Vector3): Vector3;
declare function IVector3ToEuler(val: IVector3 | Euler): Euler;
/**
* 获取 object box
* @param object
* @returns
*/
declare function getBoundingBox(object: Object3D, precise?: boolean): Box3;
declare function rotationAxisFix(axis: AxisType, source: Euler, target: Euler): Euler;
declare function rotationAFix(source: Euler, target: Euler): Euler;
declare function deg2Euler(deg: number): number;
declare function euler2Deg(euler: number): number;
/**
* 从 object 获取 position、rotation、scale
* @param object
* @param isFromWorld
* @returns
*/
declare function getSpaceAttributeFromObject(object: Object3D, isFromWorld?: boolean): {
position: Vector3;
rotation: Euler;
scale: Vector3;
};
/**
* 同步 source 的 position、rotation、scale 到 target
* @param target
* @param source
* @param isFromWorld
*/
declare function syncSpaceAttributeToObject(target: Object3D, source: Object3D, isFromWorld?: boolean): void;
declare function isObjectVisible(object: Object3D): boolean;
declare const calculateScaleFactor: (point3: Vector3, radiusPx: number, camera: Camera, size: Vector2) => number;
/**
* 计算 target
*/
declare function computeTargetByRotation(position: IVector3, rotation: Rotation, scalar?: number): Vector3;
declare function absoluteAngle(targetAngle: number, sourceAngle: number): number;
export { IVector3ToVector3, IVector3ToEuler, getBoundingBox, rotationAxisFix, rotationAFix, deg2Euler, euler2Deg, getSpaceAttributeFromObject, syncSpaceAttributeToObject, isObjectVisible, calculateScaleFactor, computeTargetByRotation, absoluteAngle, };