This commit is contained in:
xiefan
2020-09-24 11:04:12 +08:00
commit b654ca8c7f
1633 changed files with 86830 additions and 0 deletions

27
types/Geometry/BSPGroupParse.d.ts vendored Normal file
View File

@@ -0,0 +1,27 @@
import { Vector3 } from "three";
import { CSG } from "../csg/core/CSG";
import { Polygon } from "../csg/core/math/Polygon3";
/**
* 解决 THREEBSP(CSG) 产生的结果没有办法得到分裂的个数.
* 本类分析了THREEBSP的组合情况.
*
* Example:
*
* let topology = new BSPGroupParse(csg);
* topology.parse();
*/
export declare class BSPGroupParse {
fractionDigits: number;
constructor(bsp?: CSG, fractionDigits?: number);
Add(poly: Polygon): void;
/**
* 返回组合点
*/
Parse(): Vector3[][];
private map;
private Get;
private GetPts;
private vecMap;
private GenerateP;
}
//# sourceMappingURL=BSPGroupParse.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"BSPGroupParse.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/BSPGroupParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAGpD;;;;;;;;GAQG;AACH,qBAAa,aAAa;IAEQ,cAAc;gBAAhC,GAAG,CAAC,EAAE,GAAG,EAAS,cAAc,SAAI;IAMhD,GAAG,CAAC,IAAI,EAAE,OAAO;IAajB;;OAEG;IACH,KAAK,IAAI,OAAO,EAAE,EAAE;IAoBpB,OAAO,CAAC,GAAG,CAAkC;IAC7C,OAAO,CAAC,GAAG;IAUX,OAAO,CAAC,MAAM;IAad,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,SAAS;CAMpB"}

12
types/Geometry/BoardUVGenerator.d.ts vendored Normal file
View File

@@ -0,0 +1,12 @@
import { ExtrudeBufferGeometry, UVGenerator, Vector2 } from "three";
declare class BoardUVGenerator implements UVGenerator {
generateTopUV(geometry: ExtrudeBufferGeometry, vertices: number[], indexA: number, indexB: number, indexC: number): Vector2[];
generateSideWallUV(geometry: ExtrudeBufferGeometry, vertices: number[], indexA: number, indexB: number, indexC: number, indexD: number): Vector2[];
}
declare class BoardUVGenerator2 extends BoardUVGenerator {
generateTopUV(geometry: ExtrudeBufferGeometry, vertices: number[], indexA: number, indexB: number, indexC: number): Vector2[];
}
export declare let boardUVGenerator: BoardUVGenerator;
export declare let boardUVGenerator2: BoardUVGenerator2;
export {};
//# sourceMappingURL=BoardUVGenerator.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"BoardUVGenerator.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/BoardUVGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEpE,cAAM,gBAAiB,YAAW,WAAW;IAEzC,aAAa,CAAC,QAAQ,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAejH,kBAAkB,CAAC,QAAQ,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAoCzI;AAED,cAAM,iBAAkB,SAAQ,gBAAgB;IAE5C,aAAa,CAAC,QAAQ,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAepH;AAED,eAAO,IAAI,gBAAgB,kBAAyB,CAAC;AACrD,eAAO,IAAI,iBAAiB,mBAA0B,CAAC"}

24
types/Geometry/Box.d.ts vendored Normal file
View File

@@ -0,0 +1,24 @@
import { Box3 } from 'three';
/**
* 盒子的切割类型
*/
export declare enum SplitType {
X = 0,
Y = 1,
Z = 2
}
/**
* 扩展Box3,添加切割方法,体积等
*/
export declare class Box3Ext extends Box3 {
TempData: any;
get Volume(): number;
isSolid(minSize?: number): boolean;
substract(b: Box3Ext, spaceType: SplitType): Box3Ext[];
clampSpace(b2: Box3Ext, splitType: SplitType): this;
intersectsBox(box: Box3, fuzz?: number): boolean;
}
export declare function IntersectsBox(box1: Box3, box2: Box3, fuzz?: number): boolean;
/**盒子二维面是否相交 */
export declare function IntersectBox2(box1: Box3, box2: Box3, fuzz?: number): boolean;
//# sourceMappingURL=Box.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Box.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/Box.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,IAAI,EAAE,MAAM,OAAO,CAAC;AAEtC;;GAEG;AACH,oBAAY,SAAS;IAEjB,CAAC,IAAI;IACL,CAAC,IAAI;IACL,CAAC,IAAI;CACR;AAED;;GAEG;AACH,qBAAa,OAAQ,SAAQ,IAAI;IAE7B,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,MAAM,WAIT;IAGD,OAAO,CAAC,OAAO,SAAI;IAInB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;IAiB1C,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;IAS5C,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,SAAO,GAAG,OAAO;CAIjD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,SAAO,GAAG,OAAO,CAK1E;AAED,eAAe;AACf,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,SAAO,WAIhE"}

15
types/Geometry/BufferGeometryUtils.d.ts vendored Normal file
View File

@@ -0,0 +1,15 @@
import { BufferGeometry, Vector3, BufferAttribute, ShapeGeometry } from "three";
export declare namespace BufferGeometryUtils {
function CreateFromPts(pts: Vector3[]): BufferGeometry;
/**
* 更新BufferGeometry的顶点
* @param geo
* @param pts
* @returns 当成功时返回true,更新失败时返回false
*/
function UpdatePts(geo: BufferGeometry, pts: Vector3[]): boolean;
function ArrowGeometry(): ShapeGeometry;
function MergeBufferGeometries(geometries: BufferGeometry[], useGroups?: boolean): BufferGeometry;
function MergeBufferAttributes(attributes: BufferAttribute[]): BufferAttribute;
}
//# sourceMappingURL=BufferGeometryUtils.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"BufferGeometryUtils.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/BufferGeometryUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAS,MAAM,OAAO,CAAC;AAEvF,yBAAiB,mBAAmB,CACpC;IACI,SAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,cAAc,CAG5D;IAED;;;;;OAKG;IACH,SAAgB,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,CAetE;IAGD,SAAgB,aAAa,kBAa5B;IAED,SAAgB,qBAAqB,CAAC,UAAU,EAAE,cAAc,EAAE,EAAE,SAAS,GAAE,OAAe,GAAG,cAAc,CAuK9G;IAED,SAAgB,qBAAqB,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,eAAe,CAuCpF;CAEJ"}

19
types/Geometry/CheckIntersect.d.ts vendored Normal file
View File

@@ -0,0 +1,19 @@
import { Box2 } from "three";
export interface Vec2 {
x: number;
y: number;
}
/**
* 盒子相交测试,快速判断盒子和直线或者圆是否有相交
*/
export declare class BoxCheckIntersect {
p1: Vec2;
p2: Vec2;
p3: Vec2;
p4: Vec2;
box: Box2;
constructor(box: Box2);
IsIntersectLine(p1: Vec2, p2: Vec2): boolean;
IsIntersectCircle(cen: Vec2, radius: number): boolean;
}
//# sourceMappingURL=CheckIntersect.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"CheckIntersect.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/CheckIntersect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAsB,MAAM,OAAO,CAAC;AAWjD,MAAM,WAAW,IAAI;IAEjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAwBD;;GAEG;AACH,qBAAa,iBAAiB;IAE1B,EAAE,EAAE,IAAI,CAAC;IACT,EAAE,EAAE,IAAI,CAAC;IACT,EAAE,EAAE,IAAI,CAAC;IACT,EAAE,EAAE,IAAI,CAAC;IACT,GAAG,EAAE,IAAI,CAAC;gBACE,GAAG,EAAE,IAAI;IAWrB,eAAe,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO;IAsB5C,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;CAMxD"}

18
types/Geometry/CoordinateSystem.d.ts vendored Normal file
View File

