初始化版本库,可用

This commit is contained in:
2021-01-28 10:17:21 +08:00
commit d2573c0b1c
1750 changed files with 41088 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
import { Box3, BufferGeometry, CylinderBufferGeometry, LineSegments, Mesh, Object3D, Vector3, Matrix3 } from "three";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { CADFiler } from '../CADFiler';
import { Hole } from "./Hole";
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
export declare enum GangDrillType {
/**偏心轮 */
Pxl = 0,
/**连接杆 */
Ljg = 1,
/**预埋件 */
Ymj = 2,
/**层板钉 */
Nail = 3,
/** 木销 */
Wood = 4,
/** 通孔 */
TK = 5,
WoodPXL = 6
}
export declare class CylinderHole extends Hole {
private _Radius;
private type;
constructor();
static CreateCylHole(radius: number, height: number, type: GangDrillType): CylinderHole;
get Type(): GangDrillType;
set Type(t: GangDrillType);
set Radius(r: number);
get Height(): number;
set Height(v: number);
get Radius(): number;
get BoundingBox(): Box3;
private _MeshGeometry;
get MeshGeometry(): CylinderBufferGeometry;
private _EdgeGeometry;
private get EdgeGeometry();
GetGripPoints(): Vector3[];
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
InitDrawObject(renderType: RenderType): LineSegments<BufferGeometry, import("three").LineBasicMaterial> | Mesh<CylinderBufferGeometry, import("three").ShaderMaterial>;
private GetObject3DByRenderType;
UpdateDrawObject(type: RenderType, obj: Object3D): void;
UpdateDrawObjectMaterial(type: RenderType, obj: Object3D): void;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
export declare function FastDrillingMeshGeometry(radius: number, height: number): CylinderBufferGeometry;
export declare function FastDrillingEdgeGeometry(radius: number, height: number): BufferGeometry;
//# sourceMappingURL=CylinderHole.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"CylinderHole.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/3DSolid/CylinderHole.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,sBAAsB,EAA0B,YAAY,EAAW,IAAI,EAAE,QAAQ,EAAmB,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAIvK,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,oBAAY,aAAa;IAErB,SAAS;IACT,GAAG,IAAI;IACP,SAAS;IACT,GAAG,IAAI;IACP,SAAS;IACT,GAAG,IAAI;IACP,SAAS;IACT,IAAI,IAAI;IACR,SAAS;IACT,IAAI,IAAI;IACR,SAAS;IACT,EAAE,IAAI;IACN,OAAO,IAAI;CACd;AAKD,qBACa,YAAa,SAAQ,IAAI;IAElC,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,IAAI,CAAoC;;IAMhD,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa;IAQxE,IAAI,IAAI,IAII,aAAa,CADxB;IACD,IAAI,IAAI,CAAC,CAAC,EAAE,aAAa,EAOxB;IAED,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAUnB;IACD,IAAI,MAAM,IAII,MAAM,CADnB;IACD,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAQnB;IACD,IAAI,MAAM,IAxBI,MAAM,CA2BnB;IACD,IAAI,WAAW,SAId;IACD,OAAO,CAAC,aAAa,CAAyB;IAC9C,IAAI,YAAY,2BAMf;IAED,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,KAAK,YAAY,GAOvB;IACD,aAAa;IAOb,mBAAmB,CACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,EAClB,SAAS,CAAC,EAAE,OAAO,GACpB,OAAO,EAAE;IAeZ,cAAc,CAAC,UAAU,EAAE,UAAU;IAIrC,OAAO,CAAC,uBAAuB;IAO/B,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAMhD,wBAAwB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAaxD,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAkBlC,SAAS,CAAC,IAAI,EAAE,QAAQ;CAO3B;AAKD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,0BAUtE;AAGD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAwBvF"}

View File

@@ -0,0 +1,23 @@
import * as THREE from 'three';
import { Object3D, Vector3 } from "three";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { CADFiler } from '../CADFiler';
import { Entity } from '../Entity/Entity';
export declare class Cylineder extends Entity {
private m_Radius;
private m_Height;
private m_Center;
constructor(rad?: number, height?: number);
get Radius(): number;
set Radius(v: number);
get Height(): number;
set Height(v: number);
get Center(): Vector3;
set Center(v: Vector3);
CreateGeometry(): THREE.ExtrudeGeometry;
InitDrawObject(renderType: RenderType): Object3D;
UpdateDrawObject(type: RenderType, en: Object3D): void;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=Cylineder.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Cylineder.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/3DSolid/Cylineder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAsB,QAAQ,EAAY,OAAO,EAAmB,MAAM,OAAO,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,qBACa,SAAU,SAAQ,MAAM;IAEjC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAA0B;gBAC9B,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAMzC,IAAI,MAAM,IAII,MAAM,CADnB;IACD,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAKnB;IACD,IAAI,MAAM,IAII,MAAM,CADnB;IACD,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAKnB;IACD,IAAI,MAAM,IAII,OAAO,CADpB;IACD,IAAI,MAAM,CAAC,CAAC,EAAE,OAAO,EAKpB;IACD,cAAc;IASd,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ;IAIhD,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ;IAO/C,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAQlC,SAAS,CAAC,IAAI,EAAE,QAAQ;CAQ3B"}

View File

@@ -0,0 +1,52 @@
import { BufferGeometry, Geometry, Matrix3, Matrix4, Mesh, Object3D, Vector3 } from "three";
import { Line2 } from 'three/examples/jsm/lines/Line2';
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
import { Box3Ext } from "../../Geometry/Box";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { CADFiler } from "../CADFiler";
import { DragPointType } from "../Entity/DragPointType";
import { ExtrudeSolid, ExtureContourCurve } from "../Entity/Extrude";
import { Polyline } from "../Entity/Polyline";
import { Shape } from "../Shape";
import { OBB } from './../../Geometry/OBB/obb';
import { Hole } from "./Hole";
export declare class ExtrudeHole extends Hole {
private _contourCurve;
private _EdgeGeometry;
protected _knifeRadius: number;
isHole: boolean;
isThrough: boolean;
get KnifeRadius(): number;
set KnifeRadius(v: number);
Explode(): (import("../Entity/Circle").Circle | Polyline)[];
get ContourCurve(): ExtureContourCurve;
set ContourCurve(curve: ExtureContourCurve);
CheckContourCurve(): void;
protected ApplyScaleMatrix(m: Matrix4): this;
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
get Shape(): Shape;
get BoundingBoxInOCS(): Box3Ext;
get BoundingBox(): Box3Ext;
private get EdgeGeometry();
private _MeshGeometry;
get MeshGeometry(): Geometry | BufferGeometry;
private GeneralMeshGeometry;
GetGripOrStretchPoints(dragType: DragPointType): Vector3[];
private GetStrectchPointCountList;
MoveGripOrStretchPoints(indexList: number[], vec: Vector3, dragType: DragPointType): void;
IsStretchHeight(indexs: number[]): boolean;
MoveGripOrStretchPointsOnly(indexList: Array<number>, vec: Vector3, dragType: DragPointType): void;
GetGripPoints(): Array<Vector3>;
GetStretchPoints(): Vector3[];
MoveGripPoints(indexList: number[], vec: Vector3): void;
MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
Convert2ExtrudeSolid(): ExtrudeSolid;
GetPrintObject3D(): (Line2 | Mesh<Geometry | BufferGeometry, import("three").ShaderMaterial>)[];
InitDrawObject(renderType?: RenderType): Object3D;
UpdateDrawObject(renderType: RenderType, obj: Object3D): Object3D;
UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D): void;
get OBB(): OBB;
ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=ExtrudeHole.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ExtrudeHole.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/3DSolid/ExtrudeHole.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA2C,QAAQ,EAAwE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC3M,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAMvD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAI7C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBACa,WAAY,SAAQ,IAAI;IAEjC,OAAO,CAAC,aAAa,CAAsC;IAC3D,OAAO,CAAC,aAAa,CAAiB;IACtC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAK;IACvB,MAAM,UAAQ;IACd,SAAS,UAAS;IAC9B,IAAI,WAAW,IAII,MAAM,CADxB;IACD,IAAI,WAAW,CAAC,CAAC,EAAE,MAAM,EAOxB;IACD,OAAO;IAIP,IAAI,YAAY,IAKQ,kBAAkB,CAFzC;IAED,IAAI,YAAY,CAAC,KAAK,EAAE,kBAAkB,EA0BzC;IACD,iBAAiB;IAcjB,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAW5C,mBAAmB,CACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,EAClB,SAAS,CAAC,EAAE,OAAO,GACpB,OAAO,EAAE;IA8BZ,IAAI,KAAK,UAKR;IACD,IAAI,gBAAgB,YAKnB;IACD,IAAI,WAAW,YAMd;IACD,OAAO,KAAK,YAAY,GAQvB;IACD,OAAO,CAAC,aAAa,CAA4B;IACjD,IAAI,YAAY,8BAOf;IACD,OAAO,CAAC,mBAAmB;IAY3B,sBAAsB,CAAC,QAAQ,EAAE,aAAa;IAW9C,OAAO,CAAC,yBAAyB;IAIjC,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa;IAalF,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE;IAUhC,2BAA2B,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa;IA6E3F,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC;IAI/B,gBAAgB;IAIhB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO;IAIhD,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO;IAIxD,oBAAoB;IASpB,gBAAgB;IAWhB,cAAc,CAAC,UAAU,GAAE,UAAiC;IAsB5D,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAiCtD,wBAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAa9D,IAAI,GAAG,IAAI,GAAG,CAIb;IACD,QAAQ,CAAC,IAAI,EAAE,QAAQ;IAevB,SAAS,CAAC,IAAI,EAAE,QAAQ;CAS3B"}

View File

@@ -0,0 +1,13 @@
import { Entity } from '../Entity/Entity';
import { ObjectId } from '../ObjectId';
import { CADFiler } from '../CADFiler';
export declare class Hole extends Entity {
FId: ObjectId;
MId: ObjectId;
protected _Height: number;
get Height(): number;
set Height(v: number);
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=Hole.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Hole.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/3DSolid/Hole.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBACa,IAAK,SAAQ,MAAM;IAEhB,GAAG,EAAE,QAAQ,CAAC;IACd,GAAG,EAAE,QAAQ,CAAC;IAC1B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,IAAI,MAAM,IAII,MAAM,CADnB;IACD,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAQnB;IACD,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAiBlC,SAAS,CAAC,IAAI,EAAE,QAAQ;CAQ3B"}

View File

@@ -0,0 +1,38 @@
import { Geometry, Matrix4, Object3D, Vector3 } from "three";
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { CADFiler } from "../CADFiler";
import { CADObject } from "../CADObject";
import { Entity } from "../Entity/Entity";
import { Polyline } from "../Entity/Polyline";
export declare function AxisCS(n: Vector3): Matrix4;
export declare class RevolveSolid extends Entity {
private _StartAngle;
private _EndAngle;
private _Contour;
constructor(axisDirection?: Vector3, axisPos?: Vector3, contour?: Polyline, _StartAngle?: number, _EndAngle?: number);
get Contour(): Polyline;
GetGripPoints(): Vector3[];
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3): Vector3[];
MoveGripPoints(indexs: number[], vec: Vector3): void;
private _MeshGeometry;
private _CacheContourPoints;
private _CacheContourPoints3D;
private _CacheContourPoints3DQ;
private _CacheContourPoints3DQ2;
private _CacheContourFaces;
private _CacheIsRev;
get MeshGeometry(): Geometry;
InitDrawObject(renderType?: RenderType): Object3D;
UpdateDrawGeometry(): void;
UpdateDrawObject(type: RenderType, obj: Object3D): Object3D;
/**
* 更新实体Jig状态时的材质
*/
UpdateJigMaterial(color?: number): void;
RestoreJigMaterial(): void;
protected _ReadFile(file: CADFiler): this;
WriteFile(file: CADFiler): this;
ApplyPartialUndo(undoData: CADObject): void;
}
//# sourceMappingURL=RevolveSolid.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"RevolveSolid.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/3DSolid/RevolveSolid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,QAAQ,EAAE,OAAO,EAA4B,QAAQ,EAAuB,OAAO,EAAE,MAAM,OAAO,CAAC;AAInH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAI7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK9C,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAM1C;AAGD,qBACa,YAAa,SAAQ,MAAM;IAOhC,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;IANrB,OAAO,CAAC,QAAQ,CAAW;gBAEvB,aAAa,CAAC,EAAE,OAAO,EACvB,OAAO,CAAC,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,QAAQ,EACV,WAAW,SAAI,EACf,SAAS,SAAc;IAuDnC,IAAI,OAAO,aAA4B;IAEvC,aAAa;IAeb,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO;IAoBpF,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO;IAkB7C,OAAO,CAAC,aAAa,CAAW;IAEhC,OAAO,CAAC,mBAAmB,CAAY;IACvC,OAAO,CAAC,qBAAqB,CAAY;IAEzC,OAAO,CAAC,sBAAsB,CAAY;IAC1C,OAAO,CAAC,uBAAuB,CAAmB;IAElD,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,WAAW,CAAU;IAE7B,IAAI,YAAY,aA6Gf;IAGD,cAAc,CAAC,UAAU,GAAE,UAAiC;IAO5D,kBAAkB;IAKlB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAqBhD;;MAEE;IACF,iBAAiB,CAAC,KAAK,SAAI;IAK3B,kBAAkB;IAWlB,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAalC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAUxB,gBAAgB,CAAC,QAAQ,EAAE,SAAS;CAKvC"}

View File

@@ -0,0 +1,52 @@
import { BoxBufferGeometry, Matrix3, Object3D, Vector3 } from "three";
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
import { SweepGeometry } from '../../Geometry/SweepGeometry';
import { RenderType } from "../../GraphicsSystem/RenderType";
import { CADFiler } from '../CADFiler';
import { Curve } from "../Entity/Curve";
import { Entity } from "../Entity/Entity";
import { Polyline } from '../Entity/Polyline';
import { OBB } from './../../Geometry/OBB/obb';
export declare class SweepSolid extends Entity {
static UseRectFakerContour: boolean;
private _Contour;
private _PathCurve;
constructor(contour?: Polyline, pathCurve?: Curve);
Explode(): (Curve | Polyline)[];
get Contour(): Polyline;
get Path(): Curve;
Reverse(): void;
/**保持路径左下角在0点 */
private PathTo0;
/**
* 将轮廓变换到wcs空间,当用户选定某个与扫描线起点相切的轮廓时.
*/
private TransfromPathToWCS;
private _MeshGeometry;
private _lineGeo;
get MeshGeometry(): BoxBufferGeometry | SweepGeometry;
getLineGeo(pts: number[]): void;
private _EdgeGeometry;
private get EdgeGeometry();
InitDrawObject(renderType: RenderType): Object3D;
UpdateDrawGeometry(): void;
UpdateDrawObject(renderType: RenderType, obj: Object3D): Object3D;
/**
* 当实体需要被更新时,更新实体材质
*/
UpdateDrawObjectMaterial(type: RenderType, obj: Object3D): void;
get BoundingBox(): import("three").Box3;
get OBB(): OBB;
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
GetGripPoints(): Vector3[];
GetStretchPoints(): Vector3[];
private UpdateEndMtx;
private GetEndPoint;
private GetMidPoints;
MoveGripPoints(indexList: number[], vec: Vector3): void;
private IfPathIsLineThenZ0Vector;
MoveStretchPoints(indexList: number[], vec: Vector3): void;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=SweepSolid.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"SweepSolid.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/3DSolid/SweepSolid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAsI,OAAO,EAAiB,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAOzN,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI9C,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAG/C,qBACa,UAAW,SAAQ,MAAM;IAElC,MAAM,CAAC,mBAAmB,UAAS;IAEnC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,UAAU,CAAQ;gBACd,OAAO,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,KAAK;IAkBjD,OAAO;IAKP,IAAI,OAAO,aAGV;IACD,IAAI,IAAI,UAGP;IACD,OAAO;IAMP,gBAAgB;IAChB,OAAO,CAAC,OAAO;IAMf;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4D1B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAe;IAC/B,IAAI,YAAY,sCAuBf;IACD,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE;IAQxB,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,KAAK,YAAY,GAOvB;IAED,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ;IAkChD,kBAAkB;IAMlB,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAsCtD;;OAEG;IACH,wBAAwB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAuBxD,IAAI,WAAW,yBAMd;IACD,IAAI,GAAG,IAAI,GAAG,CAKb;IACD,mBAAmB,CACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,EAClB,SAAS,CAAC,EAAE,OAAO,GACpB,OAAO,EAAE;IA0BZ,aAAa;IAOb,gBAAgB;IAOhB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,WAAW;IAiEnB,OAAO,CAAC,YAAY;IAepB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO;IAYhD,OAAO,CAAC,wBAAwB;IAUhC,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO;IAUnD,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAclC,SAAS,CAAC,IAAI,EAAE,QAAQ;CAO3B"}

View File

@@ -0,0 +1,13 @@
import { CADFiler } from './CADFiler';
import { ISerialize } from './ISerialize';
import { CADObject } from './CADObject';
/**
* 保存对象创建或者修改时的所有数据记录
*/
export declare class AllObjectData implements ISerialize {
file: CADFiler;
constructor(obj?: CADObject);
ReadFile(file: CADFiler): this;
WriteFile(file: CADFiler): this;
}
//# sourceMappingURL=AllObjectData.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"AllObjectData.d.ts","sourceRoot":"","sources":["../../../src/DatabaseServices/AllObjectData.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;GAEG;AACH,qBACa,aAAc,YAAW,UAAU;IAE5C,IAAI,EAAE,QAAQ,CAAC;gBACH,GAAG,CAAC,EAAE,SAAS;IAS3B,QAAQ,CAAC,IAAI,EAAE,QAAQ;IAQvB,SAAS,CAAC,IAAI,EAAE,QAAQ;CAM3B"}

14
types/DatabaseServices/AutoRecord.d.ts vendored Normal file
View File

@@ -0,0 +1,14 @@
export declare const ISPROXYKEY = "_isProxy";
/**
* 自动对CADObject的属性添加属性记录器,自动调用 `WriteAllObjectRecord`
* 如果属性是数组,那么自动添加`Proxy`.
* 可以使用`ISPROXYKEY`覆盖这个函数的代理行为(使用CADObject.CreateProxyArray快速覆盖)
*
* @param target
* @param property
* @param [descriptor]
*/
export declare function AutoRecord(target: {
WriteAllObjectRecord: () => void;
}, property: string, descriptor?: PropertyDecorator): void;
//# sourceMappingURL=AutoRecord.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"AutoRecord.d.ts","sourceRoot":"","sources":["../../../src/DatabaseServices/AutoRecord.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,aAAa,CAAC;AAErC;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACtB,MAAM,EAAE;IAAE,oBAAoB,EAAE,MAAM,IAAI,CAAC;CAAE,EAC7C,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,iBAAiB,QAyDjC"}

View File

@@ -0,0 +1,4 @@
import { SymbolTable } from "./SymbolTable";
export declare class BlockTable extends SymbolTable {
}
//# sourceMappingURL=BlockTable.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"BlockTable.d.ts","sourceRoot":"","sources":["../../../src/DatabaseServices/BlockTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,qBACa,UAAW,SAAQ,WAAW;CAG1C"}

View File

@@ -0,0 +1,20 @@
import { Database } from './Database';
import { Entity } from './Entity/Entity';
import { ObjectCollection } from './ObjectCollection';
import { SymbolTableRecord } from './SymbolTableRecord';
import { CADFiler } from './CADFiler';
import { Status } from '../Common/Status';
export declare class BlockTableRecord extends SymbolTableRecord {
EntityCol: ObjectCollection<Entity>;
constructor();
SetOwnerDatabase(db: Database): this;
get Entitys(): Entity[];
Add(obj: Entity, isCheckObjectCleanly?: boolean): Status;
Append(entity: Entity, isCheckObjectCleanly?: boolean): void;
AppendEvent(entity: Entity): void;
Remove(entity: Entity): void;
Destroy(): void;
ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=BlockTableRecord.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"BlockTableRecord.d.ts","sourceRoot":"","sources":["../../../src/DatabaseServices/BlockTableRecord.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,qBACa,gBAAiB,SAAQ,iBAAiB;IAEnD,SAAS,2BAAkC;;IAO3C,gBAAgB,CAAC,EAAE,EAAE,QAAQ;IAO7B,IAAI,OAAO,aAGV;IACD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,oBAAoB,UAAO,GAAG,MAAM;IAMrD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,oBAAoB,UAAO;IAMlD,WAAW,CAAC,MAAM,EAAE,MAAM;IAI1B,MAAM,CAAC,MAAM,EAAE,MAAM;IAKrB,OAAO;IAQP,QAAQ,CAAC,IAAI,EAAE,QAAQ;IAOvB,SAAS,CAAC,IAAI,EAAE,QAAQ;CAO3B"}

View File

@@ -0,0 +1,11 @@
import { ApplicationService } from "../ApplicationServices/Application";
import { LinesType } from "../UI/Store/BoardInterface";
import { CADObject } from "./CADObject";
import { Board } from "./Entity/Board";
export declare class BoardLinesReactor {
constructor(app: ApplicationService);
AutoChangeBoardLines(ent: CADObject): boolean;
}
export declare function BoardIsLong(br: Board, lines?: LinesType): boolean;
export declare function BoardIsShort(br: CADObject): boolean;
//# sourceMappingURL=BoardLinesReactor.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"BoardLinesReactor.d.ts","sourceRoot":"","sources":["../../../src/DatabaseServices/BoardLinesReactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAI7E,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,qBAAa,iBAAiB;gBAEd,GAAG,EAAE,kBAAkB;IAgCnC,oBAAoB,CAAC,GAAG,EAAE,SAAS;CAwBtC;AAKD,wBAAgB,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,YAA8B,GAAG,OAAO,CAqBnF;AAMD,wBAAgB,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAKnD"}

13
types/DatabaseServices/CADFactory.d.ts vendored Normal file
View File

@@ -0,0 +1,13 @@
/**
* CAD对象工厂,通过注册 和暴露的创建方法,动态创建对象
*/
export declare class CADFactory {
private constructor();
private objectNameMap;
private static factory;
static RegisterObject(C: any): void;
static RegisterObjectAlias(C: any, name: string): void;
static CreateObject(name: string): any;
}
export declare function Factory(target: Object): void;
//# sourceMappingURL=CADFactory.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"CADFactory.d.ts","sourceRoot":"","sources":["../../../src/DatabaseServices/CADFactory.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,qBAAa,UAAU;IAEnB,OAAO;IACP,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,MAAM,CAAC,OAAO,CAAoB;IAC1C,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,GAAG;IAI5B,MAAM,CAAC,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM;IAI/C,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;CAKzC;AAGD,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,QAGrC"}

35
types/DatabaseServices/CADFiler.d.ts vendored Normal file
View File

@@ -0,0 +1,35 @@
import { CADObject } from './CADObject';
import { Database } from './Database';
import { ISerialize } from './ISerialize';
import { ObjectId } from './ObjectId';
/**
* CAD文件数据
*/
export declare class CADFiler {
protected _datas: any[];
database: Database;
private readIndex;
constructor(_datas?: any[]);
Destroy(): void;
get Data(): any[];
set Data(data: any[]);
Clear(): this;
Reset(): this;
WriteString(str: string): this;
ReadString(): string;
WriteObject(obj: ISerialize): this;
ReadObject<T extends ISerialize = CADObject>(obj?: T): T;
CloneObjects(objects: CADObject[], clonedObjects?: CADObject[]): CADObject[];
Write(data: any): this;
Read(): any;
ReadArray(count: number): any[];
WriteObjectId(id: ObjectId): this;
ReadObjectId(): ObjectId;
WriteSoftObjectId(id: ObjectId): this;
ReadSoftObjectId(): ObjectId;
WriteHardObjectId(id: ObjectId): this;
ReadHardObjectId(): ObjectId;
ToString(): string;
FromString(str: string): void;
}
//# sourceMappingURL=CADFiler.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"CADFiler.d.ts","sourceRoot":"","sources":["../../../src/DatabaseServices/CADFiler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC;;GAEG;AACH,qBAAa,QAAQ;IAIL,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE;IAFnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,SAAS,CAAa;gBACR,MAAM,GAAE,GAAG,EAAO;IAIxC,OAAO;IAMP,IAAI,IAAI,IAAI,GAAG,EAAE,CAGhB;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAInB;IAED,KAAK;IAKL,KAAK;IAML,WAAW,CAAC,GAAG,EAAE,MAAM;IAMvB,UAAU,IAAI,MAAM;IAKpB,WAAW,CAAC,GAAG,EAAE,UAAU;IAa3B,UAAU,CAAC,CAAC,SAAS,UAAU,GAAG,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;IAgBxD,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,aAAa,GAAE,SAAS,EAAO;IAgBlE,KAAK,CAAC,IAAI,EAAE,GAAG;IAUf,IAAI,IAAI,GAAG;IAKX,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE;IAgB/B,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IASjC,YAAY,IAAI,QAAQ;IAQxB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAIrC,gBAAgB,IAAI,QAAQ;IAM5B,iBAAiB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAIrC,gBAAgB;IAMhB,QAAQ;IAIR,UAAU,CAAC,GAAG,EAAE,MAAM;CAIzB"}

55
types/DatabaseServices/CADObject.d.ts vendored Normal file
View File

@@ -0,0 +1,55 @@
import { CADFiler } from './CADFiler';
import { CommandHistoryRecord } from './CommandHistoryRecord';
import { Database } from './Database';
import { ISerialize } from './ISerialize';
import { ObjectId } from './ObjectId';
export declare abstract class CADObject {
protected _Owner: ObjectId;
/**
* 用于储存临时数据
*/
TempData: any;
__CacheBox__: any;
__CacheBoard__: any;
__CacheSize__: any;
__CachePolyline__: any;
set Owner(owner: ObjectId);
get Owner(): ObjectId;
Destroy(): void;
GoodBye(): any;
/**
* 当实体异步更新绘制实体完成后触发这个函数.
* Application通过注入的方式得知这个事件,刷新视图显示.
*/
AsyncUpdated(): void;
protected _db: Database;
get Db(): Database;
SetDefaultDb(db: Database): this;
SetOwnerDatabase(db: Database): this;
/**
* WblockClone 的时候,id是db分配的,此刻我们只需要设置它的db
*/
SetDatabase(db: Database): void;
protected _isErase: boolean;
get IsErase(): boolean;
Erase(isErase?: boolean): void;
objectId: ObjectId;
get Id(): ObjectId;
ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
ApplyPartialUndo(undoData: ISerialize): void;
UndoRecord(): CommandHistoryRecord;
WriteAllObjectRecord(): boolean;
Clone(): this;
DeepClone(ownerObject: CADObject, cloneObejct: CADObject, idMaping?: Map<number, ObjectId>, isPrimary?: boolean): this;
CopyFrom(obj: CADObject): void;
/**
* 配合 `@AutoRecord` 使用
* 使用这个方法来覆盖AutoRecord的监听行为.
* 这个行为只能用来监听实体添加和实体修改.
* 实体删除行为暂时无法监听
* @param setCallback 设置新的实体到数组时的回调函数
*/
protected CreateProxyArray(setCallback: (v: any) => void): any[];
}
//# sourceMappingURL=CADObject.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"CADObject.d.ts","sourceRoot":"","sources":["../../../src/DatabaseServices/CADObject.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,8BAAsB,SAAS;IAE3B,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC3B;;OAEG;IACI,QAAQ,EAAE,GAAG,CAAC;IAGrB,YAAY,EAAE,GAAG,CAAC;IAClB,cAAc,EAAE,GAAG,CAAC;IACpB,aAAa,EAAE,GAAG,CAAC;IACnB,iBAAiB,EAAE,GAAG,CAAC;IAEvB,IAAI,KAAK,CAAC,KAAK,EAAE,QAAQ,EAGxB;IACD,IAAI,KAAK,IAJQ,QAAQ,CAOxB;IAED,OAAO;IAQP,OAAO,IAAI,GAAG;IAMd;;;MAGE;IAEF,YAAY;IAKZ,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC;IACxB,IAAI,EAAE,IAAI,QAAQ,CAGjB;IAGD,YAAY,CAAC,EAAE,EAAE,QAAQ;IAazB,gBAAgB,CAAC,EAAE,EAAE,QAAQ;IAc7B;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,QAAQ;IAQxB,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAS;IACpC,IAAI,OAAO,IAAI,OAAO,CAGrB;IACD,KAAK,CAAC,OAAO,GAAE,OAAc;IAc7B,QAAQ,EAAE,QAAQ,CAAC;IAEnB,IAAI,EAAE,IAAI,QAAQ,CAGjB;IAQD,QAAQ,CAAC,IAAI,EAAE,QAAQ;IAevB,SAAS,CAAC,IAAI,EAAE,QAAQ;IAQxB,gBAAgB,CAAC,QAAQ,EAAE,UAAU;IAerC,UAAU,IAAI,oBAAoB;IAMlC,oBAAoB,IAAI,OAAO;IAY/B,KAAK,IAAI,IAAI;IAqBb,SAAS,CACL,WAAW,EAAE,SAAS,EACtB,WAAW,EAAE,SAAS,EACtB,QAAQ,GAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAa,EAC3C,SAAS,UAAO,GACjB,IAAI;IAMP,QAAQ,CAAC,GAAG,EAAE,SAAS;IAevB;;;;;;OAMG;IACH,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI;CA0B3D"}

View File

@@ -0,0 +1,24 @@
import { CADFiler } from './CADFiler';
import { CADObject } from './CADObject';
import { HistorycRecord } from './HistorycRecord';
import { ObjectAllDataHistoryRecord } from './ObjectAllDataHistoryRecord';
import { ObjectId } from './ObjectId';
/**
* 命令的历史记录
*/
export declare class CommandHistoryRecord extends CADObject {
CommandName: string;
constructor(CommandName?: string);
private _HistoryList;
private _CreateObjects;
get HistoryList(): Map<ObjectId, HistorycRecord[]>;
private GetObjectHistoryList;
EndCommand(): void;
GetObjectAllDataRecord(historyList: HistorycRecord[]): ObjectAllDataHistoryRecord | undefined;
WriteObjectHistoryPath(obj: CADObject, history: HistorycRecord): void;
WriteObjectSnapshoot(obj: CADObject): void;
CreateEraseHistory(obj: CADObject, isErase: boolean): void;
ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=CommandHistoryRecord.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"CommandHistoryRecord.d.ts","sourceRoot":"","sources":["../../../src/DatabaseServices/CommandHistoryRecord.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;GAEG;AACH,qBACa,oBAAqB,SAAQ,SAAS;IAE5B,WAAW;gBAAX,WAAW,SAAK;IAKnC,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,cAAc,CAAwC;IAE9D,IAAI,WAAW,IAAI,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,CAGjD;IAED,OAAO,CAAC,oBAAoB;IAO5B,UAAU;IAiBV,sBAAsB,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG,0BAA0B,GAAG,SAAS;IAW7F,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc;IAe9D,oBAAoB,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAmB1C,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO;IAanD,QAAQ,CAAC,IAAI,EAAE,QAAQ;IAqBvB,SAAS,CAAC,IAAI,EAAE,QAAQ;CAgB3B"}

View File

@@ -0,0 +1,23 @@
import { Singleton } from "../Common/Singleton";
import { Command } from "../Editor/CommandMachine";
import { ICommand } from "../UI/Components/CommandPanel/CommandList";
/**
* 保存CAD的自定义命令,统一由这里经过CRUD操作
*/
export declare class CommandServer extends Singleton {
private _customCommand;
private _needUpload;
CommandListMap: Map<string, string>;
AddCustonCommand(icommand: ICommand): void;
DeleteCustonCommand(icommand: ICommand): void;
Upload(): Promise<void>;
ReadCommandlist(): Promise<ICommand[]>;
SaveOldDataToServer(): Promise<void>;
private _LastScrollTop;
SetLastScrollTop(scrollTop: number): Promise<void>;
GetLastScrollTop(): Promise<number>;
}
export declare class UpgradeData implements Command {
exec(): Promise<void>;
}
//# sourceMappingURL=CommandServer.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"CommandServer.d.ts","sourceRoot":"","sources":["../../../src/DatabaseServices/CommandServer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAe,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AAIlF;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAExC,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,WAAW,CAAS;IAC5B,cAAc,sBAA6B;IAC3C,gBAAgB,CAAC,QAAQ,EAAE,QAAQ;IAUnC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ;IAKhC,MAAM;IAaN,eAAe,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAoBtC,mBAAmB;IAuBzB,OAAO,CAAC,cAAc,CAAS;IACzB,gBAAgB,CAAC,SAAS,EAAE,MAAM;IAMlC,gBAAgB;CAQzB;AAGD,qBAAa,WAAY,YAAW,OAAO;IAEjC,IAAI;CAKb"}

58
types/DatabaseServices/Contour.d.ts vendored Normal file
View File

@@ -0,0 +1,58 @@
import { Circle } from "./Entity/Circle";
import { Curve } from "./Entity/Curve";
import { Polyline } from "./Entity/Polyline";
export declare class Contour {
private _Curve;
protected SetCurve(cu: Polyline | Circle): void;
/**会将传入的闭合轮廓改为逆时针 */
static CreateContour(cus: Curve[] | Polyline | Circle, needLink?: boolean): Contour;
get Curve(): Polyline | Circle;
get Area(): number;
get BoundingBox(): import("../Geometry/Box").Box3Ext;
/**
* 不等比例缩放
* @param {number} ref 缩放参考值,大于该值的点缩放
* @param {number} dist 缩放距离
* @param {string} dir x y z
*/
UnEqualProportionScale(ref: number, dist: number, dir: "x" | "y"): boolean;
Clone(): Contour;
IntersectionBoolOperation(target: Contour): Contour[];
UnionBoolOperation(target: Contour): {
contours: Contour[];
holes: Contour[];
};
SubstactBoolOperation(target: Contour): Contour[];
/**
* 计算与目标轮廓布尔运算后的结果曲线.
*/
GetIntersetAndUnionList(target: Contour): {
intersectionList: Curve[];
unionList: Curve[];
};
GetSubtractList(target: Contour): Polyline[];
GetSubtractListByMoreTargets(targets: Contour[]): {
holes: Contour[];
outlines: Contour[];
};
GetSubListWithCus(targets: Contour[]): {
holes: Polyline[];
subtractList: Polyline[];
};
/**
* 获得全部闭合曲线
* @若传入二维曲线数据,将默认子数组为闭合曲线段
*/
static GetAllContour(cus: Curve[] | Curve[][]): Contour[];
/**
* 合并曲线组成为多段线
* @param cus 曲线组
* @param [needLink=true] 需要解析成首尾连接状态
* @returns 单一曲线,如果返回超过1个,其他的将被遗弃.
*/
static Combine(cus: Curve[], needLink?: boolean, tolerance?: number): Curve;
get Shape(): THREE.Shape;
CuInOutline(targetCur: Curve): boolean;
Equal(tar: Contour): boolean;
}
//# sourceMappingURL=Contour.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Contour.d.ts","sourceRoot":"","sources":["../../../src/DatabaseServices/Contour.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAM7C,qBAAa,OAAO;IAEhB,OAAO,CAAC,MAAM,CAAoB;IAElC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM;IASxC,oBAAoB;IACpB,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,QAAQ,GAAG,MAAM,EAAE,QAAQ,UAAO;IA2BtE,IAAI,KAAK,IAAI,QAAQ,GAAG,MAAM,CAG7B;IACD,IAAI,IAAI,WAGP;IACD,IAAI,WAAW,sCAGd;IACD;;;;;OAKG;IACH,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG;IAsBhE,KAAK;IAKL,yBAAyB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,EAAE;IAQrD,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG;QAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAAC,KAAK,EAAE,OAAO,EAAE,CAAC;KAAE;IAkE/E,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,EAAE;IA8BjD;;OAEG;IACH,uBAAuB,CAAC,MAAM,EAAE,OAAO,GAAG;QAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;QAAC,SAAS,EAAE,KAAK,EAAE,CAAC;KAAE;IAmG5F,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,QAAQ,EAAE;IA6D5C,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE;;;;IAqC/C,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE;;;;IA2FpC;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE;IAiBzD;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,QAAQ,UAAO,EAAE,SAAS,SAAO,GAAG,KAAK;IA6BtE,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,CAGvB;IACD,WAAW,CAAC,SAAS,EAAE,KAAK;IAI5B,KAAK,CAAC,GAAG,EAAE,OAAO;CAIrB"}

View File

@@ -0,0 +1,18 @@
import { CADFiler } from './CADFiler';
import { CADObject } from './CADObject';
import { Database } from './Database';
export declare class CreateObjectData extends CADObject {
Object?: CADObject;
private CADFiler;
CreateObject: CADObject;
/**
* 如果是实体新建,那么不需要调用`Save`,历史记录会在命令结束的时候调用.
* 如果是实体删除,那么请自行调用`Save`.
*/
constructor(Object?: CADObject);
Save(): this;
GetObject(db: Database): CADObject;
ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=CreateObjectData.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"CreateObjectData.d.ts","sourceRoot":"","sources":["../../../src/DatabaseServices/CreateObjectData.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,qBACa,gBAAiB,SAAQ,SAAS;IAWxB,MAAM,CAAC,EAAE,SAAS;IATrC,OAAO,CAAC,QAAQ,CAA4B;IAG5C,YAAY,EAAE,SAAS,CAAC;IAExB;;;OAGG;gBACgB,MAAM,CAAC,EAAE,SAAS;IAMrC,IAAI;IAUJ,SAAS,CAAC,EAAE,EAAE,QAAQ,GAAG,SAAS;IAYlC,QAAQ,CAAC,IAAI,EAAE,QAAQ;IAOvB,SAAS,CAAC,IAAI,EAAE,QAAQ;CAM3B"}

93
types/DatabaseServices/Database.d.ts vendored Normal file
View File

@@ -0,0 +1,93 @@
import { Vector3 } from 'three';
import { DuplicateRecordCloning } from '../Common/Status';
import { BlockTable } from './BlockTable';
import { BlockTableRecord } from './BlockTableRecord';
import { CADFiler } from './CADFiler';
import { CADObject } from './CADObject';
import { DeepCloneFiler } from './DeepCloneFiler';
import { GroupTable } from './GroupTable';
import { HistoricManage } from './HistoricManage';
import { IdMaping } from './IdMaping';
import { AmbientLight } from './Lights/AmbientLight';
import { DirectionalLight } from './Lights/DirectionalLight';
import { HemisphereLight } from './Lights/HemisphereLight';
import { MaterialTable } from './MaterialTable';
import { ObjectId } from './ObjectId';
import { PhysicalMaterialRecord } from './PhysicalMaterialRecord';
import { ProcessingGroupTable } from './ProcessingGroup/ProcessingGroupTable';
import { TemplateTable } from './Template/TemplateTable';
import { TextureTable } from './TextureTable';
interface OwnerContainer {
Add(object: any, isCheckObjectCleanly?: boolean): void;
}
export declare class Database {
private defaultDatabase;
hm: HistoricManage;
BlockTable: BlockTable;
MaterialTable: MaterialTable;
TextureTable: TextureTable;
TemplateTable: TemplateTable;
GroupTable: GroupTable;
ProcessingGroupTable: ProcessingGroupTable;
ModelSpace: BlockTableRecord;
LayoutSpace: BlockTableRecord;
Lights: BlockTableRecord;
AmbientLight: AmbientLight;
SunLight: DirectionalLight;
HemisphereLight: HemisphereLight;
DefaultMaterial: PhysicalMaterialRecord;
private idIndex;
private idMap;
constructor(buildDefaultDrawing?: boolean, defaultDatabase?: boolean, disableHistoric?: boolean);
private InitLight;
SettingDefaultMaterial(): void;
Destroy(): void;
FileWrite(): CADFiler;
FileRead(file: CADFiler): this;
/**
* 单个数据库内克隆对象(objects),并将他们附加到指定的容器对象(owner).
* @param objects 被克隆的对象
* @param owner 克隆对象的容器
* @param idMap id映射
* @param deferXlation 指示是否应该进行ID转换
* @returns 新克隆的对象列表
*/
DeepCloneObjects(objects: CADObject[], owner: OwnerContainer, idMap?: IdMaping, deferXlation?: boolean): CADObject[];
/**
* 清理拷贝后的实体空引用
*/
private ClearEmptyAssoc;
DeepCloneObject(filer: DeepCloneFiler, object: CADObject, owner: OwnerContainer, idMap?: IdMaping): CADObject | undefined;
/**
* 将来自不同数据库的对象列表拷贝到本数据库中.
* 当前支持使用HardId模式来硬关联某个对象,使该对象能够在WblockClone时一起被带过来.
* 当前不支持硬关联对象的Owner不是默认的容器.
* 如果需要这么做,请将该对象的Owner设置为Hard关联
* @param objects 对象不能属于本数据库
* @param owner 克隆对象的新容器
* @param idMap id映射
*/
WblockCloneObejcts(objects: CADObject[], owner: OwnerContainer, idMap: IdMaping, drc: DuplicateRecordCloning): CADObject[];
/**
* 克隆引用对象 WriteHardObjectId
*/
private WblockCloneReferenceObject;
private WblockCloneObject;
/**
* 为拷贝出来的对象分配id索引,并在数据库中注册
*/
private AllocationObjectId;
Insert(): void;
/**
* 写块
* @param outputDatabase 输出到指定的数据库
* @param objects
* @param basePoint
* @param cloning
*/
Wblock(outputDataBase: Database, objects: CADObject[], basePoint: Vector3, cloning: any): void;
AllocateId(): ObjectId;
GetObjectId(index: number, create?: boolean): ObjectId;
}
export {};
//# sourceMappingURL=Database.d.ts.map

View File

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

View File

@@ -0,0 +1,13 @@
import { CADFiler } from "./CADFiler";
import { ObjectId } from "./ObjectId";
export declare class DeepCloneFiler extends CADFiler {
idMaping: Map<number, ObjectId>;
constructor(idMaping?: Map<number, ObjectId>);
ReadObjectId(): ObjectId;
ReadSoftObjectId(): ObjectId;
ReadHardObjectId(): ObjectId;
hardObjectIds: Set<number>;
cloned: Set<number>;
WriteHardObjectId(id: ObjectId): this;
}
//# sourceMappingURL=DeepCloneFiler.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"DeepCloneFiler.d.ts","sourceRoot":"","sources":["../../../src/DatabaseServices/DeepCloneFiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAiB,MAAM,YAAY,CAAC;AAErD,qBAAa,cAAe,SAAQ,QAAQ;IAErB,QAAQ;gBAAR,QAAQ,wBAA8B;IAKzD,YAAY;IAcZ,gBAAgB;IAQhB,gBAAgB;IAQhB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IACvC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAChC,iBAAiB,CAAC,EAAE,EAAE,QAAQ;CAOjC"}

View File

@@ -0,0 +1,46 @@
import { Line as TLine, Matrix3, Object3D, Vector3 } from "three";
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { CADFiler } from "../CADFiler";
import { Arc } from "../Entity/Arc";
import { Entity } from "../Entity/Entity";
import { Line } from "../Entity/Line";
import { Text } from "../Text/Text";
/**
* 两条直线的标注
*/
export declare class LineAngularDimension extends Entity {
protected m_L1StartPoint: Vector3;
protected m_L1EndPoint: Vector3;
protected m_L2StartPoint: Vector3;
protected m_L2EndPoint: Vector3;
protected m_DimPoint: Vector3;
OnlyRenderType: boolean;
private _Text;
private m_Arc;
constructor(m_L1StartPoint?: Vector3, //第一条直线的起点
m_L1EndPoint?: Vector3, //第一条直线的终点
m_L2StartPoint?: Vector3, //第二条直线的起点
m_L2EndPoint?: Vector3, m_DimPoint?: Vector3);
UpdateDimData(l1sp: Vector3, l1ep: Vector3, l2sp: Vector3, l2ep: Vector3, dimp: Vector3): void;
get Text(): Text;
get L1StartPoint(): Vector3;
get L2StartPoint(): Vector3;
get L1EndPoint(): Vector3;
get L2EndPoint(): Vector3;
get DimPoint(): Vector3;
get Arc(): Arc;
GetGripPoints(): Array<Vector3>;
MoveGripPoints(indexList: number[], vec: Vector3): void;
GetStretchPoints(): Array<Vector3>;
MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
Clone(): this;
Explode(): (Arc | Text)[];
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
InitDrawObject(renderType?: RenderType): Object3D;
Update2Line(l1: Line, l2: Line, intPt: Vector3, li1: TLine, li2: TLine): void;
UpdateDrawObject(renderType: RenderType, obj: Object3D): void;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=2LineAngularDimension.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"2LineAngularDimension.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Dimension/2LineAngularDimension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,IAAI,IAAI,KAAK,EAAa,OAAO,EAAQ,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAInG,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAK7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAc,MAAM,cAAc,CAAC;AAGhD;;GAEG;AACH,qBACa,oBAAqB,SAAQ,MAAM;IAMxC,SAAS,CAAC,cAAc;IACxB,SAAS,CAAC,YAAY;IACtB,SAAS,CAAC,cAAc;IACxB,SAAS,CAAC,YAAY;IACtB,SAAS,CAAC,UAAU;IARxB,cAAc,UAAQ;IACtB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,KAAK,CAAa;gBAEZ,cAAc,UAAgB,EAAE,UAAU;IAC1C,YAAY,UAAgB,EAAI,UAAU;IAC1C,cAAc,UAAgB,EAAE,UAAU;IAC1C,YAAY,UAAgB,EAC5B,UAAU,UAAgB;IASxC,aAAa,CACT,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO;IAmB7E,IAAI,IAAI,SAGP;IACD,IAAI,YAAY,YAGf;IACD,IAAI,YAAY,YAGf;IACD,IAAI,UAAU,YAGb;IACD,IAAI,UAAU,YAGb;IACD,IAAI,QAAQ,YAGX;IACD,IAAI,GAAG,QAGN;IAED,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC;IAa/B,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO;IAiBhD,gBAAgB,IAAI,KAAK,CAAC,OAAO,CAAC;IAIlC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO;IASxD,KAAK,IAAI,IAAI;IAeb,OAAO;IASP,mBAAmB,CACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,EAClB,SAAS,CAAC,EAAE,OAAO,GACpB,OAAO,EAAE;IAWZ,cAAc,CAAC,UAAU,GAAE,UAAiC,GAAG,QAAQ;IAsBvE,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK;IA4CtE,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAgEtD,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAWlC,SAAS,CAAC,IAAI,EAAE,QAAQ;CAY3B"}

View File

@@ -0,0 +1,90 @@
import { Box3, Material, Matrix3, Matrix4, Object3D, Vector2, Vector3 } from "three";
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { CADFiler } from "../CADFiler";
import { Entity } from "../Entity/Entity";
import { Line } from "../Entity/Line";
import { Text, TextAligen } from "../Text/Text";
interface DefaultValue {
offset: Vector2;
isFlipped: boolean;
}
/**
* 对齐标注
* 存在子类重载(线性标注 LinearDimension)
* @class AlignedDimension
*/
export declare class AlignedDimension extends Entity {
protected m_FootP1: Vector3;
protected m_FootP2: Vector3;
protected m_ArmP1: Vector3;
protected m_ArmP2: Vector3;
protected m_TextRotation: number;
protected m_LeadOutVisible: boolean;
private _Text;
private _TextString;
private _TextBoundingBox;
private _LeadOutLine;
private _LeadOutOffsetY;
private _LeadOutOffsetX;
private _DefaultVal;
private _LeadOutPts;
private _LeadOutIsFlipped;
private isDragLeadOutPt;
constructor(m_FootP1?: Vector3, m_FootP2?: Vector3, m_ArmP1?: Vector3, m_ArmP2?: Vector3, m_TextRotation?: number, m_LeadOutVisible?: boolean);
set FootP1(v: Vector3);
get FootP1(): Vector3;
set FootP2(v: Vector3);
get FootP2(): Vector3;
set ArmP1(v: Vector3);
get ArmP1(): Vector3;
set ArmP2(v: Vector3);
get ArmP2(): Vector3;
get TextPosition(): Vector3;
set TextPosition(p: Vector3);
get DalUcs(): Matrix4;
RaiseFooters(num: number): void;
set TextRotation(angle: number);
set TextAligen(al: TextAligen);
get Text(): Text;
set TextString(txt: string);
get TextBoundingBox(): Box3;
set TextBoundingBox(box: Box3);
set LeadOutVisible(visible: boolean);
set LeadOutFlipped(isFlipped: boolean);
get LeadOutFlipped(): boolean;
toggleLeadOutVisible(): void;
toggleLeadOutFlipped(): void;
set LeadOutOffsetY(size: number);
get LeadOutOffsetY(): number;
set LeadOutOffsetX(size: number);
get LeadOutOffsetX(): number;
set DefaultValue(val: DefaultValue);
get DefaultValue(): DefaultValue;
set TextSize(size: number);
get TextSize(): number;
Explode(): (Line | Text)[];
Clone(): this;
CloneDrawObject(from: this): void;
protected OnlyRenderType: boolean;
InitDrawObject(renderType?: RenderType): Object3D;
UpdateDrawObject(renderType: RenderType, obj: Object3D): void;
/**
* 更新引线并返回textPosition
* @returns textPosition(Vector3)
* @memberof AlignedDimension
*/
UpdateLeadOutLine(): Vector3;
UpdateText(pos?: Vector3): void;
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D, material?: Material): void;
GetGripPoints(): Array<Vector3>;
MoveGripPoints(indexList: number[], vec: Vector3): void;
GetStretchPoints(): Array<Vector3>;
MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
protected ChangeFootPt(): void;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
export {};
//# sourceMappingURL=AlignedDimension.d.ts.map

View File

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

View File

@@ -0,0 +1,11 @@
import { Material, Object3D, Vector3 } from "three";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { RadiusDimension } from "./RadiusDimension";
export declare class DiameterDimension extends RadiusDimension {
InitDrawObject(renderType?: RenderType): Object3D;
UpdateDrawObject(renderType: RenderType, obj: Object3D): void;
UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D, material?: Material): void;
UpdateText(): void;
MoveGripPoints(indexList: number[], vec: Vector3): void;
}
//# sourceMappingURL=DimDiameter.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"DimDiameter.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Dimension/DimDiameter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,QAAQ,EAAQ,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAOzF,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAI7D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKpD,qBACa,iBAAkB,SAAQ,eAAe;IAElD,cAAc,CAAC,UAAU,GAAE,UAAiC,GAAG,QAAQ;IAuBvE,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IA8BtD,wBAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ;IAmBnF,UAAU;IAMV,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO;CAoCnD"}

View File

@@ -0,0 +1,5 @@
import { LineBasicMaterial } from "three";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { Entity } from "../Entity/Entity";
export declare function GetDimLineMaterial(dim: Entity, renderType: RenderType): LineBasicMaterial;
//# sourceMappingURL=GetDimLineMaterial.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"GetDimLineMaterial.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Dimension/GetDimLineMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,iBAAiB,CAQzF"}

View File

@@ -0,0 +1,9 @@
import { Vector3 } from "three";
import { AlignedDimension } from "./AlignedDimension";
export declare class LinearDimension extends AlignedDimension {
private m_DimDir;
get TextPosition(): Vector3;
set TextPosition(p: Vector3);
ChangeFootPt(): void;
}
//# sourceMappingURL=LinearDimension.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"LinearDimension.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Dimension/LinearDimension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAgBtD,qBACa,eAAgB,SAAQ,gBAAgB;IAEjD,OAAO,CAAC,QAAQ,CAAY;IAE5B,IAAI,YAAY,IAII,OAAO,CAD1B;IACD,IAAI,YAAY,CAAC,CAAC,EAAE,OAAO,EAyB1B;IACD,YAAY;CAcf"}

View File

@@ -0,0 +1,35 @@
import { Material, Matrix3, Object3D, Vector3 } from "three";
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { CADFiler } from "../CADFiler";
import { Entity } from "../Entity/Entity";
import { Line } from "../Entity/Line";
import { Text } from "../Text/Text";
export declare class RadiusDimension extends Entity {
protected startPt: Vector3;
protected center: Vector3;
protected endPt: Vector3;
OnlyRenderType: boolean;
protected _Text: Text;
constructor(startPt?: Vector3, center?: Vector3, endPt?: Vector3);
get StartPt(): Vector3;
set StartPt(v: Vector3);
get Center(): Vector3;
set Center(v: Vector3);
get EndPt(): Vector3;
set EndPt(v: Vector3);
Explode(): (Line | Text)[];
Clone(): this;
InitDrawObject(renderType?: RenderType): Object3D;
UpdateDrawObject(renderType: RenderType, obj: Object3D): void;
UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D, material?: Material): void;
UpdateText(): void;
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
GetGripPoints(): Array<Vector3>;
MoveGripPoints(indexList: number[], vec: Vector3): void;
GetStretchPoints(): Array<Vector3>;
MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=RadiusDimension.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"RadiusDimension.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Dimension/RadiusDimension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,QAAQ,EAAE,OAAO,EAAQ,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAKlG,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAI7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,qBACa,eAAgB,SAAQ,MAAM;IAOnC,SAAS,CAAC,OAAO;IACjB,SAAS,CAAC,MAAM;IAChB,SAAS,CAAC,KAAK;IANnB,cAAc,UAAQ;IACtB,SAAS,CAAC,KAAK,OAAc;gBAGf,OAAO,UAAgB,EACvB,MAAM,UAAgB,EACtB,KAAK,UAAgB;IAMnC,IAAI,OAAO,IAII,OAAO,CADrB;IACD,IAAI,OAAO,CAAC,CAAC,EAAE,OAAO,EAKrB;IACD,IAAI,MAAM,IAII,OAAO,CADpB;IACD,IAAI,MAAM,CAAC,CAAC,EAAE,OAAO,EAKpB;IACD,IAAI,KAAK,IAII,OAAO,CADnB;IACD,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,EAKnB;IACD,OAAO;IAUP,KAAK,IAAI,IAAI;IAab,cAAc,CAAC,UAAU,GAAE,UAAiC,GAAG,QAAQ;IAsBvE,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAuBtD,wBAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ;IAiBnF,UAAU;IAOV,mBAAmB,CACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,EAClB,SAAS,CAAC,EAAE,OAAO,GACpB,OAAO,EAAE;IAWZ,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC;IAI/B,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO;IA8BhD,gBAAgB,IAAI,KAAK,CAAC,OAAO,CAAC;IAIlC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO;IAQxD,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAQlC,SAAS,CAAC,IAAI,EAAE,QAAQ;CAQ3B"}

138
types/DatabaseServices/Entity/Arc.d.ts vendored Normal file
View File

@@ -0,0 +1,138 @@
import { Box3, BufferGeometry, Line as TLine, Matrix3, Matrix4, Object3D, Shape, Vector2, Vector3 } from 'three';
import { Line2 } from 'three/examples/jsm/lines/Line2';
import { Status } from '../../Common/Status';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
import { IntersectOption } from '../../GraphicsSystem/IntersectWith';
import { RenderType } from '../../GraphicsSystem/RenderType';
import { CADFiler } from '../CADFiler';
import { Curve } from './Curve';
/**
* 圆弧实体类
* 与ACAD不同,这个类加入了时针变量,并且默认构造的圆弧为顺时针圆弧.
*
* 关于时针圆弧:
* 起始圆弧到终止圆弧总是在0-2PI之间.(一个完整的圆).
* 圆弧的绘制从起始圆弧绘制到终止圆弧. 按照时针绘制.
* 参考计算圆弧的完整角度方法查看该计算方式.
*/
export declare class Arc extends Curve {
constructor(center?: Vector3, radius?: number, startAngle?: number, endAngle?: number, clockwise?: boolean);
private _Radius;
private _StartAngle;
private _EndAngle;
/**
* 曲线为顺时针
*/
private _Clockwise;
get Shape(): Shape;
get Center(): Vector3;
set Center(v: Vector3);
get Normal(): Vector3;
set Normal(v: Vector3);
get Area(): number;
get Area2(): number;
get IsClose(): boolean;
get BoundingBox(): Box3;
get Radius(): number;
set Radius(v: number);
get IsClockWise(): boolean;
set IsClockWise(v: boolean);
get StartAngle(): number;
set StartAngle(v: number);
get EndAngle(): number;
set EndAngle(v: number);
get StartPoint(): Vector3;
set StartPoint(v: Vector3);
get EndPoint(): Vector3;
set EndPoint(v: Vector3);
get StartParam(): number;
get EndParam(): number;
get Length(): number;
GetParamAtPoint2(pt: Vector3): number;
PtOnCurve3(p: Vector3, fuzz?: number): boolean;
protected ApplyScaleMatrix(m: Matrix4): this;
protected ApplyMirrorMatrix(m: Matrix4): this;
GetPointAtParam(param: number): Vector3;
GetPointAtDistance(distance: number): Vector3;
GetDistAtParam(param: number): number;
GetDistAtPoint(pt: Vector3): number;
GetParamAtPoint(pt: Vector3): number;
/**
* 利用角度计算该角度在圆弧中代表的参数.
* 如果角度在圆弧内,那么返回0-1
* 如果角度不在圆弧内,那么尝试返回离圆弧起始或者结束的较近的参数
*
* @param {number} an
* @returns
* @memberof Arc
*/
GetParamAtAngle(an: number): number;
/**
* 根据角度获得参数,不过在这里我们可以指定我们是要获取前面的参数还是后面的参数(正负)
* @param an
* @param [isStart] true:返回负数false 返回正数
* @returns
*/
GetParamAtAngle2(an: number, isStart?: boolean): number;
GetAngleAtPoint(pt: Vector3): number;
GetAngleAtParam(param: number): number;
GetSplitCurves(param: number[] | number): Arc[];
GetOffsetCurves(offsetDist: number): Arc[];
Extend(newParam: number): void;
Join(cu: Curve): Status;
Reverse(): this;
IntersectWith2(curve: Curve, intType: IntersectOption, tolerance?: number): import("../../GraphicsSystem/IntersectWith").IntersectResult[];
/**
* 计算出圆弧所包含的角度
*
* @readonly
* @type {number}
* @memberof Arc
*/
get AllAngle(): number;
get Bul(): number;
/**
* 计算所包含的角度
*
* @private
* @param {number} endAngle 结束的角度
* @returns
* @memberof Arc
*/
ComputeAnlge(endAngle: number): number;
/**
* 解析两点和凸度所构成的圆弧
*
* @param {Vector2} p1
* @param {Vector2} p2
* @param {number} bul 凸度,在cad中,凸度为 <(四分之一圆心角)的正切值>
*/
ParseFromBul(p1: Vector3 | Vector2, p2: Vector3 | Vector2, bul: number): Arc;
FromThreePoint(pt1: Vector3, pt2: Vector3, pt3: Vector3): this;
/**
* 重载: 初始化绘制实体.
*
* @param {RenderType} [renderType=RenderType.Wireframe]
*/
InitDrawObject(renderType?: RenderType): Line2 | TLine<BufferGeometry, import("three").LineBasicMaterial>;
private UpdateGeometry;
/**
* 重载:更新绘制的实体
*
* @param {RenderType} type
* @param {Object3D} obj
* @memberof Arc
*/
UpdateDrawObject(type: RenderType, obj: Object3D): void;
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
GetGripPoints(): Array<Vector3>;
MoveGripPoints(indexList: Array<number>, vec: Vector3): void;
GetStretchPoints(): Array<Vector3>;
MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
GetParamAtDist(d: number): number;
GetFistDeriv(pt: number | Vector3): Vector3;
GetClosestPointTo(pt: Vector3, extend: boolean): Vector3;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=Arc.d.ts.map

View File

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

152
types/DatabaseServices/Entity/Board.d.ts vendored Normal file
View File

@@ -0,0 +1,152 @@
import { Matrix4, Vector3, Object3D, Geometry, Matrix3, UVGenerator } from 'three';
import { BoardOpenDir, BoardProcessOption, BoardType, FaceDirection } from '../../UI/Store/BoardInterface';
import { CADFiler } from '../CADFiler';
import { ObjectId } from '../ObjectId';
import { Shape } from '../Shape';
import { ExtrudeSolid, ExtureContourCurve } from './Extrude';
import { RenderType } from '../../GraphicsSystem/RenderType';
import { Polyline } from './Polyline';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
export declare function ConverBoardTypeToSpaceType(type: BoardType): number;
export interface IModeling {
shape: Shape;
thickness: number;
dir: FaceDirection;
knifeRadius: number;
addLen: number;
addWidth?: number;
addDepth?: number;
}
export interface IKnifeInfo {
angle: number;
radius: number;
id: string;
name: string;
}
export interface I2DModeingItem {
depth: number;
offset: number;
knife: IKnifeInfo;
}
export interface I2DModeling {
path: Polyline;
dir: FaceDirection;
items: I2DModeingItem[];
}
export interface IPathItem {
pt: Vector3;
bul: number;
}
export interface I3DModeling {
path: IPathItem[];
dir: FaceDirection;
knife: IKnifeInfo;
}
/**
* 板件实体
*/
export declare class Board extends ExtrudeSolid {
private _Rotation;
private _BoardType;
private _Name;
private _BoardProcessOption;
private _DrillList;
private _LayerNails;
RelativeHardware: ObjectId[];
OpenDir: BoardOpenDir;
private _IsChaiDan;
private _2DModelingList;
private _3DModelingList;
constructor();
/**
* 创建一个代理数组,数组改变时被监听
*/
private CreateArray;
private InitBoardData;
InitBoard(length: number, width: number, thickness: number, boardType?: BoardType): void;
static CreateBoard(length: number, width: number, thickness: number, boardType?: BoardType): Board;
get DrillList(): Map<ObjectId, ObjectId[][]>;
get LayerNails(): ObjectId[];
AppendNails(ids: ObjectId[]): void;
ClearLayerNails(): void;
/**
* 你可以安心的修改它,这样会直接影响到板件,因为板件对这个对象添加了代理.
*/
get BoardProcessOption(): BoardProcessOption;
set BoardProcessOption(obj: BoardProcessOption);
get NeedUpdateRelevanceGroove(): boolean;
protected GetRelevanceKnifes(knifs: ExtrudeSolid[]): void;
ClearRelevance(en?: ExtrudeSolid): void;
get SplitBoards(): this[];
get BoardModeling(): IModeling[];
set BoardModeling(models: IModeling[]);
get Modeling2D(): I2DModeling[];
set Modeling2D(ms: I2DModeling[]);
get Modeling3D(): I3DModeling[];
set Modeling3D(ms: I3DModeling[]);
ClearModeling2DList(): void;
ClearModeling3DList(): void;
get IsChaiDan(): boolean;
set IsChaiDan(v: boolean);
ClearBoardModeling(): void;
/**
* 注意传入的排钻列表,避免指针被引用
*/
AppendDrillList(k: ObjectId, drs: ObjectId[][]): void;
ClearDrillList(k: ObjectId): void;
ClearAllDrillList(): void;
Erase(isErase?: boolean): void;
get RotateMat(): Matrix4;
get Height(): number;
set Height(v: number);
get Width(): number;
set Width(v: number);
get BoardType(): BoardType;
set BoardType(type: BoardType);
SetBoardType(type: BoardType): void;
get MinPoint(): Vector3;
get MaxPoint(): Vector3;
get IsRect(): boolean;
get IsSpecialShape(): boolean;
get HasGroove(): boolean;
get Name(): string;
set Name(n: string);
/**
* 板件的轮廓,在板件坐标系中的表现方式.
*/
get ContourCurve(): ExtureContourCurve;
set ContourCurve(cu: ExtureContourCurve);
Explode(): import("./Region").Region[];
RotateBoard(rox: number, roy: number, roz: number): void;
get Rotation(): {
x: number;
y: number;
z: number;
};
protected ApplyMirrorMatrix(m: Matrix4): this;
get UCGenerator(): UVGenerator;
UpdateUV(geo: Geometry, ocs: Matrix4, isRev?: boolean): void;
CopyFrom(obj: Board): void;
Clone(): this;
Join(target: this): import("../../Common/Status").Status;
private GetLinesDir;
private _2D3DPathObject;
private Get2DAnd3DPaths;
HandleSpliteEntitys(splitEntitys: this[]): void;
InitDrawObject(renderType?: RenderType): Object3D;
UpdateDrawObject(renderType: RenderType, obj: Object3D): Object3D;
OffsetPathCache: Map<Polyline, {
[key: string]: Polyline;
}>;
private GetOffsetPath;
private HandleBoardMaterial;
UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D): void;
CheckSealing(obj: Object3D): void;
GetStretchPoints(): Vector3[];
MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
DeferUpdate(): void;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=Board.d.ts.map

View File

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

View File

@@ -0,0 +1,16 @@
import { Entity } from "./Entity";
import { BoxBufferGeometry, Object3D } from "three";
import { RenderType } from "../../GraphicsSystem/RenderType";
export declare function GetBoxGeoBufferGeometry(): BoxBufferGeometry;
export declare class BoxSolid extends Entity {
private _length;
private _width;
private _height;
OnlyRenderType: boolean;
private _opacity;
constructor(_length?: number, _width?: number, _height?: number);
set Opacity(o: number);
InitDrawObject(renderType?: RenderType): Object3D;
UpdateDrawObject(type: RenderType, obj: Object3D): void;
}
//# sourceMappingURL=BoxSolid.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"BoxSolid.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Entity/BoxSolid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAQ,QAAQ,EAA8B,MAAM,OAAO,CAAC;AAEtF,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAI7D,wBAAgB,uBAAuB,sBAKtC;AAED,qBACa,QAAS,SAAQ,MAAM;IAIpB,OAAO,CAAC,OAAO;IAAM,OAAO,CAAC,MAAM;IAAM,OAAO,CAAC,OAAO;IAFpE,cAAc,UAAQ;IACtB,OAAO,CAAC,QAAQ,CAAO;gBACH,OAAO,SAAI,EAAU,MAAM,SAAI,EAAU,OAAO,SAAI;IAIxE,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,EAQpB;IACD,cAAc,CAAC,UAAU,GAAE,UAAiC;IAS5D,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;CAOnD"}

View File

@@ -0,0 +1,56 @@
import { Material, Matrix3, Matrix4, Object3D, Vector3 } from 'three';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
import { Box3Ext } from '../../Geometry/Box';
import { IntersectOption } from '../../GraphicsSystem/IntersectWith';
import { RenderType } from '../../GraphicsSystem/RenderType';
import { CADFiler } from '../CADFiler';
import { Shape2 } from '../Shape2';
import { Arc } from './Arc';
import { Curve } from './Curve';
import { DragPointType } from './DragPointType';
export declare class Circle extends Curve {
constructor(center?: Vector3, radius?: number);
private _Radius;
get Shape(): Shape2;
get Center(): Vector3;
set Center(v: Vector3);
get Radius(): number;
set Radius(v: number);
protected ApplyScaleMatrix(m: Matrix4): this;
protected ApplyMirrorMatrix(m: Matrix4): this;
get StartPoint(): Vector3;
get StartParam(): number;
get EndPoint(): Vector3;
get EndParam(): number;
PtInCurve(pt: Vector3): boolean;
get Area(): number;
get Area2(): number;
get Length(): number;
get IsClose(): boolean;
get IsClockWise(): boolean;
GetPointAtParam(param: number): Vector3;
GetPointAtDistance(distance: number): Vector3;
GetDistAtParam(param: number): number;
GetDistAtPoint(pt: Vector3): number;
GetParamAtDist(d: number): number;
GetSplitCurves(param: number[] | number): Arc[];
GetParamAtPoint(pt?: Vector3): number;
PtOnCurve(pt: Vector3): boolean;
GetOffsetCurves(offsetDist: number): Curve[];
IntersectWith2(curve: Curve, intType: IntersectOption): import("../../GraphicsSystem/IntersectWith").IntersectResult[];
get BoundingBox(): Box3Ext;
InitDrawObject(renderType?: RenderType): Object3D;
UpdateDrawObject(type: RenderType, obj: Object3D): void;
UpdateDrawObjectMaterial(type: RenderType, obj: Object3D, material: Material): Object3D;
GetDragPointCount(drag: DragPointType): number;
GetGripPoints(): Array<Vector3>;
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
MoveGripPoints(indexList: Array<number>, vec: Vector3): void;
GetStretchPoints(): Array<Vector3>;
MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
GetFistDeriv(pt: number | Vector3): Vector3;
GetClosestPointTo(pt: Vector3, extend: boolean): Vector3;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=Circle.d.ts.map

View File

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

View File

@@ -0,0 +1,52 @@
import { Matrix3, Object3D, Vector3 } from "three";
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
import { Box3Ext } from "../../Geometry/Box";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { CADFiler } from "../CADFiler";
import { DragPointType } from "./DragPointType";
import { Entity } from "./Entity";
export declare class CompositeEntity extends Entity {
constructor();
Entitys: Entity[];
/**
* 初始化绘制的threejs实体,子类型重载该函数初始化绘制实体.
*/
Explode(): Entity[];
Traverse(callback: (arg0: Entity) => void): void;
get BoundingBox(): Box3Ext;
protected InitDrawObject(renderType?: RenderType): Object3D;
UpdateDrawObject(renderType: RenderType, obj: Object3D): void;
get ColorIndex(): number;
set ColorIndex(color: number);
get Material(): import("../ObjectId").ObjectId;
set Material(id: import("../ObjectId").ObjectId);
UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D): void;
RestoreJigMaterial(): void;
/**
*
* @param snapMode 捕捉模式(单一)
* @param pickPoint const
* @param lastPoint const
* @param viewXform const 最近点捕捉需要这个变量
* @returns object snap points
*/
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
GetGripPoints(): Array<Vector3>;
MoveGripPoints(indexList: number[], vec: Vector3): void;
GetStretchPoints(): Array<Vector3>;
/**
* 拉伸夹点,用于Stretch命令
*
* @param {Array<number>} indexList 拉伸点索引列表.
* @param {Vector3} vec 移动向量
* @memberof Entity
*/
MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
private GetGripOrStretchPoints;
private GetStrectchPointCountList;
MoveGripOrStretchPoints(indexList: number[], vec: Vector3, dragType: DragPointType): void;
CloneDrawObject(from: this): void;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=CompositeEntity.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"CompositeEntity.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Entity/CompositeEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAKnD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,qBACa,eAAgB,SAAQ,MAAM;;IAO3B,OAAO,EAAE,MAAM,EAAE,CAAM;IAInC;;MAEE;IACF,OAAO;IASP,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;IAWzC,IAAI,WAAW,YAMd;IACD,SAAS,CAAC,cAAc,CAAC,UAAU,GAAE,UAAiC,GAAG,QAAQ;IAYjF,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAmBtD,IAAI,UAAU,IAAI,MAAM,CAGvB;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAgB3B;IACD,IAAI,QAAQ,mCAGX;IACD,IAAI,QAAQ,CAAC,EAAE,gCAAA,EAKd;IAED,wBAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAK9D,kBAAkB;IASlB;;;;;;;MAOE;IACF,mBAAmB,CACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,EAClB,SAAS,CAAC,EAAE,OAAO,GACpB,OAAO,EAAE;IAUZ,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC;IAK/B,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO;IAMhD,gBAAgB,IAAI,KAAK,CAAC,OAAO,CAAC;IAKlC;;;;;;OAMG;IACH,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO;IAMxD,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,yBAAyB;IASjC,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa;IA4ClF,eAAe,CAAC,IAAI,EAAE,IAAI;IAqB1B,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAclC,SAAS,CAAC,IAAI,EAAE,QAAQ;CAS3B"}

109
types/DatabaseServices/Entity/Curve.d.ts vendored Normal file
View File

@@ -0,0 +1,109 @@
import { Material, Object3D, Shape, Vector3 } from 'three';
import { Status } from '../../Common/Status';
import { IntersectOption, IntersectResult } from '../../GraphicsSystem/IntersectWith';
import { RenderType } from '../../GraphicsSystem/RenderType';
import { DragPointType } from './DragPointType';
import { Entity } from './Entity';
export declare enum ExtendType {
/**
* 前后都不延伸
*/
None = 0,
/**
* 只允许延伸前面
*/
Front = 1,
/**
* 只允许延伸后面
*/
Back = 2,
/**
* 前后延伸
*/
Both = 3
}
/**
* 曲线的基类,子类请实现以下方法.
*/
export declare abstract class Curve extends Entity {
constructor();
get Is2D(): boolean;
get StartPoint(): Vector3;
set StartPoint(v: Vector3);
get StartParam(): number;
get EndPoint(): Vector3;
set EndPoint(v: Vector3);
/** 曲线中点 */
get Midpoint(): Vector3;
get MidParam(): number;
get EndParam(): number;
get Area(): number;
/**
*获得曲线的面积,逆时针为正,顺时针为负.
*/
get Area2(): number;
get Length(): number;
get IsClose(): boolean;
/** 曲线为顺时针 */
get IsClockWise(): boolean;
abstract get Shape(): Shape;
GetPointAtParam(param: number): Vector3;
GetPointAtDistance(distance: number): Vector3;
GetDistAtParam(param: number): number;
GetDistAtPoint(pt: Vector3): number;
GetParamAtPoint(pt: Vector3): number;
GetParamAtPoint2(pt: Vector3): number;
GetParamAtDist(d: number): number;
/**
* 返回曲线在指定位置的一阶导数(在wcs内)
*
* @param {(number | Vector3)} param
* @returns {Vector3}
* @memberof Curve
*/
GetFistDeriv(param: number | Vector3): Vector3;
GetFistDerivAngle(param: number | Vector3): number;
/**
* 返回切割曲线后的结果.总是从起点开始切割,并且按顺序返回曲线.
* @param {(number[] | number)} param
* @returns {Array<Curve>}
*/
GetSplitCurves(param: number[] | number): Array<Curve>;
GetCurveAtParamRange(startParam: number, EndParam: number): Array<Curve>;
GetSplitCurvesByPts(pt: Vector3[] | Vector3): Array<Curve>;
protected SplitParamSort(param: number[] | number): number[];
Extend(newParam: number): void;
/**
* 连接曲线到本曲线,如果成功返回true
* @param {Curve} cu 需要连接的曲线
* @returns {boolean} 连接成功
* @memberof Curve
*/
Join(cu: Curve, allowGap?: boolean, tolerance?: number): Status;
Reverse(): this;
PtOnCurve(pt: Vector3, fuzz?: number): boolean;
PtOnCurve2(pt: Vector3): boolean;
PtOnCurve3(p: Vector3, fuzz?: number): boolean;
ParamOnCurve(param: number, fuzz?: number): boolean;
GetOffsetCurves(offsetDist: number): Array<Curve>;
GetClosestPointTo(pt: Vector3, extend: boolean): Vector3;
/**
* 曲线相交点
*/
IntersectWith(curve: Curve, intType: IntersectOption, tolerance?: number): Vector3[];
/**
* 曲线相交点和点的参数
*/
IntersectWith2(curve: Curve, intType: IntersectOption, tolerance?: number): IntersectResult[];
/**
* 拽托点个数
*/
GetDragPointCount(drag: DragPointType): number;
protected OnlyRenderType: boolean;
/**
* 重载:更新实体材质
*/
UpdateDrawObjectMaterial(type: RenderType, obj: Object3D, material?: Material): void;
UpdateJigMaterial(color?: number): void;
}
//# sourceMappingURL=Curve.d.ts.map

View File

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

View File

@@ -0,0 +1,5 @@
export declare enum DragPointType {
Grip = 0,
Stretch = 1
}
//# sourceMappingURL=DragPointType.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"DragPointType.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Entity/DragPointType.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IAErB,IAAI,IAAI;IACR,OAAO,IAAI;CACd"}

View File

@@ -0,0 +1,67 @@
import { Box3, Matrix3, Object3D, Shape, Vector3 } from 'three';
import { Status } from '../../Common/Status';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
import { IntersectOption } from '../../GraphicsSystem/IntersectWith';
import { RenderType } from '../../GraphicsSystem/RenderType';
import { CADFiler } from '../CADFiler';
import { Curve } from './Curve';
import { Polyline } from './Polyline';
export declare class Ellipse extends Curve {
private _radX;
private _radY;
private _rotate;
private _startAngle;
private _endAngle;
constructor(center?: Vector3, radX?: number, radY?: number, angle?: number);
get StartParam(): number;
get EndParam(): number;
get StartPoint(): Vector3;
get EndPoint(): Vector3;
get Shape(): Shape;
get IsClose(): boolean;
get Center(): Vector3;
set Center(v: Vector3);
get RadX(): number;
set RadX(v: number);
get RadY(): number;
set RadY(v: number);
get Rotation(): number;
set Rotation(v: number);
get StartAngle(): number;
get EndAngle(): number;
set StartAngle(v: number);
set EndAngle(v: number);
get Length(): number;
get Area(): number;
get TotalAngle(): number;
get BoundingBox(): Box3;
PtInCurve(pt: Vector3): boolean;
PtOnCurve(pt: Vector3): boolean;
PtOnEllipse(pt: Vector3): boolean;
GetPointAtParam(param: number): Vector3;
GetParamAtPoint(pt?: Vector3): number;
GetPointAtDistance(distance: number): Vector3;
GetDistAtParam(param: number): number;
GetDistAtPoint(pt: Vector3): number;
GetParamAtDist(d: number): number;
GetAngleAtParam(par: number): number;
GetCircleAngleAtPoint(pt: Vector3): number;
GetFistDeriv(pt: number | Vector3): Vector3;
GetClosestPointTo(p: Vector3, extend: boolean): Vector3;
GetOffsetCurves(offsetDist: number): this[];
GetSplitCurves(param: number[] | number): this[];
Join(el: Ellipse): Status.False | Status.False | Status.True;
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
IntersectWith2(curve: Curve, intType: IntersectOption): import("../../GraphicsSystem/IntersectWith").IntersectResult[];
InitDrawObject(renderType?: RenderType): Object3D;
UpdateDrawObject(type: RenderType, obj: Object3D): void;
private UpdateGeometry;
GetStretchPoints(): Array<Vector3>;
GetGripPoints(): Array<Vector3>;
MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
MoveGripPoints(indexList: Array<number>, vec: Vector3): void;
Convert2Polyline(count?: number): Polyline;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=Ellipse.d.ts.map

View File

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

View File

@@ -0,0 +1,156 @@
import { Box3, Material, Matrix3, Matrix4, MeshStandardMaterial, Object3D, Vector3 } from 'three';
import { UpdateDraw } from '../../Common/Status';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
import { Box3Ext } from '../../Geometry/Box';
import { IntersectOption } from '../../GraphicsSystem/IntersectWith';
import { RenderType } from '../../GraphicsSystem/RenderType';
import { CADFiler } from '../CADFiler';
import { CADObject } from '../CADObject';
import { ObjectId } from '../ObjectId';
/**
* Entity 是所有图元的基类,绘制的实体都集成该类.
*/
export declare class Entity extends CADObject {
IsEmbedEntity: boolean;
/**
* 该实体的只有一个渲染类型,任何渲染类型都一个样
*/
protected OnlyRenderType: boolean;
protected _CacheDrawObject: Map<RenderType, Object3D>;
protected materialId: ObjectId;
protected _Color: number;
protected _Matrix: Matrix4;
protected _SpaceOCS: Matrix4;
get SpaceOCS(): Matrix4;
get SpaceOCSInv(): Matrix4;
set SpaceOCS(m: Matrix4);
protected _Visible: boolean;
GroupId: ObjectId;
Template: ObjectId;
ProcessingGroupList: ObjectId[];
/**
* 当AutoUpdate为false时,记录需要更新的标志.
* 以便延迟更新时找到相应的更新标志.
*/
NeedUpdateFlag: UpdateDraw;
AutoUpdate: boolean;
set Material(materialId: ObjectId);
get Material(): ObjectId;
set ColorIndex(color: number);
get ColorIndex(): number;
/**
* 炸开实体
*/
Explode(): Entity[];
/**
* 返回对象的包围框.
*/
get BoundingBox(): Box3;
/**
* 返回对象在自身坐标系下的Box
*/
get BoundingBoxInOCS(): Box3Ext;
GetBoundingBoxInMtx(mtx: Matrix4): Box3Ext;
get BoundingBoxInSpaceCS(): Box3Ext;
get OCS(): Matrix4;
get OCSNoClone(): Matrix4;
set OCS(mat4: Matrix4);
get Normal(): Vector3;
get Position(): Vector3;
set Position(pt: Vector3);
Z0(): this;
MatrixPlanarizere(): this;
get OCSInv(): Matrix4;
/**
* 与指定实体是否共面.
*/
IsCoplaneTo(e: Entity): boolean;
/**
* 测试两个实体的包围盒是否相交.
*/
BoundingBoxIntersectWith(en: Entity): boolean;
ClearDraw(): this;
ClearDrawOfJig(): void;
get IsOnlyRender(): boolean;
_drawObject: Object3D;
get DrawObject(): Object3D;
get JigObject(): Object3D;
DestroyJigObject(): void;
protected _CurRenderType: RenderType;
UpdateRenderType(type: RenderType): void;
GetDrawObjectFromRenderType(renderType?: RenderType): Object3D;
/**
* 初始化绘制的threejs实体,子类型重载该函数初始化绘制实体.
*/
protected InitDrawObject(renderType?: RenderType): Object3D;
__UpdateVersion__: number;
/**
* 当实体数据改变时,绘制的实体必须做出改变.供框架调用
*/
Update(mode?: UpdateDraw): void;
UpdateDrawGeometry(): void;
DeferUpdate(): void;
/**
* 当实体需要更新时,需要重载该方法,实现实体更新
*/
UpdateDrawObject(type: RenderType, en: Object3D): void;
/**
* 当实体需要被更新时,更新实体材质
*/
UpdateDrawObjectMaterial(type: RenderType, obj: Object3D, material?: Material): void;
protected get MeshMaterial(): import("three").MeshBasicMaterial | MeshStandardMaterial;
/**
* 更新实体Jig状态时的材质
*/
UpdateJigMaterial(color?: number): void;
RestoreJigMaterial(): void;
get Visible(): boolean;
set Visible(v: boolean);
private get IsVisible();
UpdateVisible(): void;
GoodBye(): void;
Erase(isErase?: boolean): void;
EraseEvent(isErase: boolean): void;
/**
* 使用统一的方法设置对象的矩阵.
* 需要对缩放矩形进行重载.避免对象矩阵不是单位矩阵
*/
ApplyMatrix(m: Matrix4): this;
protected ApplyScaleMatrix(m: Matrix4): this;
protected ApplyMirrorMatrix(m: Matrix4): this;
GetGripPoints(): Array<Vector3>;
MoveGripPoints(indexList: number[], vec: Vector3): void;
/**
*
* @param snapMode 捕捉模式(单一)
* @param pickPoint const
* @param lastPoint const
* @param viewXform const 最近点捕捉需要这个变量
* @returns object snap points
*/
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
GetStretchPoints(): Array<Vector3>;
/**
* 拉伸夹点,用于Stretch命令
*
* @param {Array<number>} indexList 拉伸点索引列表.
* @param {Vector3} vec 移动向量
* @memberof Entity
*/
MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
IntersectWith(curve: Entity, intType: IntersectOption): Vector3[];
Clone(): this;
CloneDrawObject(from: this): void;
static __ReadFileIng__: boolean;
__ReadFileIng__: boolean;
get ReadFileIng(): boolean;
/**
* 从文件读取,序列化自身,如果需要,重载_ReadFile
*/
ReadFile(file: CADFiler): void;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
ApplyPartialUndo(undoData: CADObject): void;
CopyFrom(obj: CADObject): void;
}
//# sourceMappingURL=Entity.d.ts.map

View File

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

View File

@@ -0,0 +1,17 @@
import { Object3D } from "three";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { CADFiler } from "../CADFiler";
import { Entity } from "./Entity";
/**
* 外部引用的实体,比如glTF
*/
export declare class EntityRef extends Entity {
private _url?;
OnlyRenderType: boolean;
constructor(_url?: string);
InitDrawObject(renderType?: RenderType): Object3D;
UpdateDrawObject(type: RenderType, obj: Object3D): void;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=EntityRef.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"EntityRef.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Entity/EntityRef.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;GAEG;AACH,qBACa,SAAU,SAAQ,MAAM;IAGrB,OAAO,CAAC,IAAI,CAAC;IADzB,cAAc,UAAQ;gBACF,IAAI,CAAC,EAAE,MAAM;IAMjC,cAAc,CAAC,UAAU,GAAE,UAAiC;IAgC5D,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAQhD,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAOlC,SAAS,CAAC,IAAI,EAAE,QAAQ;CAO3B"}

View File

@@ -0,0 +1,234 @@
import { BoxGeometry, BufferGeometry, Geometry, Matrix3, Matrix4, Mesh, Object3D, UVGenerator, Vector3 } from "three";
import { Line2 } from "three/examples/jsm/lines/Line2";
import { Status } from "../../Common/Status";
import { CSG } from "../../csg/core/CSG";
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
import { Box3Ext } from "../../Geometry/Box";
import { OBB } from "../../Geometry/OBB/obb";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { CADFiler } from "../CADFiler";
import { ObjectId } from "../ObjectId";
import { Shape } from "../Shape";
import { Circle } from "./Circle";
import { DragPointType } from "./DragPointType";
import { Entity } from "./Entity";
import { Polyline } from "./Polyline";
import { Region } from "./Region";
export declare type ExtureContourCurve = Polyline | Circle;
export declare type ExtureContour = Polyline | Circle | ExtrudeSolid | Region;
export declare class ExtrudeSolid extends Entity {
protected height: number;
protected width: number;
/**
* 拉伸实体的厚度
* 我们允许它是一个负数,但是这个时候这个实体已经是一个无效的拉伸实体了.
* 允许负数,用来校验凹槽的合理性.
*/
protected thickness: number;
protected isRect: boolean;
IsKnife: boolean;
RelevanceMeats: ObjectId[];
RelevanceKnifs: ObjectId[];
__OriginalId__: ObjectId;
__OriginalEnt__: this;
/**
* 拉伸形状
* 出于优化考虑,可能未初始化
* 形状位于WCS 0点位置,不随OCS变化而变化
*/
protected contourCurve: ExtureContourCurve;
/**
* 正面和反面的凹槽造型
*/
protected grooves: ExtrudeSolid[];
protected knifeRadius: number;
protected groovesAddLength: number;
protected groovesAddWidth: number;
protected groovesAddDepth: number;
__TempIndexVersion__: {
Index: number;
Version: number;
};
constructor();
get KnifeRadius(): number;
set KnifeRadius(v: number);
get BoundingBox(): Box3Ext;
get BoundingBoxInOCS(): Box3Ext;
get OBB(): OBB;
get GroovesAddLength(): number;
set GroovesAddLength(v: number);
get GroovesAddWidth(): number;
set GroovesAddWidth(v: number);
get GroovesAddDepth(): number;
set GroovesAddDepth(v: number);
Clone(): this;
ApplyMatrix(m: Matrix4): this;
protected ApplyScaleMatrix(m: Matrix4): this;
get Position(): Vector3;
set Position(p: Vector3);
get Width(): number;
get Height(): number;
get Thickness(): number;
set Thickness(thickness: number);
get Grooves(): ExtrudeSolid[];
/**
* 返回未拷贝的轮廓曲线
*/
get ContourCurve(): ExtureContourCurve;
set ContourCurve(cu: ExtureContourCurve);
/**
* 生成矩形轮廓(强制)
*/
GeneralRectContour(): void;
/**
* 转换成矩形拉伸实体
*/
ConverToRectSolid(width?: number, height?: number, thickness?: number): this;
/**
* 更新拉伸实体的轮廓
* @param curve 曲线已经存在WCS坐标系
*/
SetContourCurve(curve: ExtureContourCurve): void;
/**
* 在不改变Normal和实体显示的情况下,修改X轴的指向
* @param xAxis
*/
SetXAxis(xAxis: Vector3): this;
/**
* 检验轮廓曲线,通常当轮廓曲线被修改时,都需要检验轮廓曲线,并更新实体大小和轮廓位置.
* >计算轮廓大小
* >判断是否矩形
* >修正轮廓基点
*/
CheckContourCurve(): void;
get IsRect(): boolean;
/**
* 这个拉伸实体的面域形状
*/
get Shape(): Shape;
/**
* 实体合并(不会删除target)
*/
Join(target: this): Status;
get Volume(): number;
/**
* 被切割
* @param extrudes 切割刀
* @param [output=undefined] 如果实体被分裂,那么输出分裂的其他实体(如果为空,则尝试入当前实体的容器中)
* @param [checkIntersect=true] 检查相交,性能优化
* @returns 切割是否成功
*/
Subtract(extrudes: ExtrudeSolid[], output?: ExtrudeSolid[], checkIntersect?: boolean): boolean;
RelevanceSubtract(knif: ExtrudeSolid, check?: boolean): void;
/**
* 当实体被分裂后,加入新图纸时,需要修复关联拉槽
*/
RepairRelevance(): void;
AppendGroove(groove: ExtrudeSolid): void;
/** 添加槽进板件,并且自动分裂.
* 通常槽已经校验过准确性,所以不在校验
*/
AppendGrooves(grooves: ExtrudeSolid[], output?: ExtrudeSolid[]): void;
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
protected GetStrectchPointCountList(dragType: DragPointType): number[];
GetGripOrStretchPoints(dragType: DragPointType): Vector3[];
MoveGripOrStretchPoints(indexList: number[], vec: Vector3, dragType: DragPointType): void;
GetGripPoints(): Array<Vector3>;
MoveGripPoints(indexList: number[], vec: Vector3): void;
GetStretchPoints(): Vector3[];
MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
/**
* 只对自身的轮廓和厚度进行拉伸,忽略子实体
*/
MoveGripOrStretchPointsOnly(indexList: Array<number>, vec: Vector3, dragType: DragPointType): void;
IsStretchThickness(indexs: number[]): boolean;
/**
* 当调用Draw时,可以生成bsp信息
*/
private csg;
get CSG(): CSG;
/**
* (步骤1.2.)
* 将目标拉伸实体转换成在板件内部可用的凹槽实体
* @param target 该对象可能被修改(内部不拷贝该实体)
* @param useClone 转换后的实体是目标实体拷贝后修改的
*/
ConverToLocalGroove(target: ExtrudeSolid): ExtrudeSolid[];
/**
* (步骤2)
* 更新凹槽位置和厚度(校验凹槽的Z轴位置是否存在交集)
*/
GrooveCheckPosition(target: ExtrudeSolid): Status;
/**
* (步骤3)
* 计算凹槽合并
*/
GrooveCheckMerge(): void;
/**
* (步骤4.1)
* 计算凹槽轮廓(可能分裂)
* @param target 不拷贝修改
* @returns this[] 凹槽在本实体中正确的约束状态.(可能分裂成为多个)
*/
GrooveCheckContour(target: ExtrudeSolid): ExtrudeSolid[];
/**
* (步骤4.2)
* 计算本实体被全身度的凹槽差集后正确的实体轮廓,和有可能的分裂实体
* @param splitEntitys 分裂出来的实体
* @returns [Status] Status : 消失不见
*/
ContourCheckSubtract(splitEntitys: this[]): boolean;
IsLazyGrooveCheck: boolean;
IsNeedGrooveCheck: boolean;
/**
* 无法知道修改了轮廓是否为更新到内部凹槽.
* 无法知道修改了内部凹槽之后是否会更新到轮廓.
* 所以默认全部校验内部的凹槽
*/
GrooveCheckAll(splitEntitys: this[]): void;
/** 校验内部槽并且自动分裂 */
GrooveCheckAllAutoSplit(output?: ExtrudeSolid[]): void;
HandleSpliteEntitys(splitEntitys: this[]): void;
LazyGrooveCheckAll(): void;
GetPrintObject3D(): (Line2 | Mesh<BufferGeometry, import("three").ShaderMaterial>)[];
InitDrawObject(renderType?: RenderType): Object3D;
get UCGenerator(): UVGenerator;
__CacheKnifVersion__: {
[key: number]: number;
};
get NeedUpdateRelevanceGroove(): boolean;
__CacheVolume__: number;
__CacheSplitExtrudes: this[];
/**
* 计算关联拉槽,更新绘制对象(MeshGeometry和EdgeGeometry)
*/
private CalcRelevanceGroove;
/**
* 如果实体被切割,那么将返回分裂的实体数组,否则返回自身
*/
get SplitExtrudes(): this[];
protected GetRelevanceKnifes(knifs: ExtrudeSolid[]): void;
ClearRelevance(en?: ExtrudeSolid): void;
private _MeshGeometry;
get MeshGeometry(): BufferGeometry;
private _EdgeGeometry;
protected get EdgeGeometry(): BufferGeometry;
UpdateUV(geo: Geometry, ocs: Matrix4, isRev?: boolean): void;
UpdateBufferGeometryUvs(isRev: boolean): void;
DeferUpdate(): void;
UpdateDrawGeometry(): void;
UpdateDrawObject(renderType: RenderType, obj: Object3D): Object3D;
UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D): void;
UpdateJigMaterial(color?: number): void;
/**
* 简化的文件读取和写入,只写入必要的数据,没有id,没有其他版本号
*/
ReadFileLite(file: CADFiler): void;
WriteFileLite(file: CADFiler): void;
private ReadFileOnly;
private WriteFileOnly;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
export declare function FastMeshGeometry(width: number, height: number, thickness: number): BoxGeometry;
//# sourceMappingURL=Extrude.d.ts.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,5 @@
export declare const ExtrudeConfig: {
DisableRefCut: boolean;
DisableCheckGroove: boolean;
};
//# sourceMappingURL=ExtrudeConfig.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ExtrudeConfig.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Entity/ExtrudeConfig.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa;;;CAGzB,CAAC"}

55
types/DatabaseServices/Entity/Line.d.ts vendored Normal file
View File

@@ -0,0 +1,55 @@
import { Box3, Line as TLine, Matrix3, Matrix4, Object3D, Shape, Vector3 } from 'three';
import { Status } from '../../Common/Status';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
import { IntersectOption } from '../../GraphicsSystem/IntersectWith';
import { RenderType } from '../../GraphicsSystem/RenderType';
import { CADFiler } from '../CADFiler';
import { Curve } from './Curve';
export declare class Line extends Curve {
private _StartPoint;
private _EndPoint;
constructor(_StartPoint?: Vector3, _EndPoint?: Vector3);
get Is2D(): boolean;
get Shape(): Shape;
Z0(): this;
protected ApplyScaleMatrix(m: Matrix4): this;
protected ApplyMirrorMatrix(m: Matrix4): this;
InitDrawObject(renderType?: RenderType): Object3D;
UpdateDrawObject(type: RenderType, lineObj: TLine): void;
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform: Matrix3): Vector3[];
GetGripPoints(): Array<THREE.Vector3>;
MoveGripPoints(indexList: Array<number>, vec: Vector3): void;
GetStretchPoints(): Array<THREE.Vector3>;
MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
GetFistDeriv(param: number | Vector3): Vector3;
IntersectWith2(curve: Curve, intType: IntersectOption, tolerance?: number): import("../../GraphicsSystem/IntersectWith").IntersectResult[];
GetPointAtParam(param: number): Vector3;
GetParamAtPoint(pt: Vector3): number;
GetParamAtDist(d: number): number;
GetPointAtDistance(distance: number): Vector3;
GetDistAtParam(param: number): number;
GetDistAtPoint(pt: Vector3): number;
GetSplitCurves(param: number[] | number): Curve[];
GetParamAtPoint2(pt: Vector3): number;
PtOnCurve3(p: Vector3, fuzz?: number): boolean;
GetClosestAtPoint(pt: Vector3, extend: boolean): {
closestPt: Vector3;
param: number;
};
GetClosestPointTo(pt: Vector3, extend: boolean): Vector3;
Extend(newParam: number): void;
Join(cu: Curve, allowGap?: boolean, tolerance?: number): Status;
Reverse(): this;
GetOffsetCurves(offsetDist: number): Array<Curve>;
get BoundingBox(): Box3;
get StartParam(): number;
get EndParam(): number;
get Length(): number;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
set StartPoint(p: Vector3);
get StartPoint(): Vector3;
get EndPoint(): Vector3;
set EndPoint(p: Vector3);
}
//# sourceMappingURL=Line.d.ts.map

View File

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

View File

@@ -0,0 +1,28 @@
import { Object3D, Vector3 } from "three";
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { Entity } from "./Entity";
export declare class Point extends Entity {
constructor(position?: Vector3);
/**
* 初始化绘制的threejs实体,子类型重载该函数初始化绘制实体.
*
* @param {RenderType} [renderType=RenderType.Wireframe] 渲染类型
* @returns {Object3D} 返回的threejs实体.
* @memberof Entity
*/
protected InitDrawObject(renderType?: RenderType): Object3D;
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3): Vector3[];
GetGripPoints(): Array<Vector3>;
MoveGripPoints(indexList: number[], vec: Vector3): void;
GetStretchPoints(): Array<Vector3>;
/**
* 拉伸夹点,用于Stretch命令
*
* @param {Array<number>} indexList 拉伸点索引列表.
* @param {Vector3} vec 移动向量
* @memberof Entity
*/
MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
}
//# sourceMappingURL=Point.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Point.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Entity/Point.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4D,QAAQ,EAAyC,OAAO,EAAE,MAAM,OAAO,CAAC;AAE3I,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAsBlC,qBACa,KAAM,SAAQ,MAAM;gBAEjB,QAAQ,GAAE,OAAuB;IAM7C;;;;;;MAME;IAEF,SAAS,CAAC,cAAc,CAAC,UAAU,GAAE,UAAiC,GAAG,QAAQ;IAOjF,mBAAmB,CACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,GACnB,OAAO,EAAE;IAOZ,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC;IAI/B,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO;IAShD,gBAAgB,IAAI,KAAK,CAAC,OAAO,CAAC;IAKlC;;;;;;OAMG;IACH,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO;CAI3D"}

View File

@@ -0,0 +1,193 @@
import { BufferGeometry, Line as TLine, Matrix3, Matrix4, Object3D, Vector2, Vector3 } from 'three';
import { Line2 } from 'three/examples/jsm/lines/Line2';
import { Status } from '../../Common/Status';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
import { Box3Ext } from '../../Geometry/Box';
import { IntersectOption } from '../../GraphicsSystem/IntersectWith';
import { RenderType } from '../../GraphicsSystem/RenderType';
import { CADFiler } from '../CADFiler';
import { Curve, ExtendType } from './Curve';
import { DragPointType } from './DragPointType';
export interface PolylineProps {
pt: Vector2;
bul: number;
}
export declare class Polyline extends Curve {
private _LineData;
private _ClosedMark;
constructor(_LineData?: PolylineProps[]);
UpdateMatrixTo(m: Matrix4): void;
/**
* 原地翻转,仅改变法向量
*/
Flip(): this;
Reverse(): this;
set LineData(data: PolylineProps[]);
get LineData(): PolylineProps[];
get NumberOfVertices(): number;
/**
* 在指定位置插入点.
* 例如:
* pl.AddVertexAt(pl.NumberOfVerticesk,p);//在末尾插入一个点
*
* @param {number} index 索引位置
* @param {Vector2} pt 点
* @returns {this}
* @memberof Polyline
*/
AddVertexAt(index: number, pt: Vector2 | Vector2[]): this;
RemoveVertexAt(index: number): this;
RemoveVertexIn(from: number, to: number): this;
/**
* 重设闭合多段线的起点
* @param index 起始index,如果index非整数,将用最接近的整数作为起始索引
*/
ResetStartPoint(index: number): boolean;
GetPoint2dAt(index: number): Vector2 | undefined;
/**
* 设置指定点的位置
*
* @param {number} index
* @param {Vector2} pt
* @memberof Polyline
*/
SetPointAt(index: number, pt: Vector2): this;
protected ApplyScaleMatrix(m: Matrix4): this;
protected ApplyMirrorMatrix(m: Matrix4): this;
SetBulgeAt(index: number, bul: number): this;
GetBuilgeAt(index: number): number;
Rectangle(length: number, height: number): this;
RectangleFrom2Pt(p1: Vector3, p2: Vector3): this;
get StartPoint(): Vector3;
set StartPoint(p: Vector3);
get EndPoint(): Vector3;
set EndPoint(p: Vector3);
get CurveCount(): number;
get StartParam(): number;
/**
* 表示最后一条曲线的终止参数,使用该参数可以直接遍历到多段线的所有子线段. for(i<EndParam)...
*/
get EndParam(): number;
get Area2(): number;
get Area(): number;
get CloseMark(): boolean;
get IsClose(): boolean;
set CloseMark(v: boolean);
DigestionCloseMark(): void;
get Length(): number;
/**
* 获得指定参数所在的点.
* 当曲线存在闭合标志时,参数必须在曲线内部.
* 当曲线不存在闭合标志时,参数允许延伸出曲线.
*
* @param {number} param 参数
* @returns {Vector3} 三维点,可为空
* @memberof Polyline
*/
GetPointAtParam(param: number): Vector3;
GetDistAtParam(param: number): number;
GetPointAtDistance(dist: number): Vector3;
/**
* 返回参数所在的点. 如果曲线不闭合,会试图返回延伸点参数
*
* @param {Vector3} pt
* @returns {number}
* @memberof Polyline
*/
GetParamAtPoint(pt: Vector3): number;
GetParamAtDist(dist: number): number;
GetDistAtPoint(pt: Vector3): number;
/**
* 返回曲线的一阶导数.
* 当曲线闭合(标志)且点不在曲线上.
* 或者曲线不闭合(标志) 且点不在曲线上也不在延伸上
*
* @param {(number | Vector3)} param
* @returns {Vector3}
* @memberof Polyline
*/
GetFistDeriv(param: number | Vector3): Vector3;
GetSplitCurves(param: number[] | number): Array<Polyline>;
GetCurveAtParamRange(startParam: number, endParam: number): Array<Curve>;
Extend(newParam: number): void;
MatrixAlignTo2(toMatrix: Matrix4): {
pts: Vector2[];
buls: number[];
};
Join(cu: Curve, allowGap?: boolean, tolerance?: number): Status.False | Status.True;
/**
* 将曲线数组组合成多段线
* @param curves 已经使用CurveLinked的数组,总是首尾相连
* @returns
*/
static Combine(curves: Curve[], tolerance?: number): Polyline | undefined;
/**首尾相连的曲线直接连接 */
static FastCombine(curves: Curve[], tolerance?: number): Polyline | undefined;
PtOnCurve(pt: Vector3): boolean;
PtOnCurve3(p: Vector3, fuzz?: number): boolean;
PtInCurve(pt: Vector3): boolean;
GetClosestPointTo(pt: Vector3, extend: boolean): Vector3;
GetClosestPointTo2(pt: Vector3, extType: ExtendType): Vector3;
GetOffsetCurves(offsetDist: number): Polyline[];
GetFeedingToolPath(offsetDist: number, offsetDistSq?: number): Polyline[];
/**
* 分解
*/
Explode(): Curve[];
/**
* 根据参数得到参数所在的子曲线.
*
* 当曲线存在闭合标志时,参数必须在曲线内部,否则返回空.
*
* @param {number} param 参数值
* @returns {Curve} 曲线(直线或者圆弧) 或空
* @memberof Polyline
*/
GetCurveAtParam(param: number): Curve;
/**
* 得到参数在子曲线中的表示
*
* @param {number} param 参数在多段线中表示
* @returns {number} 参数在子曲线中表示
* @memberof Polyline
*/
GetCurveParamAtParam(param: number): number;
/**
* 获得曲线,来自索引位置.
* @param {number} i 索引位置 整数
*/
GetCurveAtIndex(i: number): Curve;
IntersectWith2(curve: Curve, intType: IntersectOption, tolerance?: number): import("../../GraphicsSystem/IntersectWith").IntersectResult[];
IntersectSelf(): number[];
IsIntersectSelf(): boolean;
get BoundingBox(): Box3Ext;
/**
* 得到曲线有用的点表和凸度(闭合曲线首尾重复)
*/
get PtsBuls(): {
pts: Vector2[];
buls: number[];
};
get IsBulge(): boolean;
get Shape(): import("three").Shape;
get SVG(): string;
InitDrawObject(renderType?: RenderType): Line2 | TLine<BufferGeometry, import("three").LineBasicMaterial>;
UpdateDrawObject(type: RenderType, en: Object3D): void;
GetDragPointCount(drag: DragPointType): number;
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
GetGripPoints(): Array<Vector3>;
MoveGripPoints(indexList: number[], moveVec: Vector3): void;
GetStretchPoints(): Vector3[];
/**
* 范围拉伸(stretch),对夹点进行拉伸.
* 如果对圆弧的一侧进行拉伸,那么修改bul
*
* @param {Array<number>} indexList
* @param {Vector3} vec
*/
MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
export declare const TempPolyline: Polyline;
//# sourceMappingURL=Polyline.d.ts.map

View File

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

View File

@@ -0,0 +1,55 @@
import { Box3, BufferGeometry, Material, Matrix3, Matrix4, Object3D, Vector3 } from 'three';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
import { BoolOpeartionType } from '../../GraphicsSystem/BoolOperateUtils';
import { RenderType } from '../../GraphicsSystem/RenderType';
import { CADFiler } from '../CADFiler';
import { ShapeManager } from '../ShapeManager';
import { Curve } from './Curve';
import { Entity } from './Entity';
export declare class Region extends Entity {
private _ShapeManager;
static CreateFromCurves(cus: Curve[]): Region | undefined;
constructor(_ShapeManager?: ShapeManager);
get ShapeManager(): ShapeManager;
get Area(): number;
get BoundingBox(): Box3;
Explode(): Curve[] | Region[];
/**
* 对于布尔操作,这个将会变换内部轮廓到对方坐标系.
* 并且这个变换不会更新图形绘制.
* @param {Matrix4} m
* @memberof Region
*/
ShapeApplyMatrix(m: Matrix4): void;
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
GetGripPoints(): Array<Vector3>;
MoveGripPoints(indexList: number[], moveVec: Vector3): void;
ApplyMatrix(m: Matrix4): this;
get Position(): Vector3;
set Position(pt: Vector3);
protected ApplyScaleMatrix(m: Matrix4): this;
Z0(): this;
MatrixPlanarizere(): this;
protected ApplyMirrorMatrix(m: Matrix4): this;
/**
* 请注意:该计算会操作otherRegion的矩阵
* @param {Region} otherRegion
* @param {BoolOpeartionType} boolType
*/
BooleanOper(otherRegion: Region, boolType: BoolOpeartionType): boolean;
private _MeshGeometry;
get MeshGeometry(): BufferGeometry;
private _EdgeGeometry;
private get EdgeGeometry();
private UpdateGeometry;
UpdateDrawGeometry(): void;
InitDrawObject(renderType?: RenderType): Object3D;
UpdateDrawObject(renderType: RenderType, obj: Object3D): Object3D;
/**
* 当实体需要被更新时,更新实体材质
*/
UpdateDrawObjectMaterial(type: RenderType, obj: Object3D, material?: Material): void;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=Region.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Region.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Entity/Region.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAgB,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAQ,QAAQ,EAA0B,OAAO,EAAE,MAAM,OAAO,CAAC;AAIxI,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAI7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBACa,MAAO,SAAQ,MAAM;IAelB,OAAO,CAAC,aAAa;IAbjC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,MAAM,GAAG,SAAS;gBAarC,aAAa,GAAE,YAAiC;IAMpE,IAAI,YAAY,iBAGf;IACD,IAAI,IAAI,WAGP;IACD,IAAI,WAAW,SAMd;IACD,OAAO;IAoBP;;;;;OAKG;IACH,gBAAgB,CAAC,CAAC,EAAE,OAAO;IAK3B,mBAAmB,CACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,EAClB,SAAS,CAAC,EAAE,OAAO,GACpB,OAAO,EAAE;IAyBZ,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC;IAO/B,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO;IAMpD,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ7B,IAAI,QAAQ,IAIK,OAAO,CADvB;IACD,IAAI,QAAQ,CAAC,EAAE,EAAE,OAAO,EAgBvB;IAED,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAW5C,EAAE;IAQF,iBAAiB;IAQjB,SAAS,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO;IAItC;;;;OAIG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO;IAkBtE,OAAO,CAAC,aAAa,CAAiB;IACtC,IAAI,YAAY,IAAI,cAAc,CAMjC;IAED,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,KAAK,YAAY,GAMvB;IAED,OAAO,CAAC,cAAc;IA4CtB,kBAAkB;IAMlB,cAAc,CAAC,UAAU,GAAE,UAAiC,GAAG,QAAQ;IAoCvE,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAyCtD;;MAEE;IACF,wBAAwB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ;IAiC7E,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAOlC,SAAS,CAAC,IAAI,EAAE,QAAQ;CAM3B"}

View File

@@ -0,0 +1,9 @@
import { CADFiler } from './CADFiler';
import { ISerialize } from './ISerialize';
export declare class EraseEntityData implements ISerialize {
isErase: boolean;
ReadFile(file: CADFiler): this;
WriteFile(file: CADFiler): this;
constructor(isErase?: boolean);
}
//# sourceMappingURL=EraseEntityData.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"EraseEntityData.d.ts","sourceRoot":"","sources":["../../../src/DatabaseServices/EraseEntityData.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,qBACa,eAAgB,YAAW,UAAU;IAY3B,OAAO;IAV1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAK9B,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;gBAKZ,OAAO,UAAO;CAGpC"}

15
types/DatabaseServices/FaceEntity.d.ts vendored Normal file
View File

@@ -0,0 +1,15 @@
import { Object3D, Vector3 } from "three";
import { RenderType } from "../GraphicsSystem/RenderType";
import { CADFiler } from "./CADFiler";
import { Entity } from "./Entity/Entity";
export declare class FaceEntity extends Entity {
private p1;
private p2;
private p3;
private normal;
constructor(p1?: Vector3, p2?: Vector3, p3?: Vector3, normal?: Vector3);
protected InitDrawObject(renderType?: RenderType): Object3D;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=FaceEntity.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"FaceEntity.d.ts","sourceRoot":"","sources":["../../../src/DatabaseServices/FaceEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,QAAQ,EAAE,OAAO,EAAQ,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,qBACa,UAAW,SAAQ,MAAM;IAEtB,OAAO,CAAC,EAAE;IAA2B,OAAO,CAAC,EAAE;IAA2B,OAAO,CAAC,EAAE;IAA2B,OAAO,CAAC,MAAM;gBAArH,EAAE,GAAE,OAAuB,EAAU,EAAE,GAAE,OAAuB,EAAU,EAAE,GAAE,OAAuB,EAAU,MAAM,GAAE,OAAuB;IAKlK,SAAS,CAAC,cAAc,CAAC,UAAU,GAAE,UAAiC,GAAG,QAAQ;IAYjF,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAalC,SAAS,CAAC,IAAI,EAAE,QAAQ;CAa3B"}

40
types/DatabaseServices/FileServer.d.ts vendored Normal file
View File

@@ -0,0 +1,40 @@
import { Singleton } from "../Common/Singleton";
import { IDirectoryProps } from "../UI/Components/SourceManage/CommonPanel";
export interface IFileInfo {
file_id?: string;
dir_id?: string;
name?: string;
logo?: string;
file?: string;
zip_type?: "gzip";
update_date?: string;
code?: string;
}
/**
* File server
* 保存CAD的文件服务,统一由这里经过文件的CRUD操作
*/
export declare class FileServer extends Singleton {
currentFileInfo: {
name: string;
dir: IDirectoryProps;
};
m_CurFileId: string;
CurrentFileMd5: string;
constructor();
AddNewFile(): Promise<boolean>;
GetFileMD5(fid: string): Promise<string | undefined>;
OpenFile(fid: string): Promise<boolean>;
ReadFileList(): Promise<IFileInfo[]>;
GetFileInfo(fid: string, code?: string): Promise<{
name: string;
file?: string;
code: string;
}>;
CacheFileInfo(fid: string, info: IFileInfo): Promise<void>;
UploadFile(fileInfo: IFileInfo): Promise<import("../Common/Request").IResponseData>;
UpdateFile(fileInfo: IFileInfo): Promise<import("../Common/Request").IResponseData>;
private SaveCurrentFileInfo;
Clear(): void;
}
//# sourceMappingURL=FileServer.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"FileServer.d.ts","sourceRoot":"","sources":["../../../src/DatabaseServices/FileServer.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAOhD,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAI5E,MAAM,WAAW,SAAS;IAEtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,qBAAa,UAAW,SAAQ,SAAS;IAErC,eAAe,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,eAAe,CAAC;KAAE,CAAC;IAEzD,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;;IAoBjB,UAAU;IAwBV,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAOpD,QAAQ,CAAC,GAAG,EAAE,MAAM;IAkEpB,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAWpC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;KAAE,CAAC;IA+BhG,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS;IAW1C,UAAU,CAAC,QAAQ,EAAE,SAAS;IAwB9B,UAAU,CAAC,QAAQ,EAAE,SAAS;IAuBpC,OAAO,CAAC,mBAAmB;IAM3B,KAAK;CAMR"}

11
types/DatabaseServices/GroupTable.d.ts vendored Normal file
View File

@@ -0,0 +1,11 @@
import { GroupRecord } from "./GroupTableRecord";
import { ObjectCollection } from "./ObjectCollection";
import { CADFiler } from "./CADFiler";
import { Status } from "../Common/Status";
export declare class GroupTable extends ObjectCollection<GroupRecord> {
Append(object: GroupRecord, isCheckObjectCleanly?: boolean): import("./ObjectId").ObjectId;
Add(record: GroupRecord, isCheckObjectCleanly?: boolean): Status;
ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=GroupTable.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"GroupTable.d.ts","sourceRoot":"","sources":["../../../src/DatabaseServices/GroupTable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,qBACa,UAAW,SAAQ,gBAAgB,CAAC,WAAW,CAAC;IAGzD,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,oBAAoB,UAAO;IAUvD,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,oBAAoB,UAAO,GAAG,MAAM;IAU7D,QAAQ,CAAC,IAAI,EAAE,QAAQ;IAMvB,SAAS,CAAC,IAAI,EAAE,QAAQ;CAO3B"}

View File

@@ -0,0 +1,12 @@
import { SymbolTableRecord } from "./SymbolTableRecord";
import { ObjectId } from "./ObjectId";
import { CADFiler } from "./CADFiler";
export declare class GroupRecord extends SymbolTableRecord {
Entitys: ObjectId[];
constructor();
get Name(): string;
set Name(name: string);
ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=GroupTableRecord.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"GroupTableRecord.d.ts","sourceRoot":"","sources":["../../../src/DatabaseServices/GroupTableRecord.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,qBACa,WAAY,SAAQ,iBAAiB;IAElC,OAAO,EAAE,QAAQ,EAAE,CAAC;;IAgChC,IAAI,IAAI,IAIO,MAAM,CADpB;IACD,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAOpB;IAGD,QAAQ,CAAC,IAAI,EAAE,QAAQ;IAavB,SAAS,CAAC,IAAI,EAAE,QAAQ;CAS3B"}

View File

@@ -0,0 +1,15 @@
import { CompositeEntity } from "../Entity/CompositeEntity";
import { ICompHardwareOption } from "../../UI/Components/RightPanel/RightPanelInterface";
import { CADFiler } from "../CADFiler";
import { Entity } from "../Entity/Entity";
import { ObjectId } from "../ObjectId";
export declare class HardwareCompositeEntity extends CompositeEntity {
HardwareOption: ICompHardwareOption;
DataList: [string, string][];
RelevanceBoards: ObjectId[];
constructor();
GetAllEntity(isHole?: boolean, filter?: (e: Entity) => boolean): Entity[];
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=HardwareCompositeEntity.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"HardwareCompositeEntity.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Hardware/HardwareCompositeEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AACzF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBACa,uBAAwB,SAAQ,eAAe;IAE5C,cAAc,EAAE,mBAAmB,CAAuC;IAC1E,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAM;IAClC,eAAe,EAAE,QAAQ,EAAE,CAAM;;IAK7C,YAAY,CAAC,MAAM,GAAE,OAAe,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO;IAoBrE,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IA+ClC,SAAS,CAAC,IAAI,EAAE,QAAQ;CAmC3B"}

View File

@@ -0,0 +1,22 @@
import { IToplineOption } from "../../UI/Components/RightPanel/RightPanelInterface";
import { SweepSolid } from '../3DSolid/SweepSolid';
import { CADFiler } from "../CADFiler";
import { Curve } from "../Entity/Curve";
export declare class HardwareTopline extends SweepSolid {
HardwareOption: IToplineOption;
DataList: [string, string][];
private _contourRotation;
get ContourRotation(): number;
private _ContourWidth;
private get Contours();
/**
*延伸取最大最小轮廓每段首尾到前面线段,取最长线段作为分段长
*
*/
get Segmentations(): Curve[];
get MaxLength(): number;
set ContourRotation(ro: number);
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=HardwareTopline.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"HardwareTopline.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Hardware/HardwareTopline.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAIxC,qBACa,eAAgB,SAAQ,UAAU;IAE/B,cAAc,EAAE,cAAc,CAAqC;IACnE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAM;IAC9C,OAAO,CAAC,gBAAgB,CAAK;IAC7B,IAAI,eAAe,IAmMK,MAAM,CAhM7B;IACD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,KAAK,QAAQ,GAiCnB;IACD;;;OAGG;IACH,IAAI,aAAa,YAmJhB;IACD,IAAI,SAAS,WAGZ;IACD,IAAI,eAAe,CAAC,EAAE,EAAE,MAAM,EAS7B;IACD,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IA8BlC,SAAS,CAAC,IAAI,EAAE,QAAQ;CA0B3B"}

View File

@@ -0,0 +1,46 @@
import { CADFiler } from './CADFiler';
import { CADObject } from './CADObject';
import { CommandHistoryRecord } from './CommandHistoryRecord';
/**
* 历史记录管理
*
* 关于子命令标记:
* 当子命令标记出现的时候,才允许出现局部撤销,否则命令执行中不允许撤销,触发命令重写了撤销和重做的事件.
*/
export declare class HistoricManage extends CADObject {
useSubCommand: boolean;
curIndex: number;
lockIndex: number;
historyRecord: CommandHistoryRecord[];
doing: boolean;
Enable: boolean;
_SignalCommandHistory: HistoricManage;
constructor(useSubCommand?: boolean);
Clear(): void;
ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
get IsNow(): boolean;
get UndoData(): CommandHistoryRecord;
StartMark(subCommandName?: string): void;
/**
* 不要在命令中直接调用这个函数!
* 请调用 commandMachine.CommandStart
*/
StartCmd(cmdName: string): void;
CurrentHasHistory(): boolean;
EndCmd(): boolean;
/**
* 获得这个命令修改的对象列表
*/
get ChangeObjects(): Set<CADObject>;
GetRangeChangeObject(startIndex: number, endIndex: number): Set<CADObject>;
/**
* 合并命令历史记录,因为命令记录器允许存在子记录,所以当命令结束时,应该把子记录合并到父记录中,子记录将被摧毁.
*/
private MergeSubCommmand;
Undo(): boolean;
Redo(): any;
UndoEvent(cmdName: string, historyRec: CommandHistoryRecord): void;
RedoEvent(cmdName: string, historyRec: CommandHistoryRecord): void;
}
//# sourceMappingURL=HistoricManage.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"HistoricManage.d.ts","sourceRoot":"","sources":["../../../src/DatabaseServices/HistoricManage.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;;GAKG;AACH,qBACa,cAAe,SAAQ,SAAS;IAUtB,aAAa;IARhC,QAAQ,EAAE,MAAM,CAAM;IACtB,SAAS,SAAM;IACf,aAAa,EAAE,oBAAoB,EAAE,CAAM;IAC3C,KAAK,EAAE,OAAO,CAAS;IACvB,MAAM,EAAE,OAAO,CAAQ;IAEvB,qBAAqB,EAAE,cAAc,CAAC;gBAEnB,aAAa,UAAO;IAKvC,KAAK;IAOL,QAAQ,CAAC,IAAI,EAAE,QAAQ;IAYvB,SAAS,CAAC,IAAI,EAAE,QAAQ;IAYxB,IAAI,KAAK,IAAI,OAAO,CAGnB;IAED,IAAI,QAAQ,IAAI,oBAAoB,CAenC;IAGD,SAAS,CAAC,cAAc,SAAK;IAY7B;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM;IAUxB,iBAAiB,IAAI,OAAO;IAS5B,MAAM,IAAI,OAAO;IA+BjB;;OAEG;IACH,IAAI,aAAa,IAAI,GAAG,CAAC,SAAS,CAAC,CAclC;IACD,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC;IAS1E;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkBxB,IAAI,IAAI,OAAO;IA6Bf,IAAI;IA2BJ,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,oBAAoB;IAI3D,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,oBAAoB;CAI9D"}

Some files were not shown because too many files have changed in this diff Show More