webcad-ue4-api/types/Geometry/GeUtils.d.ts

131 lines
4.7 KiB
TypeScript
Raw Normal View History

2021-01-28 10:17:21 +08:00
import { Box3, BufferGeometry, Geometry, Line, Matrix4, Mesh, Object3D, Vector, Vector2, Vector3 } from 'three';
export declare const IdentityMtx4: Matrix4;
export declare const ZeroVec: Vector3;
export declare const XAxis: Vector3;
export declare const XAxisN: Vector3;
export declare const YAxis: Vector3;
export declare const YAxisN: Vector3;
export declare const ZAxis: Vector3;
export declare function AsVector2(p: {
x: number;
y: number;
}): Vector2;
export declare function AsVector3(p: {
x: number;
y: number;
z?: number;
}): Vector3;
/**
* 线a和b是否存在交集
*/
export declare function isIntersect(amin: number, amax: number, bmin: number, bmax: number, eps?: number): boolean;
export declare function isIntersect2(a1: number, a2: number, b1: number, b2: number, eps?: number): boolean;
/**
* ,
* @param {Vector3} p
* @param {number} a .
* @returns {Vector3} pt不拷贝.
*/
export declare function rotatePoint(p: Vector3, a: number): Vector3;
export declare function equaln(v1: number, v2: number, fuzz?: number): boolean;
export declare function equalnn(dis?: number): (v1: number, v2: number) => boolean;
interface P2 {
x: number;
y: number;
}
export declare function equalv3(v1: Vector3, v2: Vector3, fuzz?: number): boolean;
export declare function equalv2(v1: P2, v2: P2, fuzz?: number): boolean;
/**
*
*
* @export
* @template
* @param {T} v (2d,3d)
* @param {number} an
* @param {number} dis
* @returns {T}
*/
export declare function polar<T extends Vector2 | Vector3>(v: T, an: number, dis: number): T;
export declare function angle(v: Vector3 | Vector2): number;
/**
* ,,
*
* @param {Vector3} v1
* @param {Vector3} v2
* @param {Vector3} [ref] ,0,0,1
* @returns
*/
export declare function angleTo(v1: Vector3, v2: Vector3, ref?: Vector3): number;
export declare function getLoocAtUpVec(dir: Vector3): Vector3;
export declare function createLookAtMat4(dir: Vector3): Matrix4;
/**
* 2,,
*/
export declare function isParallelTo(v1: Vector3, v2: Vector3, fuzz?: number): boolean;
/**
*
*/
export declare function isPerpendicularityTo(v1: Vector3, v2: Vector3, fuzz?: number): boolean;
export declare function ptToString(v: Vector3, fractionDigits?: number): string;
export declare function midPoint(v1: Vector3, v2: Vector3): Vector3;
export declare function midPoint2(v1: Vector2, v2: Vector2): Vector2;
/**
* Three对象的包围盒.
* @param obj
* @param [updateMatrix]
* @returns box
*/
export declare function GetBox(obj: Object3D, updateMatrix?: boolean): Box3;
export declare function GetBoxArr(arr: Array<Object3D>): Box3;
export declare function MoveMatrix(v: Vector3): Matrix4;
export declare function getPtPostion(sp: Vector3, ep: Vector3, c: Vector3, inPt: Vector3): {
sp: Vector3;
ep: Vector3;
};
export declare function angleAndX(v: Vector3 | Vector2): number;
/**
* 0-2pi之间
*/
export declare function clampRad(an: number): number;
export declare function updateGeometry(l: Line | Mesh, geometry: Geometry | BufferGeometry): void;
export declare function UpdateBoundingSphere(obj: Object3D): void;
export declare type compareVectorFn = (v1: Vector, v2: Vector3) => number;
/**
* .key创建排序规则.
*
* key = "xyz" , x从小到大,y从小到大 z从小到大
* key = "X" , x从大到小
* .
*
* :
* let pts:Vector3[] =...;
* pts.sort(comparePoint("x")); //x从小到大排序
* pts.sort(comparePoint("zX")); //z从小到大 x从大到小
*
* @export
* @param {string} sortKey
* @returns {compareVectorFn}
*/
export declare function comparePoint(sortKey: string): compareVectorFn;
/**
*
*/
export declare function GetEulerAngle(x: Vector3, y: Vector3, z: Vector3): {
roX: number;
roY: number;
roZ: number;
};
/**
*
* @param sqCenter
* @param snapPt
* @param size
*/
export declare function SnapPoint(sqCenter: Vector3, snapPt: Vector3, size: number): boolean;
export declare function SelectNearP(pts: Vector3[], refPt: Vector3): Vector3;
/**n是否在AB之间,fuzz 若为负的,允许相等 */
export declare function IsBetweenA2B(n: number, A: number, B: number, fuzz?: number): boolean;
/** 矩阵是世界坐标系 */
export declare function MatrixIsIdentityCS(mtx: Matrix4): boolean;
export {};
//# sourceMappingURL=GeUtils.d.ts.map