@@ -0,0 +1,18 @@
import { Matrix4, Vector3 } from 'three';
/**
* 坐标系运算.
*/
export declare class CoordinateSystem {
Postion: Vector3;
XAxis: Vector3;
YAxis: Vector3;
ZAxis: Vector3;
constructor(postion?: Vector3, xAxis?: Vector3, yAxis?: Vector3, zAxis?: Vector3);
applyMatrix4(mat4: Matrix4): this;
getMatrix4(): Matrix4;
CopyForm(mat4: Matrix4): this;
extractBasis(xAxisA: Vector3, yAxisA: Vector3, zAxisA: Vector3): void;
copy(cs: CoordinateSystem): CoordinateSystem;
clone(): CoordinateSystem;
}
//# sourceMappingURL=CoordinateSystem.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"CoordinateSystem.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/CoordinateSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEzC;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;gBAEH,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO;IAQhF,YAAY,CAAC,IAAI,EAAE,OAAO;IAU1B,UAAU,IAAI,OAAO;IAOrB,QAAQ,CAAC,IAAI,EAAE,OAAO;IAOtB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IAM9D,IAAI,CAAC,EAAE,EAAE,gBAAgB,GAAG,gBAAgB;IAQ5C,KAAK;CASR"}

14
types/Geometry/Count.d.ts vendored Normal file
View File

@@ -0,0 +1,14 @@
/**
* 一个简单的计数器实现,本质是使用一个Map来保存元素的个数
*
* 例:
* let count = new Count();
* count.AddCount("Test", 1);
* count.GetCount("Test");//现在 Test 的个数为1
*/
export declare class Count {
private m_CountMap;
GetCount(obj: any): number;
AddCount(obj: any, add: number): void;
}
//# sourceMappingURL=Count.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Count.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/Count.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AACH,qBAAa,KAAK;IAEd,OAAO,CAAC,UAAU,CAA8B;IAChD,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM;IAU1B,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM;CAIjC"}

8
types/Geometry/CreateWireframe.d.ts vendored Normal file
View File

@@ -0,0 +1,8 @@
import { BufferGeometry, Line, LineBasicMaterial, Object3D } from "three";
import { Board } from "../DatabaseServices/Entity/Board";
import { ExtrudeSolid } from "../DatabaseServices/Entity/Extrude";
import { ExtrudeHole } from "../DatabaseServices/3DSolid/ExtrudeHole";
export declare function CreateWireframe(en3D: Board | ExtrudeSolid): Object3D[];
export declare function FastWireframe(br: ExtrudeSolid, color?: number): Line<BufferGeometry, LineBasicMaterial>[];
export declare function FastWireframe2(dr: ExtrudeHole, color?: number): Line<BufferGeometry, LineBasicMaterial>[];
//# sourceMappingURL=CreateWireframe.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"CreateWireframe.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/CreateWireframe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAoC,IAAI,EAAE,iBAAiB,EAAgB,QAAQ,EAA4B,MAAM,OAAO,CAAC;AAGpJ,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAGzD,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAIlE,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAGtE,wBAAgB,eAAe,CAAC,IAAI,EAAE,KAAK,GAAG,YAAY,cAsEzD;AAYD,wBAAgB,aAAa,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,SAAI,6CAgDxD;AACD,wBAAgB,cAAc,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,SAAI,6CAoCxD"}

32
types/Geometry/CurveIntersection.d.ts vendored Normal file
View File

@@ -0,0 +1,32 @@
import { Box3, Vector3 } from "three";
import { Curve } from "../DatabaseServices/Entity/Curve";
import { IntersectOption } from "../GraphicsSystem/IntersectWith";
/**
* 简化优化版本的曲线求交, 优化版本可以参考(算法导论33.2 确定任意一对线段是否相交 p599)
*/
export declare class CurveIntersection {
protected fuzz: number;
protected boxMap: Map<Curve, Box3>;
/**
* 交点数据集,key 为曲线 value 为和它相交的(曲线和交点的Map)
*/
intersect: Map<Curve, Map<Curve, Vector3[]>>;
intersect2: Map<Curve, number[]>;
/**
* @param {Curve[]} cus 请注意数组的顺序会被更改,如果你在意数组的顺序,请拷贝数组后传进来
* @memberof CurveIntersection
*/
constructor(cus: Curve[], parseIntersectionParam?: boolean, intType?: IntersectOption, fuzz?: number);
protected IntersectWith2(c1: Curve, c2: Curve, intType: IntersectOption): import("../GraphicsSystem/IntersectWith").IntersectResult[];
protected AppendIntersectionParams(curve: Curve, params: number[]): void;
protected GenBox(cus: Curve[]): void;
protected SortCurve(cus: Curve[]): void;
GetIntersect(cu: Curve): Map<Curve, Vector3[]>;
}
export declare class CurveIntersection2 extends CurveIntersection {
/**
* Curve2Polyline使用这个时,为了避免多余的交点导致曲线切割过度,过滤掉无关的点
*/
protected IntersectWith2(c1: Curve, c2: Curve, intType: IntersectOption): import("../GraphicsSystem/IntersectWith").IntersectResult[];
}
//# sourceMappingURL=CurveIntersection.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"CurveIntersection.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/CurveIntersection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE;;GAEG;AACH,qBAAa,iBAAiB;IAe0E,SAAS,CAAC,IAAI;IAZlH,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAa;IAE/C;;OAEG;IACH,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAa;IACzD,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAa;IAE7C;;;OAGG;gBACS,GAAG,EAAE,KAAK,EAAE,EAAE,sBAAsB,UAAQ,EAAE,OAAO,kBAAiC,EAAY,IAAI,SAAO;IA0CzH,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe;IAKvE,SAAS,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;IAWjE,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE;IAM7B,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE;IAQhC,YAAY,CAAC,EAAE,EAAE,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;CASjD;AAED,qBAAa,kBAAmB,SAAQ,iBAAiB;IAErD;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe;CAW1E"}

51
types/Geometry/CurveMap.d.ts vendored Normal file
View File

@@ -0,0 +1,51 @@
import { Vector3 } from "three";
import { Curve } from "../DatabaseServices/Entity/Curve";
export interface Vertice {
position: Vector3;
routes: Route[];
}
export interface Route {
curve: Curve;
from: Vertice;
to: Vertice;
length: number;
isReverse: boolean;
an?: number;
s: Vector3;
e: Vector3;
}
/**
* 曲线连接图
* 所有的顶点和边的关系
*/
export declare class CurveMap {
numdimensions: number;
_RemoveSortLine: boolean;
private multiplier;
constructor(numdimensions?: number, _RemoveSortLine?: boolean, multiplier?: number);
_VerticeMap: Map<Vector3, Vertice>;
_Vertices: Vertice[];
/**
* 得到节点图的所有站点列表
*/
get Stands(): Vertice[];
/**
* @param curve
* @param [isArc=curve instanceof Arc]
* @param [removeDuplicate=false]
* @returns 加入成功?
*/
AddCurveToMap(curve: Curve, isArc?: boolean, removeDuplicate?: boolean, parseAngle?: boolean): boolean;
/**
* 获得唯一的顶点
*/
GetOnlyVertice(p: Vector3): Vertice;
_LookupTable: {
[key: string]: Vector3;
};
/**
* 生成一个唯一的向量.
*/
GenerateP(p: Vector3): Vector3;
}
//# sourceMappingURL=CurveMap.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"CurveMap.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/CurveMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAIzD,MAAM,WAAW,OAAO;IAGpB,QAAQ,EAAE,OAAO,CAAC;IAElB,MAAM,EAAE,KAAK,EAAE,CAAC;CACnB;AAGD,MAAM,WAAW,KAAK;IAElB,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,CAAC,EAAE,OAAO,CAAC;IACX,CAAC,EAAE,OAAO,CAAC;CACd;AAED;;;GAGG;AACH,qBAAa,QAAQ;IAGN,aAAa;IACb,eAAe;IACtB,OAAO,CAAC,UAAU;gBAFX,aAAa,SAAI,EACjB,eAAe,UAAQ,EACtB,UAAU,SAAsB;IAQ5C,WAAW,wBAA+B;IAE1C,SAAS,EAAE,OAAO,EAAE,CAAM;IAE1B;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,EAAE,CAGtB;IAED;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAE,OAA8B,EAAE,eAAe,GAAE,OAAe,EAAE,UAAU,UAAQ,GAAG,OAAO;IA2CjI;;MAEE;IACF,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO;IAYnC,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KAAE,CAAM;IAE/C;;OAEG;IACH,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO;CAmCjC"}

6
types/Geometry/DoIntersect.d.ts vendored Normal file
View File

@@ -0,0 +1,6 @@
import { Vec2 } from "./CheckIntersect";
/**
* 判断线段`p1q1`和线段`p2q2`是否相交.
*/
export declare function doIntersect(p1: Vec2, q1: Vec2, p2: Vec2, q2: Vec2): boolean;
//# sourceMappingURL=DoIntersect.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"DoIntersect.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/DoIntersect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AA8BxC;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO,CAyB3E"}

View File

@@ -0,0 +1,21 @@
import { Matrix4 } from "three";
import { Board } from "../../DatabaseServices/Entity/Board";
import { Curve } from "../../DatabaseServices/Entity/Curve";
import { Face } from "./Face";
export declare enum BoardFaceType {
Side = 0,
NoSide = 1
}
export declare class BoardGetFace {
Board: Board;
Faces: Face[];
constructor(Board: Board);
ParseFaces(): void;
GetTopAndBottomFace(isEdgeFace?: boolean): void;
GetSideFaces(): void;
IntersectFace(br: BoardGetFace, bInsEqual?: boolean): Face[];
static GetAllSidesFaces(br: Board, isMergeFace?: boolean): Face[];
}
export declare function MatrixIsCoplane2(matrixFrom: Matrix4, matrixTo: Matrix4, fuzz?: number): boolean;
export declare function GetSideFaceMtx(cu: Curve, inverseZ?: boolean): Matrix4;
//# sourceMappingURL=BoardGetFace.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"BoardGetFace.d.ts","sourceRoot":"","sources":["../../../../../src/Geometry/DrillParse/BoardGetFace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,MAAM,OAAO,CAAC;AAGzC,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAI5D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,oBAAY,aAAa;IAErB,IAAI,IAAI;IACR,MAAM,IAAI;CACb;AACD,qBAAa,YAAY;IAGF,KAAK,EAAE,KAAK;IAD/B,KAAK,EAAE,IAAI,EAAE,CAAM;gBACA,KAAK,EAAE,KAAK;IAI/B,UAAU;IAOV,mBAAmB,CAAC,UAAU,UAAQ;IAqCtC,YAAY;IA0BZ,aAAa,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,GAAE,OAAe,GAAG,IAAI,EAAE;IAqBnE,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,UAAQ;CAwBzD;AAGD,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,SAAO,GAAG,OAAO,CAe7F;AACD,wBAAgB,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAmBnE"}

View File

@@ -0,0 +1,11 @@
import { Board } from "../../DatabaseServices/Entity/Board";
import { BoardGetFace } from "./BoardGetFace";
import { Face } from "./Face";
export declare class CollisionDetection {
private _Boards;
BoardGeList: BoardGetFace[];
CollisonFaces: Face[];
constructor(_Boards?: Board[]);
Check(): void;
}
//# sourceMappingURL=CollisionDetection.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"CollisionDetection.d.ts","sourceRoot":"","sources":["../../../../../src/Geometry/DrillParse/CollisionDetection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,kBAAkB;IAIf,OAAO,CAAC,OAAO;IAF3B,WAAW,EAAE,YAAY,EAAE,CAAM;IACjC,aAAa,EAAE,IAAI,EAAE,CAAM;gBACP,OAAO,GAAE,KAAK,EAAO;IAIzC,KAAK;CAiCR"}

33
types/Geometry/DrillParse/Face.d.ts vendored Normal file
View File

@@ -0,0 +1,33 @@
import { Matrix4, Vector3 } from "three";
import { Board } from "../../DatabaseServices/Entity/Board";
import { Region } from "../../DatabaseServices/Entity/Region";
import { BoardFaceType } from "./BoardGetFace";
export interface BoardFaceParams {
type: BoardFaceType;
length: number;
width: number;
localBoard: Board;
matrix4: Matrix4;
region?: Region;
isRect?: boolean;
drillType?: string;
}
export declare class Face {
type: BoardFaceType;
Length: number;
Width: number;
private _Region;
LocalBoard: Board;
InterBoard: Board;
isEqualType: boolean;
OCS: Matrix4;
IsRect: boolean;
DrillType: string;
constructor(parameters?: BoardFaceParams);
get Region(): Region;
get OCSInv(): Matrix4;
get Normal(): Vector3;
Intersect(f: Face): Face[];
IsIntersect(f: Face, fuzz?: number): boolean;
}
//# sourceMappingURL=Face.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Face.d.ts","sourceRoot":"","sources":["../../../../../src/Geometry/DrillParse/Face.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAI9D,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C,MAAM,WAAW,eAAe;IAE5B,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,KAAK,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AACD,qBAAa,IAAI;IAEb,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,OAAO,CAAS;IACxB,UAAU,EAAE,KAAK,CAAC;IAClB,UAAU,EAAE,KAAK,CAAC;IAClB,WAAW,EAAE,OAAO,CAAS;IAC7B,GAAG,EAAE,OAAO,CAAiB;IAC7B,MAAM,EAAE,OAAO,CAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;gBACN,UAAU,CAAC,EAAE,eAAe;IAkBxC,IAAI,MAAM,WAKT;IACD,IAAI,MAAM,YAGT;IACD,IAAI,MAAM,YAGT;IACD,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE;IAiF1B,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,SAAO,GAAG,OAAO;CAmD7C"}

20
types/Geometry/EdgeGeometry.d.ts vendored Normal file
View File

@@ -0,0 +1,20 @@
import { BufferGeometry } from "three";
import { CSG } from "../csg/core/CSG";
import { Polygon } from "../csg/core/math/Polygon3";
import { LineGeometry } from "three/examples/jsm/lines/LineGeometry";
export declare class EdgesGeometry extends BufferGeometry {
/**
* 在使用Extrude实体的时候,有可能导致面无限分裂,并且有可能造成丢线问题,使用FromCSG方法可解.
*/
FromGeometry(geometry: any, thresholdAngle?: number): this;
/**
* 解决原来算法性能低下并且结果不理想的问题
*/
FromCSG(csg: CSG): this;
PolygonsOutline(polygons: Polygon[], coords: number[]): void;
}
export declare class CLineGeometry extends LineGeometry {
FromCSG(csg: CSG): this;
PolygonsOutline(polygons: Polygon[], coords: number[]): void;
}
//# sourceMappingURL=EdgeGeometry.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"EdgeGeometry.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/EdgeGeometry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAA6H,MAAM,OAAO,CAAC;AAGxK,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAKrE,qBAAa,aAAc,SAAQ,cAAc;IAE7C;;OAEG;IACH,YAAY,CAAC,QAAQ,KAAA,EAAE,cAAc,GAAE,MAAU;IA8GjD;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,GAAG;IAyBhB,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;CAqFxD;AAwBD,qBAAa,aAAc,SAAQ,YAAY;IAE3C,OAAO,CAAC,GAAG,EAAE,GAAG;IAyChB,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;CAqFxD"}

3
types/Geometry/ExportObj.d.ts vendored Normal file
View File

@@ -0,0 +1,3 @@
import { Entity } from './../DatabaseServices/Entity/Entity';
export declare function ExportObj(brs: Entity[]): Promise<void>;
//# sourceMappingURL=ExportObj.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ExportObj.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/ExportObj.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAQ7D,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,iBAqC5C"}

6
types/Geometry/ExportObj2.d.ts vendored Normal file
View File

@@ -0,0 +1,6 @@
import { Entity } from '../DatabaseServices/Entity/Entity';
export declare function ExportObj(brs: Entity[]): Promise<void>;
export declare class Command_ExportObj2 {
exec(): Promise<void>;
}
//# sourceMappingURL=ExportObj2.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ExportObj2.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/ExportObj2.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAM3D,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,iBAyB5C;AAED,qBAAa,kBAAkB;IAErB,IAAI;CAUb"}

View File

@@ -0,0 +1,4 @@
import { BufferGeometry, Vector3 } from "three";
export declare function GenerateExtrudeEdgeGeometry(contourPoints: Vector3[][], height: number): BufferGeometry;
export declare function GenerateBoxEdgeGeometry(length: number, width: number, height: number): BufferGeometry;
//# sourceMappingURL=ExtrudeEdgeGeometry.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ExtrudeEdgeGeometry.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/ExtrudeEdgeGeometry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAKhD,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAOtG;AAiBD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAIrG"}

145
types/Geometry/ExtrudeEdgeGeometry2.d.ts vendored Normal file
View File

@@ -0,0 +1,145 @@
import { BufferGeometry, Vector3 } from "three";
import { Contour } from "../DatabaseServices/Contour";
import { ExtrudeSolid, ExtureContourCurve } from "../DatabaseServices/Entity/Extrude";
import { Line } from "../DatabaseServices/Entity/Line";
import { Polyline } from "../DatabaseServices/Entity/Polyline";
export declare enum DepthType {
Front = 1,
Back = 2,
All = 3
}
/**
* 槽的几何数据,包括槽的墙面和槽的盖子
*/
export declare class Groove {
depthType: DepthType;
depth: number;
allDepth: number;
private box;
contourWall: ExtudeWall;
holeWalls: ExtudeWall[];
private lid;
constructor(contour: Contour, holes: Contour[], depthType: DepthType, depth: number, allDepth: number, box?: import("three").Box3);
/**
* @param groove this - groove
* @param [eachOther=true] 相互裁剪
*/
ClipTo(groove: Groove, eachOther?: boolean): void;
private ClipLid;
Draw(verticesArray: number[], uvArray: number[], edgeBuild: EdgeGeometryBuild, rotateUv: boolean): void;
}
declare enum DirectionType {
Outer = 0,
Inner = 1
}
export declare class ContourTreeNode {
contour: Contour;
children: ContourTreeNode[];
parent: ContourTreeNode;
constructor(contour: Contour, children?: ContourTreeNode[]);
SetParent(node: ContourTreeNode): void;
Draw(verticesArray: number[], uvArray: number[], front: boolean, z: number, rotateUv: boolean): void;
static ParseContourTree(contourNodes: ContourTreeNode[]): void;
}
declare class EdgeGeometryBuild {
allDepth: number;
lineVerticesArray: number[];
frontLines: Line[];
backLines: Line[];
constructor(allDepth: number);
AddLidLine(p1: Vector3, p2: Vector3, depth: number): void;
BuildLid(verticesArray: number[], uvArray: number[], rotateUv: boolean): void;
}
/**
* 二维形状,内部用曲线胶带表示(用来计算盖子差集算法)
*/
export declare class CurveTapeShape {
children: CurveTapeShape[];
contour: CurveTape;
holes: CurveTape[];
constructor(contour: Contour, holes: Contour[]);
CloneNew(): CurveTapeShape;
/**
* 删除包含,同向
*/
ClipTo(s: CurveTapeShape, append?: boolean): void;
SplitTo(s: CurveTapeShape): void;
/**
* 只保留被包含部分
*/
private ReverseClipTo;
ChildrenClip(): void;
Draw(verticesArray: number[], uvArray: number[], front: boolean, z: number, rotateUv: boolean): void;
}
/**
* 曲线胶带(一维)
*/
declare class CurveTape {
contour: Contour;
wallType: DirectionType;
tapes: Range[];
splitParams: number[];
constructor(contour: Contour, wallType: DirectionType);
get Curves(): Polyline[];
/**
* 分析与另一个形状的包含关系
*/
Parse(s: CurveTapeShape): CurveParamRangeRelation;
/**
* 删除包含,同向面
*/
ClipTo(s: CurveTapeShape): this;
/**
* 保留被包含的部分
*/
ReverseClipTo(s: CurveTapeShape): this;
}
declare class ExtudeWall {
curve: ExtureContourCurve;
depthType: DepthType;
depth: number;
allDepth: number;
wallType: DirectionType;
private Tape;
constructor(curve: ExtureContourCurve, depthType: DepthType, depth: number, allDepth: number, wallType: DirectionType);
/**
* 减去在另一个groove内的部分
* @param groove this - groove
* @param [clipSyntropy=false] 删除同向的面
*/
ClipTo(groove: Groove, clipSyntropy?: boolean): void;
ClipReverse(wall: this): void;
/**
* 当起始参数大于终止参数时,裁剪的区域经过终点
*
* @param startParam 起始参数
* @param endParam 终止参数
* @param faceType 裁剪面朝向
* @param depth 裁剪面的深度
*/
ClipFromParam(startParam: number, endParam: number, faceType: DepthType, depth: number): this;
Draw(verticesArray: number[], uvArray: number[], edgeBuild: EdgeGeometryBuild): void;
}
/**
* 曲线参数范围关系(包含,分离,同向共线,反向共线)
* 用来表示某一曲线在另一个曲线内的关系
*/
interface CurveParamRangeRelation {
outer: Range[];
container: Range[];
syntropy: Range[];
reverse: Range[];
}
declare type Range = [number, number];
export declare class ExtrudeGeometryBuilder {
private br;
verticesArray: number[];
uvArray: number[];
edgeAndLidBuilder: EdgeGeometryBuild;
constructor(br: ExtrudeSolid);
get MeshGeometry(): BufferGeometry;
get EdgeGeometry(): BufferGeometry;
private ParseGrooves;
}
export {};
//# sourceMappingURL=ExtrudeEdgeGeometry2.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ExtrudeEdgeGeometry2.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/ExtrudeEdgeGeometry2.ts"],"names":[],"mappings":"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"}

14
types/Geometry/FuzzVector.d.ts vendored Normal file
View File

@@ -0,0 +1,14 @@
import { Vector3 } from "three";
/**
* 直线方向归一化,例如(1,0,0)和(-1,0,0)方向相反,但是在直线中,可以看作同样的方向的线
*/
export declare class FuzzDirection {
fractionDigits: number;
fuzz: number;
constructor(fractionDigits?: number);
/**
*
*/
GetKey(v: Vector3, change?: boolean): string;
}
//# sourceMappingURL=FuzzVector.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"FuzzVector.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/FuzzVector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC;;GAEG;AACH,qBAAa,aAAa;IAGH,cAAc;IADjC,IAAI,EAAE,MAAM,CAAC;gBACM,cAAc,SAAI;IAKrC;;OAEG;IACH,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,UAAQ,GAAG,MAAM;CA0C7C"}

128
types/Geometry/GeUtils.d.ts vendored Normal file
View File

@@ -0,0 +1,128 @@
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;
export declare function IsBetweenA2B(n: number, A: number, B: number): boolean;
export {};
//# sourceMappingURL=GeUtils.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"GeUtils.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/GeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhH,eAAO,MAAM,YAAY,SAAgB,CAAC;AAC1C,eAAO,MAAM,OAAO,SAAgB,CAAC;AACrC,eAAO,MAAM,KAAK,SAAuB,CAAC;AAC1C,eAAO,MAAM,MAAM,SAAwB,CAAC;AAC5C,eAAO,MAAM,KAAK,SAAuB,CAAC;AAC1C,eAAO,MAAM,MAAM,SAAwB,CAAC;AAC5C,eAAO,MAAM,KAAK,SAAuB,CAAC;AAE1C,wBAAgB,SAAS,CAAC,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;CAAE,WAGrD;AACD,wBAAgB,SAAS,CAAC,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAC;CAAE,WAGjE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAI,WAG1F;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,SAAI,WAKnF;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAW1D;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,SAAO,WAGzD;AAED,wBAAgB,OAAO,CAAC,GAAG,SAAI,QAGN,MAAM,MAAM,MAAM,aAI1C;AAED,UAAU,EAAE;IAER,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,SAAO,WAG5D;AACD,wBAAgB,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,SAAO,WAGlD;AAED;;;;;;;;;GASG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAKnF;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,UAMzC;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,GAAE,OAA8B,UAsBpF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAwBpD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAMtD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,SAAO,GAAG,OAAO,CAG3E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,SAAO,WAGzE;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,GAAE,MAAU,GAAG,MAAM,CAGzE;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAG1D;AACD,wBAAgB,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAG3D;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CAsBlE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAUpD;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAG9C;AAGD,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO;;;EAuB/E;AACD,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,UAG7C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,UAKlC;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAG,cAAc,QAMjF;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,QAAQ,QAMjD;AAGD,oBAAY,eAAe,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,KAAK,MAAM,CAAC;AAIlE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAkC7D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO;;;;EAU/D;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAInF;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CASnE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,WAG3D"}

6
types/Geometry/IVec3.d.ts vendored Normal file
View File

@@ -0,0 +1,6 @@
export interface Vec3 {
x: number;
y: number;
z: number;
}
//# sourceMappingURL=IVec3.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"IVec3.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/IVec3.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,IAAI;IAEjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb"}

10
types/Geometry/Matrix2.d.ts vendored Normal file
View File

@@ -0,0 +1,10 @@
import { Vector2, Vector3, Matrix4 } from "three";
export declare class Matrix2 {
el: number[];
set(ix: number, iy: number, jx: number, jy: number): void;
applyVector(vec: Vector2 | Vector3): this;
fromMatrix4(mtx4: Matrix4): void;
setRotate(theta: number): this;
invert(): this;
}
//# sourceMappingURL=Matrix2.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Matrix2.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/Matrix2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAElD,qBAAa,OAAO;IAGhB,EAAE,WAAgB;IAElB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAQlD,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAUlC,WAAW,CAAC,IAAI,EAAE,OAAO;IAOzB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAS9B,MAAM,IAAI,IAAI;CAUjB"}

10
types/Geometry/OBB/obb.d.ts vendored Normal file
View File

@@ -0,0 +1,10 @@
import { Vector3, Matrix4 } from 'three';
export declare class OBB {
ocs: Matrix4;
halfSizes: Vector3;
_EPSILON: number;
center: Vector3;
constructor(ocs: Matrix4, halfSizes: Vector3);
intersectsOBB(obb: OBB, is2D?: boolean, ucsInv?: Matrix4): boolean;
}
//# sourceMappingURL=obb.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"obb.d.ts","sourceRoot":"","sources":["../../../../../src/Geometry/OBB/obb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAWzC,qBAAa,GAAG;IAMO,GAAG,EAAE,OAAO;IAAS,SAAS,EAAE,OAAO;IAJ1D,QAAQ,SAAQ;IAET,MAAM,EAAE,OAAO,CAAC;gBAEJ,GAAG,EAAE,OAAO,EAAS,SAAS,EAAE,OAAO;IAK1D,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;CAkOrE"}

8
types/Geometry/OBJExporter.d.ts vendored Normal file
View File

@@ -0,0 +1,8 @@
import { Object3D } from 'three';
export declare class OBJExporter {
parse(object: Object3D): {
obj: string;
mtl: string;
};
}
//# sourceMappingURL=OBJExporter.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"OBJExporter.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/OBJExporter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAA6F,MAAM,OAAO,CAAC;AAE5H,qBAAa,WAAW;IAEpB,KAAK,CAAC,MAAM,EAAE,QAAQ;;;;CAsUzB"}

28
types/Geometry/Orbit.d.ts vendored Normal file
View File

@@ -0,0 +1,28 @@
import { Vector3 } from "three";
/**
* 轨道控制的数学类,观察向量和角度的互相转换
* 当x当抬头或者低头到90度时,触发万向锁.
*/
export declare class Orbit {
private phi;
theta: number;
get RoX(): number;
set RoX(v: number);
/**
* 使用旋转角度 计算观察向量
* @param [outDirection] 引用传入,如果传入,那么就不构造新的向量
* @returns 返回观察向量
*/
UpdateDirection(outDirection?: Vector3): Vector3;
/**
* 使用观察向量,计算旋转角度
* @param dir 这个向量会被修改成单位向量.
*/
SetFromDirection(dir: Vector3): void;
/**
* 参考任意轴坐标系算法.
* http://help.autodesk.com/view/ACD/2017/CHS/?guid=GUID-E19E5B42-0CC7-4EBA-B29F-5E1D595149EE
*/
static ComputUpDirection(n: Vector3, ay?: Vector3, ax?: Vector3): Vector3;
}
//# sourceMappingURL=Orbit.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Orbit.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/Orbit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAa,MAAM,OAAO,CAAC;AAG3C;;;GAGG;AACH,qBAAa,KAAK;IAGd,OAAO,CAAC,GAAG,CAAa;IAGxB,KAAK,EAAE,MAAM,CAAK;IAElB,IAAI,GAAG,WAGN;IACD,IAAI,GAAG,CAAC,CAAC,QAAA,EAGR;IAED;;;;OAIG;IACH,eAAe,CAAC,YAAY,UAAgB,GAAG,OAAO;IAYtD;;;OAGG;IACH,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAapC;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,GAAE,OAAuB,EAAE,EAAE,GAAE,OAAuB,GAAG,OAAO;CAY1G"}

7
types/Geometry/Plane.d.ts vendored Normal file
View File

@@ -0,0 +1,7 @@
import { Line3, Plane, Ray, Vector3 } from "three";
export declare class PlaneExt extends Plane {
constructor(normal?: Vector3, constant?: number | Vector3);
intersectLine(line: Line3, optionalTarget?: Vector3, extendLine?: boolean): Vector3;
intersectRay(ray: Ray, optionalTarget?: Vector3, extendLine?: boolean): Vector3;
}
//# sourceMappingURL=Plane.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Plane.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/Plane.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEnD,qBAAa,QAAS,SAAQ,KAAK;gBAEnB,MAAM,UAAuB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAStE,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,UAAgB,EAAE,UAAU,UAAQ,GAAG,OAAO;IA4BvF,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO;CAMlF"}

17
types/Geometry/PointShapeUtils.d.ts vendored Normal file
View File

@@ -0,0 +1,17 @@
import { Vector3 } from "three";
import { LinesType } from "../UI/Store/BoardInterface";
export declare class PointShapeUtils {
static SquarePts(size: number): Vector3[];
static OutsideLinePts(squareSize: number, lineLength: number): Vector3[];
static CrossLinePts(lineLength: number): Vector3[];
static CrossLine3DPts(lineLength: number): Vector3[][];
static TrianglePts(size: number): Vector3[];
static CirclePts(size: number): any[];
static ObliqueCrossPts(size: number): Vector3[];
static ObliqueCrossLinePts(size: number): Vector3[];
static SandClockPts(size: number): Vector3[];
static TangentPts(size: number): Vector3[];
static PerPts(size: number): Vector3[];
static LinesDirPts(len: number, width: number, lineType: LinesType): Vector3[];
}
//# sourceMappingURL=PointShapeUtils.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"PointShapeUtils.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/PointShapeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,qBAAa,eAAe;IAGxB,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM;IAW7B,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAmB5D,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM;IAUtC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM;IAYxC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM;IAU/B,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM;IAS7B,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM;IAInC,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM;IAKvC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM;IAWhC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM;IAa9B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM;IAY1B,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS;CAyCrE"}

42
types/Geometry/RegionParse.d.ts vendored Normal file
View File

@@ -0,0 +1,42 @@
import { Curve } from "../DatabaseServices/Entity/Curve";
import { Route, Vertice } from "./CurveMap";
declare type RegionRouteS = Route[][];
/**
面域分析,基于最小循环图重新实现的版本,拓展了实现求最大轮廓。
当最大轮廓=最小轮廓时,只绘制最大轮廓(独立轮廓无分裂)。
算法只实现去重模式,业务场景应该没有非去重模式。
如果需要非去重模式那么应该获取到多个CurveMap然后对多个CurveMap进行面域分析得出多个重叠的面域。
*/
export declare class RegionParse {
numDimensions: number;
private removeDuplicate;
RegionsOutline: RegionRouteS;
RegionsInternal: RegionRouteS;
ExpLineMap: Map<Curve, Curve[]>;
private _CurveCount;
/**
* @param cuList 请不要传递圆和椭圆.
* @param [numDimensions=3] 精度:小数点后个数
* @param [removeDuplicate=true] 删除重复(现在必须是true,请不要修改它)
*/
constructor(cuList: Curve[], numDimensions?: number, removeDuplicate?: boolean);
RemoveFilamentAt(v: Vertice, vertices: Vertice[]): void;
RemoveEdge(r: Route): void;
/**
* 找到最下方并且最左边的站 yx
*/
private FindLowerLeftStand;
/**
* 构造路线图. 每个节点对应下一个路口的路线表. 路口表使用逆时针排序,起始角度使用正x轴.
* @returns 所有的顶点
*/
private GenerateVerticeMap;
private BreakArc;
/**
* 曲线是否已经被算法使用
*/
GetCueveUsed(cu: Curve): boolean;
}
export {};
//# sourceMappingURL=RegionParse.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"RegionParse.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/RegionParse.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAEzD,OAAO,EAAY,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAItD,aAAK,YAAY,GAAG,KAAK,EAAE,EAAE,CAAC;AAE9B;;;;;;GAMG;AACH,qBAAa,WAAW;IAiBgB,aAAa;IAAM,OAAO,CAAC,eAAe;IAd9E,cAAc,EAAE,YAAY,CAAM;IAElC,eAAe,EAAE,YAAY,CAAM;IAGnC,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAa;IAE5C,OAAO,CAAC,WAAW,CAAS;IAE5B;;;;OAIG;gBACS,MAAM,EAAE,KAAK,EAAE,EAAS,aAAa,SAAI,EAAU,eAAe,UAAO;IA6DrF,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;IAiBhD,UAAU,CAAC,CAAC,EAAE,KAAK;IAWnB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAwE1B,OAAO,CAAC,QAAQ;IAUhB;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,KAAK,GAAG,OAAO;CAYnC"}

2
types/Geometry/RotateUV.d.ts vendored Normal file
View File

@@ -0,0 +1,2 @@
export declare function RotateUVs(geo: THREE.Geometry): void;
//# sourceMappingURL=RotateUV.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"RotateUV.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/RotateUV.ts"],"names":[],"mappings":"AAGA,wBAAgB,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,QAc5C"}

7
types/Geometry/Simplify.d.ts vendored Normal file
View File

@@ -0,0 +1,7 @@
interface P {
x: number;
y: number;
}
export declare function simplify(points: P[], sqTolerance?: number, highestQuality?: boolean): P[];
export {};
//# sourceMappingURL=Simplify.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Simplify.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/Simplify.ts"],"names":[],"mappings":"AAMA,UAAU,CAAC;IAEP,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAyGD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,WAAW,GAAE,MAAU,EAAE,cAAc,GAAE,OAAc,OAQ5F"}

10
types/Geometry/SortEntityByBox.d.ts vendored Normal file
View File

@@ -0,0 +1,10 @@
import { Box3 } from "three";
export interface EBox {
BoundingBox: Box3;
}
/**
* 根据盒子x排序盒子
* @param {EBox[]} arr
*/
export declare function SortEntityByBox<T extends EBox>(arr: T[], sort?: boolean): Map<T, Box3>;
//# sourceMappingURL=SortEntityByBox.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"SortEntityByBox.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/SortEntityByBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAG7B,MAAM,WAAW,IAAI;IAEjB,WAAW,EAAE,IAAI,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,GAAE,OAAc,gBAmB7E"}

View File

@@ -0,0 +1,32 @@
import { Ray } from "three";
import { PromptDistendResult } from "../../Editor/PromptResult";
import { Box3Ext, SplitType } from "../Box";
import { ISpaceParse } from "./ISpaceParse";
/**
* 夹层空间分析
*/
export declare class ClampSpaceParse extends ISpaceParse {
Parse(): Promise<void>;
/**
* 单板延伸空间的时候的延伸距离
*/
get SignalDist(): number;
protected _signalDist: number;
ParseSignalBoard(): Promise<void>;
GetSignalDist(): Promise<PromptDistendResult>;
SetRay(ray: Ray): void;
SelectBoxRecord: Map<SplitType, number>;
WrapSelectBox(splitBoxs: Box3Ext[], splitType: SplitType): Promise<Box3Ext>;
/**
* virtual (请重载) 当盒子空间被切割时,选择合适的空间
* @param splitBoxs 切割后的盒子(2个)
* @param splitType 切割类型
* @returns box 盒子
*/
SelectBox(splitBoxs: Box3Ext[], splitType: SplitType): Promise<Box3Ext>;
/**
*用单块板包围盒切割空间
*/
private SpliteBoxsAndSelect;
}
//# sourceMappingURL=ClampSpaceParse.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ClampSpaceParse.d.ts","sourceRoot":"","sources":["../../../../../src/Geometry/SpaceParse/ClampSpaceParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAW,MAAM,OAAO,CAAC;AAGrC,OAAO,EAAE,mBAAmB,EAAgB,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAEtC,KAAK;IAiEX;;OAEG;IACH,IAAI,UAAU,WAGb;IACD,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAExB,gBAAgB;IA4BhB,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAQnD,MAAM,CAAC,GAAG,EAAE,GAAG;IAIf,eAAe,yBAAgC;IACzC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAOjF;;;;;OAKG;IACG,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAK7E;;OAEG;YACW,mBAAmB;CAsCpC"}

View File

@@ -0,0 +1,6 @@
import { ClampSpaceParse } from "./ClampSpaceParse";
import { PromptDistendResult } from "../../Editor/PromptResult";
export declare class ClampSpaceParseDist extends ClampSpaceParse {
GetSignalDist(): Promise<PromptDistendResult>;
}
//# sourceMappingURL=ClampSpaceParseDist.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ClampSpaceParseDist.d.ts","sourceRoot":"","sources":["../../../../../src/Geometry/SpaceParse/ClampSpaceParseDist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAgB,MAAM,2BAA2B,CAAC;AAG9E,qBAAa,mBAAoB,SAAQ,eAAe;IAG9C,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC;CActD"}

View File

@@ -0,0 +1,10 @@
import { ClampSpaceParse } from "./ClampSpaceParse";
import { PromptDistendResult } from "../../Editor/PromptResult";
import { Box3Ext, SplitType } from "../Box";
export declare class ClampSpaceParseFix extends ClampSpaceParse {
set SignalDist(v: number);
get SignalDist(): number;
GetSignalDist(): Promise<PromptDistendResult>;
SelectBox(splitBoxs: Box3Ext[], splitType: SplitType): Promise<Box3Ext>;
}
//# sourceMappingURL=ClampSpaceParseFix.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ClampSpaceParseFix.d.ts","sourceRoot":"","sources":["../../../../../src/Geometry/SpaceParse/ClampSpaceParseFix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAgB,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE5C,qBAAa,kBAAmB,SAAQ,eAAe;IAEnD,IAAI,UAAU,CAAC,CAAC,EAAE,MAAM,EAGvB;IACD,IAAI,UAAU,IAJI,MAAM,CAOvB;IAGK,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAQ7C,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;CAKhF"}

View File

@@ -0,0 +1,15 @@
import { Box3Ext, SplitType } from "../Box";
import { ClampSpaceParseDist } from "./ClampSpaceParseDist";
/**
* 夹层空间分析重载,使用GetkeyWord来选择合适的盒子.
*/
export declare class ClampSpaceParseKey extends ClampSpaceParseDist {
/**
* virtual (请重载) 当盒子空间被切割时,选择合适的空间
* @param splitBoxs 切割后的盒子(2个)
* @param splitType 切割类型
* @returns box 盒子
*/
SelectBox(splitBoxs: Box3Ext[], splitType: SplitType): Promise<Box3Ext>;
}
//# sourceMappingURL=ClampSpaceParseKey.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ClampSpaceParseKey.d.ts","sourceRoot":"","sources":["../../../../../src/Geometry/SpaceParse/ClampSpaceParseKey.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,mBAAmB;IAEvD;;;;;MAKE;IACI,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;CAsBhF"}

View File

@@ -0,0 +1,15 @@
import { Ray } from "three";
import { Box3Ext, SplitType } from "../Box";
import { ClampSpaceParseDist } from "./ClampSpaceParseDist";
export declare class ClampSpaceParseRay extends ClampSpaceParseDist {
private selectRay;
SetRay(ray: Ray): this;
/**
* virtual (请重载) 当盒子空间被切割时,选择合适的空间
* @param splitBoxs 切割后的盒子(2个)
* @param splitType 切割类型
* @returns box 盒子
*/
SelectBox(splitBoxs: Box3Ext[], splitType: SplitType): Promise<Box3Ext>;
}
//# sourceMappingURL=ClampSpaceParseRay.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ClampSpaceParseRay.d.ts","sourceRoot":"","sources":["../../../../../src/Geometry/SpaceParse/ClampSpaceParseRay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAW,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,qBAAa,kBAAmB,SAAQ,mBAAmB;IAEvD,OAAO,CAAC,SAAS,CAAM;IAEvB,MAAM,CAAC,GAAG,EAAE,GAAG;IAOf;;;;;MAKE;IACI,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;CAiBhF"}

View File

@@ -0,0 +1,61 @@
import { Matrix4, Vector3 } from "three";
import { Board } from "../../DatabaseServices/Entity/Board";
import { BoardType } from "../../UI/Store/BoardInterface";
import { Box3Ext, SplitType } from "../Box";
import { VisualSpaceBox } from './../../Editor/VisualSpaceBox';
export declare class ISpaceParse {
/**
* 解析空间成功
*/
ParseOK: boolean;
/**
* 空间占地盒子
*/
SpaceBox: Box3Ext;
/**
* 空间盒子所在的位置矩阵
*/
SpaceOCS: Matrix4;
SpaceOCSInv: Matrix4;
/**
* 板件映射表
*/
BoardMap: Map<BoardType, Board[]>;
/**
* 解析空间所用的板件列表
*/
Boards: Board[];
LeftBoard: Board;
RightBoard: Board;
/**
* 动态中,禁止执行二次操作
*/
IsDynamic: Boolean;
/**选到的虚拟空间 */
VisualSpaceBox: VisualSpaceBox;
Rotation: {
x: number;
y: number;
z: number;
};
/**
* # 构造后请手动调用Parse()方法.
* @param boards 板件列表
* @param [spaceOCS] 默认空间矩阵,如果不设置将使用第一块板作为空间矩阵
*/
constructor(boards?: Board[], spaceOCS?: Matrix4);
Parse(): Promise<void>;
get Size(): Vector3;
get DrawCS(): Matrix4;
/**
* 构造板件类型Map
*/
protected GeneralBoardMap(): void;
/**
* 解析板件的盒子,并且(排序,归并)
* @param boardCol
* @param splitType
*/
protected ParseBoardBox(boardCol: Board[], splitType: SplitType): Box3Ext[];
}
//# sourceMappingURL=ISpaceParse.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ISpaceParse.d.ts","sourceRoot":"","sources":["../../../../../src/Geometry/SpaceParse/ISpaceParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,qBAAa,WAAW;IAEpB;;OAEG;IACH,OAAO,UAAS;IAEhB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAa;IAE9C;;OAEG;IACH,MAAM,EAAE,KAAK,EAAE,CAAC;IAEhB,SAAS,EAAE,KAAK,CAAC;IACjB,UAAU,EAAE,KAAK,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAS;IAC3B,aAAa;IACb,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ;;;;MAAwB;IAEhC;;;;OAIG;gBACS,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,EAAE,OAAO;IAe1C,KAAK;IAIX,IAAI,IAAI,YAKP;IAED,IAAI,MAAM,IAAI,OAAO,CAOpB;IAED;;OAEG;IACH,SAAS,CAAC,eAAe;IA0BzB;;;;OAIG;IACH,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,EAAE;CAmE9E"}

View File

@@ -0,0 +1,5 @@
import { ISpaceParse } from "./ISpaceParse";
export declare class Point2SpaceParse extends ISpaceParse {
Parse(): Promise<void>;
}
//# sourceMappingURL=Point2SpaceParse.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Point2SpaceParse.d.ts","sourceRoot":"","sources":["../../../../../src/Geometry/SpaceParse/Point2SpaceParse.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,qBAAa,gBAAiB,SAAQ,WAAW;IAEvC,KAAK;CAuDd"}

View File

@@ -0,0 +1,5 @@
import { ISpaceParse } from "./ISpaceParse";
export declare class Point3SpaceParse extends ISpaceParse {
Parse(): Promise<void>;
}
//# sourceMappingURL=Point3SpaceParse,.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Point3SpaceParse,.d.ts","sourceRoot":"","sources":["../../../../../src/Geometry/SpaceParse/Point3SpaceParse,.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C,qBAAa,gBAAiB,SAAQ,WAAW;IAEvC,KAAK;CAgFd"}

View File

@@ -0,0 +1,17 @@
import { Intersection, Object3D, Ray, Vector3 } from "three";
import { Board } from "../../DatabaseServices/Entity/Board";
import { Viewer } from "../../GraphicsSystem/Viewer";
/**
* 点选空间拾取板件方法,该方法通过构造射线去拾取板件,并且尝试得到周围的板件.
*/
export declare class PointSelectBoards {
private ptVcs;
private view;
private boardObjects;
SelectBoards: Board[];
Intersection: Intersection;
constructor(ptVcs: Vector3, view: Viewer, boardObjects: Object3D[]);
private Select;
get Ray(): Ray;
}
//# sourceMappingURL=PointSelectBoards.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"PointSelectBoards.d.ts","sourceRoot":"","sources":["../../../../../src/Geometry/SpaceParse/PointSelectBoards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAW,QAAQ,EAAE,GAAG,EAAa,OAAO,EAAE,MAAM,OAAO,CAAC;AAEjF,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAK5D,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAIrD;;GAEG;AACH,qBAAa,iBAAiB;IAKd,OAAO,CAAC,KAAK;IAAW,OAAO,CAAC,IAAI;IAAU,OAAO,CAAC,YAAY;IAHvE,YAAY,EAAE,KAAK,EAAE,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;gBAEd,KAAK,EAAE,OAAO,EAAU,IAAI,EAAE,MAAM,EAAU,YAAY,EAAE,QAAQ,EAAE;IAiB1F,OAAO,CAAC,MAAM;IAuFd,IAAI,GAAG,IAAI,GAAG,CAWb;CACJ"}

View File

@@ -0,0 +1,38 @@
import { Board } from "../../DatabaseServices/Entity/Board";
import { Entity } from "../../DatabaseServices/Entity/Entity";
import { PromptPointResult } from "../../Editor/PromptResult";
import { ISpaceParse } from "./ISpaceParse";
import { PointSelectBoards } from "./PointSelectBoards";
export declare enum EnableSelectType {
Stretch = 1,
Two = 2,
Three = 4,
All = 7
}
export declare class PointSelectSpace {
SpaceParse: ISpaceParse;
GetPointRes: PromptPointResult;
Enable: EnableSelectType;
UseUCSSpace: boolean;
Select(callback?: Function): any;
get ParseOK(): boolean;
/**
* Virtual
* @param brs
*/
protected ParseBySelect(brs: Board[]): Promise<void>;
/**
* Virtual
* @param ptSelect
*/
protected ParseByPointSelect(ptSelect: PointSelectBoards, isDynamic?: boolean): Promise<void>;
protected ParseBy2Point(): Promise<void>;
protected ParseBy3Point(): Promise<void>;
private PointParseSpace;
private PointParseVisualSpace;
private ShowSpaceBox;
private TryRotateSpaceToUCS;
}
export declare function FilterVisualSpaceBox(e: Entity): boolean;
export declare function TryRotateSpaceToUCS(spaceParse: ISpaceParse): void;
//# sourceMappingURL=PointSelectSpace.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"PointSelectSpace.d.ts","sourceRoot":"","sources":["../../../../../src/Geometry/SpaceParse/PointSelectSpace.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAI9D,OAAO,EAAE,iBAAiB,EAAgB,MAAM,2BAA2B,CAAC;AAI5E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,oBAAY,gBAAgB;IAExB,OAAO,IAAI;IACX,GAAG,IAAI;IACP,KAAK,IAAI;IACT,GAAG,IAAa;CACnB;AASD,qBAAa,gBAAgB;IAEzB,UAAU,EAAE,WAAW,CAAC;IACxB,WAAW,EAAE,iBAAiB,CAAC;IAE/B,MAAM,mBAAwB;IAE9B,WAAW,UAAS;IACd,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IA0GhC,IAAI,OAAO,IAAI,OAAO,CAGrB;IAED;;;OAGG;cACa,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE;IAI1C;;;OAGG;cACa,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,SAAS,UAAQ;cAGjE,aAAa;cAGb,aAAa;YAIf,eAAe;IAuB7B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,mBAAmB;CAI9B;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,WAG7C;AAGD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,WAAW,QAoC1D"}

View File

@@ -0,0 +1,10 @@
import { Board } from "../../DatabaseServices/Entity/Board";
import { PointSelectBoards } from "./PointSelectBoards";
import { PointSelectSpace } from "./PointSelectSpace";
export declare class PointSelectSpaceClamp extends PointSelectSpace {
protected ParseBySelect(brs: Board[], isDynamic?: boolean): Promise<void>;
protected ParseByPointSelect(ptSelect: PointSelectBoards, isDynamic?: boolean): Promise<void>;
protected ParseBy2Point(isDynamic?: boolean): Promise<void>;
protected ParseBy3Point(isDynamic?: boolean): Promise<void>;
}
//# sourceMappingURL=PointSelectSpaceClamp.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"PointSelectSpaceClamp.d.ts","sourceRoot":"","sources":["../../../../../src/Geometry/SpaceParse/PointSelectSpaceClamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAG5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,qBAAa,qBAAsB,SAAQ,gBAAgB;cAEvC,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,SAAS,UAAQ;cAO7C,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,SAAS,UAAQ;cAMjE,aAAa,CAAC,SAAS,UAAQ;cAM/B,aAAa,CAAC,SAAS,UAAQ;CAMlD"}

View File

@@ -0,0 +1,11 @@
import { Board } from "../../DatabaseServices/Entity/Board";
import { PointSelectBoards } from "./PointSelectBoards";
import { PointSelectSpace } from "./PointSelectSpace";
/**
* (弃用) 原顶底板空间分析
*/
export declare class PointSelectSpaceSurround extends PointSelectSpace {
protected ParseBySelect(brs: Board[]): Promise<void>;
protected ParseByPointSelect(ptSelect: PointSelectBoards): Promise<void>;
}
//# sourceMappingURL=PointSelectSpaceSurround.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"PointSelectSpaceSurround.d.ts","sourceRoot":"","sources":["../../../../../src/Geometry/SpaceParse/PointSelectSpaceSurround.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,gBAAgB;cAE1C,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE;cAM1B,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB;CAKjE"}

View File

@@ -0,0 +1,14 @@
import { Curve } from "../../DatabaseServices/Entity/Curve";
import { Polyline } from "../../DatabaseServices/Entity/Polyline";
import { ISpaceParse } from "./ISpaceParse";
/**
* 板件周围轮廓分析
*/
export declare class SurroundOutlineParse extends ISpaceParse {
Polylines: Polyline[];
Outlines: Curve[];
Parse(): Promise<void>;
private GetOutline;
private ParseBoardList;
}
//# sourceMappingURL=SurroundOutlineParse.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"SurroundOutlineParse.d.ts","sourceRoot":"","sources":["../../../../../src/Geometry/SpaceParse/SurroundOutlineParse.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAIlE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;IAEjD,SAAS,EAAE,QAAQ,EAAE,CAAM;IAC3B,QAAQ,EAAE,KAAK,EAAE,CAAM;IACjB,KAAK;IAyDX,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,cAAc;CAuCzB"}

View File

@@ -0,0 +1,12 @@
import { ISpaceParse } from "./ISpaceParse";
/**
* (弃用)绘制顶底板所需要的空间
*/
export declare class SurroundSpaceParse extends ISpaceParse {
Parse(): Promise<void>;
/**
* 解析基准板
*/
ParseStandBoard(): Promise<void>;
}
//# sourceMappingURL=SurroundSpaceParse.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"SurroundSpaceParse.d.ts","sourceRoot":"","sources":["../../../../../src/Geometry/SpaceParse/SurroundSpaceParse.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IAEzC,KAAK;IA4CX;;OAEG;IACG,eAAe;CA+BxB"}

View File

@@ -0,0 +1,8 @@
import { ISpaceParse } from "./ISpaceParse";
/**
* 板件占用空间分析
*/
export declare class TotalSpaceParse extends ISpaceParse {
Parse(): Promise<void>;
}
//# sourceMappingURL=TotalSpaceParse.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"TotalSpaceParse.d.ts","sourceRoot":"","sources":["../../../../../src/Geometry/SpaceParse/TotalSpaceParse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAEtC,KAAK;CAYd"}

15
types/Geometry/SweepGeometry.d.ts vendored Normal file
View File

@@ -0,0 +1,15 @@
import { Geometry } from "three";
import { Curve } from "../DatabaseServices/Entity/Curve";
import { Polyline } from "../DatabaseServices/Entity/Polyline";
/**
* 使用轮廓和扫描路径构建扫描几何体,实现衣柜中的顶线或者地脚线之类的实体.
* 该几何体需要轮廓和路径的起始截面垂直,否则构造的实体将会错误.
*/
export declare class SweepGeometry extends Geometry {
edgePts: number[];
constructor(contour: Polyline, path: Curve);
AddShape(contour: Polyline, path: Curve): void;
private BuildSideFaces;
private BuildLid;
}
//# sourceMappingURL=SweepGeometry.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"SweepGeometry.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/SweepGeometry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,QAAQ,EAAgD,MAAM,OAAO,CAAC;AAEtF,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAK/D;;;GAGG;AACH,qBAAa,aAAc,SAAQ,QAAQ;IAEvC,OAAO,EAAE,MAAM,EAAE,CAAM;gBACX,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK;IAS1C,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK;IA8CvC,OAAO,CAAC,cAAc;IA2FtB,OAAO,CAAC,QAAQ;CAkCnB"}

4
types/Geometry/UVUtils.d.ts vendored Normal file
View File

@@ -0,0 +1,4 @@
import { Geometry, Matrix4 } from "three";
export declare function ScaleUV(geo: Geometry, scale?: number): void;
export declare function ScaleUV2(geo: Geometry, ocs: Matrix4, xScale?: number, yScale?: number, isInvert?: boolean): void;
//# sourceMappingURL=UVUtils.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"UVUtils.d.ts","sourceRoot":"","sources":["../../../../src/Geometry/UVUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAW,MAAM,OAAO,CAAC;AAGnD,wBAAgB,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,SAAO,QAYlD;AACD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,SAAO,EAAE,MAAM,SAAO,EAAE,QAAQ,UAAQ,QAwBnG"}