This commit is contained in:
ChenX
2024-03-26 11:10:20 +08:00
parent 070821c353
commit 66f35d6c12
2436 changed files with 31792 additions and 3945 deletions

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

@@ -0,0 +1,129 @@
import { Box3, Matrix3, Matrix4, Vector2, Vector3 } from 'three';
import { Status } from '../../Common/Status';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
import { Box3Ext } from '../../Geometry/Box';
import { IntersectOption, IntersectResult } from '../../GraphicsSystem/IntersectWith';
import { CADFiler } from '../CADFiler';
import { Shape2 } from '../Shape2';
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(): Shape2;
get Center(): Vector3;
set Center(v: Vector3);
get Normal(): Vector3;
set Normal(v: Vector3);
get Area(): number;
get Area2(): number;
get IsClose(): boolean;
private get BoundingBoxPtsInOCS();
private static _X;
private static _Y;
private static _Z;
private static _Mtx;
get BoundingBox(): Box3;
/**
* 返回对象在自身坐标系下的Box
*/
get BoundingBoxInOCS(): Box3Ext;
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;
private static __PointTemp__;
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): IntersectResult[];
/**
* 计算出圆弧所包含的角度
*
* @readonly
* @type {number}
* @memberof Arc
*/
get AllAngle(): number;
get Bul(): number;
/**
* 计算所包含的角度
* @param {number} endAngle 结束的角度
*/
ComputeAnlge(endAngle: number): number;
/**
* 解析两点和凸度所构成的圆弧
* ref http://www.lee-mac.com/bulgeconversion.html
* @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;
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;
GetFirstDeriv(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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"}

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

@@ -0,0 +1,206 @@
import Geom3 from '@jscad/modeling/src/geometries/geom3/type';
import { Frustum, Geometry, Matrix3, Matrix4, Object3D, UVGenerator, Vector3 } from 'three';
import { FaceDirection } from "../../Add-on/DrawDrilling/DrillType";
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
import { RenderType } from '../../GraphicsSystem/RenderType';
import { BoardProcessOption } from "../../UI/Store/OptionInterface/BoardProcessOption";
import { CADFiler } from '../CADFiler';
import { ObjectId } from '../ObjectId';
import { Shape } from '../Shape';
import { BoardOpenDir, BoardType } from './BoardInterface';
import { ExtrudeContourCurve, ExtrudeSolid } from './Extrude';
import { Polyline } from './Polyline';
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 {
protected HasEdgeRenderType: boolean;
protected HasPlaceFaceRenderType: boolean;
protected HasBigHoleFaceRenderType: boolean;
private _Rotation;
private _BoardType;
private _Name;
private _BoardProcessOption;
private _DrillList;
private _LayerNails;
RelativeHardware: ObjectId[];
private _OpenDir;
RelativeHandle: ObjectId[];
private _IsChaiDan;
private _2DModelingList;
private _3DModelingList;
private _CustomNumber;
private _DrillLock;
private _DrillAssociationLock;
protected bevelEnabled: boolean;
private _KnifePolylineMap;
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<import("../CADObject").CADObject>, ObjectId<import("../CADObject").CADObject>[][]>;
get DrillLock(): boolean;
set DrillLock(v: boolean);
get isDrillAssociationLock(): boolean;
get DrillAssociationLock(): Set<ObjectId>;
AppendDrillAssociationLock(o: ObjectId): void;
ClearDrillAssociationLock(o: ObjectId): void;
ClearAllAssociDrillLock(): void;
get LayerNails(): ObjectId<import("../CADObject").CADObject>[];
AppendNails(ids: ObjectId[]): void;
ClearLayerNails(): void;
private _CustomNumberTextEntity;
private _AsyncIngTextEntity;
get CustomNumber(): number | null;
set CustomNumber(n: number | null);
/**
* 你可以安心的修改它,这样会直接影响到板件,因为板件对这个对象添加了代理.
*/
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);
get OpenDir(): BoardOpenDir;
set OpenDir(v: BoardOpenDir);
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(): ExtrudeContourCurve;
set ContourCurve(newContour: ExtrudeContourCurve);
Explode(): import("./Region").Region[];
/**
* 在不改变Normal和实体显示的情况下,修改X轴的指向
* @param xAxis
*/
SetXAxis(xAxis: Vector3, isKeepLines?: boolean): this;
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 GetLinesOpenDir;
get KnifePolylineMap(): Map<string, Polyline>;
set KnifePolylineMap(map: Map<string, Polyline>);
private _3DPathObject;
Clear3DPathCache(): void;
private Get3DPathDrawObject;
Clear2DPathCache(): void;
_2DPathCsgs: Geom3[];
_2DPathDrawObject: Object3D;
/**
* 这个函数生成了二维刀路的csg数组,并且同时生成了_2DPathDrawObject(二维刀路提刀线框显示对象)
*/
Get2DPathCsgs(): Geom3[];
protected get Has2DPath(): boolean;
private _workerCalcedGeom;
private _async2DPathIng;
get Async2DPathing(): boolean;
GoodBye(): void;
private promise2DPath;
Load2DPathIng(): Promise<boolean>;
HandleSpliteEntitys(splitEntitys: this[]): void;
private get PlaceColor();
private GetPlaceFace;
private GetBigHoleFace;
OffsetPathCache: Map<Polyline, {
[key: string]: Polyline;
}>;
/**
* 根据板的信息修改绘制的实体
* 1.非拆单板 灰色
* 2.纹路 开门方向纹路
* 3.二维 三维刀路
*/
private UpdateDrawObjectByBoardInfo;
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, frustum?: Frustum): Vector3[];
DeferUpdate(): void;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=Board.d.ts.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,35 @@
export declare enum BoardType {
Layer = 0,//层板
Vertical = 1,//立板
Behind = 2
}
export declare enum LinesType {
/** 正纹 */
Positive = 0,
/** 反纹 */
Reverse = 1,
/** 可翻转 */
CanReversal = 2
}
export declare enum ComposingType {
Positive = 0,//正面
Reverse = 1,//反面
Arbitrary = 2
}
export declare enum BoardOpenDir {
Left = 1,
Right = 2,
Up = 3,
Down = 4,
None = 0
}
export declare enum BrRelativePos {
Front = "front",
Back = "back",
Top = "top",
Bottom = "bottom",
Left = "left",
Right = "right",
Div = "div"
}
//# sourceMappingURL=BoardInterface.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"BoardInterface.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Entity/BoardInterface.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IAEjB,KAAK,IAAI,CAAE,IAAI;IACf,QAAQ,IAAI,CAAE,IAAI;IAClB,MAAM,IAAI;CACb;AAGD,oBAAY,SAAS;IAEjB,SAAS;IACT,QAAQ,IAAI;IACZ,SAAS;IACT,OAAO,IAAI;IACX,UAAU;IACV,WAAW,IAAI;CAClB;AAGD,oBAAY,aAAa;IAErB,QAAQ,IAAI,CAAG,IAAI;IACnB,OAAO,IAAI,CAAI,IAAI;IACnB,SAAS,IAAI;CAChB;AAED,oBAAY,YAAY;IAEpB,IAAI,IAAI;IACR,KAAK,IAAI;IACT,EAAE,IAAI;IACN,IAAI,IAAI;IACR,IAAI,IAAI;CACX;AAED,oBAAY,aAAa;IAErB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,GAAG,QAAQ;CACd"}

View File

@@ -0,0 +1,25 @@
import { BoxBufferGeometry, Object3D } from "three";
import { Box3Ext } from "../../Geometry/Box";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { Entity } from "./Entity";
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);
get Length(): number;
get Width(): number;
get Height(): number;
set Length(v: number);
set Width(v: number);
set Height(v: number);
set Opacity(o: number);
InitDrawObject(renderType?: RenderType): Object3D;
UpdateDrawObject(type: RenderType, obj: Object3D): void;
get BoundingBoxInOCS(): Box3Ext;
get BoundingBox(): Box3Ext;
}
//# 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":"AAAA,OAAO,EAAE,iBAAiB,EAA2B,QAAQ,EAAW,MAAM,OAAO,CAAC;AAEtF,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,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;IAKxE,IAAI,MAAM,IAII,MAAM,CAJiB;IACrC,IAAI,KAAK,IAYI,MAAM,CAZgB;IACnC,IAAI,MAAM,IAqBI,MAAM,CArBiB;IAErC,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAQnB;IACD,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAQlB;IAED,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAQnB;IAED,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,EAQpB;IACD,cAAc,CAAC,UAAU,GAAE,UAAiC;IAS5D,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAQhD,IAAI,gBAAgB,YAGnB;IAED,IAAI,WAAW,YAGd;CACJ"}

View File

@@ -0,0 +1,57 @@
import { Material, Matrix3, Matrix4, Object3D, Vector3 } from 'three';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
import { Box3Ext } from '../../Geometry/Box';
import { IntersectOption, IntersectResult } 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, fuzz?: number): boolean;
GetOffsetCurves(offsetDist: number): Curve[];
IntersectWith2(curve: Curve, intType: IntersectOption, tolerance?: number): IntersectResult[];
get BoundingBoxInOCS(): Box3Ext;
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;
GetFirstDeriv(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,56 @@
import { Matrix3, Matrix4, 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 abstract class CompositeEntity extends Entity {
constructor();
Entitys: Entity[];
/**
* 返回对象在自身坐标系下的Box
*/
get BoundingBoxInOCS(): Box3Ext;
/**
* 初始化绘制的threejs实体,子类型重载该函数初始化绘制实体.
*/
Explode(): Entity[];
Traverse(callback: (arg0: Entity) => void): void;
protected InitDrawObject(renderType?: RenderType): Object3D;
UpdateDrawObject(renderType: RenderType, obj: Object3D): void;
get ColorIndex(): number;
set ColorIndex(color: number);
get Material(): import("../ObjectId").ObjectId<import("../CADObject").CADObject>;
set Material(id: import("../ObjectId").ObjectId<import("../CADObject").CADObject>);
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;
ApplyMirrorMatrix(m: Matrix4): this;
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,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAK5D,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,8BACsB,eAAgB,SAAQ,MAAM;;IAOpC,OAAO,EAAE,MAAM,EAAE,CAAM;IAEnC;;MAEE;IACF,IAAa,gBAAgB,IAAI,OAAO,CA6BvC;IAID;;MAEE;IACO,OAAO;IAShB,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;IAsBzC,SAAS,CAAC,cAAc,CAAC,UAAU,GAAE,UAAiC,GAAG,QAAQ;IAajF,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAwBtD,IAAI,UAAU,IAAI,MAAM,CAGvB;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAgB3B;IACD,IAAI,QAAQ,qEAGX;IACD,IAAI,QAAQ,CAAC,EAAE,kEAAA,EAQd;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;IAQZ,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;IAkB1B,iBAAiB,CAAC,CAAC,EAAE,OAAO;IAS5B,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAclC,SAAS,CAAC,IAAI,EAAE,QAAQ;CAS3B"}

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

@@ -0,0 +1,117 @@
import { Material, Object3D, Curve as TCurve, 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;
get Shape(): TCurve<any>;
GetPointAtParam(param: number): Vector3;
GetPointAtDistance(distance: number): Vector3;
GetDistAtParam(param: number): number;
GetDistAtPoint(pt: Vector3): number;
GetParamAtPoint(pt: Vector3, fuzz?: number): number;
GetParamAtPoint2(pt: Vector3, fuzz?: number): number;
GetParamAtDist(d: number): number;
/**
* 返回曲线在指定位置的一阶导数(在wcs内)
* @param {(number | Vector3)} param
*/
GetFirstDeriv(param: number | Vector3): Vector3;
GetFirstDerivAngle(param: number | Vector3): number;
/**
* 返回切割曲线后的结果.总是从起点开始切割,并且按顺序返回曲线.
* @param {(number[] | number)} param
*/
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;
GetDrawCount(): number;
/**
* @param {RenderType} [renderType=RenderType.Wireframe]
*/
protected InitDrawObject(renderType?: RenderType): Object3D;
/**
* 重载:更新绘制的实体
* @param {RenderType} type
* @param {Object3D} obj
*/
UpdateDrawObject(type: RenderType, obj: Object3D): void;
/**
* 重载:更新实体材质
*/
UpdateDrawObjectMaterial(type: RenderType, obj: Object3D, material?: Material): void;
UpdateJigMaterial(color?: number): void;
}
export declare const DbCurve: typeof Curve;
//# 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,64 @@
import { Matrix3, Matrix4, Shape, Vector3 } from 'three';
import { Status } from '../../Common/Status';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
import { IntersectOption } from '../../GraphicsSystem/IntersectWith';
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;
protected ApplyScaleMatrix(m: Matrix4): this;
Extend(newParam: number): void;
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(param: number): number;
GetCircleAngleAtPoint(pt: Vector3): number;
GetFirstDeriv(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.True;
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
IntersectWith2(curve: Curve, intType: IntersectOption): import("../../GraphicsSystem/IntersectWith").IntersectResult[];
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,186 @@
import { Frustum, Material, Matrix3, Matrix4, Object3D, Vector3 } from 'three';
import { UpdateDraw } from '../../Common/Status';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
import { Box3Ext } from '../../Geometry/Box';
import { Vec3 } from '../../Geometry/IVec3';
import { IntersectOption } from '../../GraphicsSystem/IntersectWith';
import { RenderType } from '../../GraphicsSystem/RenderType';
import { CADFiler } from '../CADFiler';
import { CADObject } from '../CADObject';
import { ISerialize } from '../ISerialize';
import { ObjectId } from '../ObjectId';
/**
* Entity 是所有图元的基类,绘制的实体都集成该类.
*/
export declare class Entity extends CADObject {
IsEmbedEntity: boolean;
/**
* 该实体的只有一个渲染类型,任何渲染类型都一个样
*/
protected OnlyRenderType: boolean;
protected HasEdgeRenderType: boolean;
protected HasPlaceFaceRenderType: boolean;
protected HasBigHoleFaceRenderType: boolean;
protected _CacheDrawObject: Map<RenderType, Object3D>;
protected _MaterialId: ObjectId;
protected _Color: number;
protected _Matrix: Matrix4;
constructor();
protected _SpaceOCS: Matrix4;
get CacheDrawObject(): Map<RenderType, Object3D>;
get SpaceCSNoClone(): Matrix4;
get SpaceOCS(): Matrix4;
set SpaceOCS(m: Matrix4);
get SpaceOCSInv(): Matrix4;
protected _Visible: boolean;
protected _VisibleInRender: boolean;
protected _Freeze: boolean;
get Freeze(): boolean;
set Freeze(f: boolean);
get VisibleInRender(): boolean;
set VisibleInRender(v: boolean);
GroupId: ObjectId;
Template: ObjectId;
ProcessingGroupList: ObjectId[];
/**
* 当AutoUpdate为false时,记录需要更新的标志.
* 以便延迟更新时找到相应的更新标志.
*/
NeedUpdateFlag: UpdateDraw;
AutoUpdate: boolean;
CopyInRenderTpye: RenderType;
set Material(materialId: ObjectId);
get Material(): ObjectId;
GetMaterialSlots(): void;
SetMaterialAtSlot(mtl: ObjectId, slotIndex: number): void;
set ColorIndex(color: number);
get ColorIndex(): number;
/**
* 炸开实体
*/
Explode(): Entity[];
/**
* 返回对象的包围框.
*/
get BoundingBox(): import("three").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;
Move(v: Vec3): this;
set Position(pt: Vector3);
get Z(): number;
set Z(z: number);
Z0(): this;
MatrixPlanarizere(): this;
get OCSInv(): Matrix4;
/**
* 与指定实体是否共面.
*/
IsCoplaneTo(e: Entity): boolean;
/**
* 测试两个实体的包围盒是否相交.
*/
BoundingBoxIntersectWith(en: Entity): boolean;
ClearDraw(): this;
ClearDrawOfJig(): void;
get IsOnlyRender(): boolean;
protected get CaseShadow(): boolean;
protected get ReceiveShadow(): 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(): Material | Material[];
/**
* 更新实体Jig状态时的材质
*/
UpdateJigMaterial(color?: number): void;
RestoreJigMaterial(): void;
get Visible(): boolean;
set Visible(v: boolean);
get IsVisible(): boolean;
UpdateVisible(): void;
GoodBye(): void;
Erase(isErase?: boolean): void;
EraseEvent(isErase: boolean): void;
static _xa: Vector3;
static _ya: Vector3;
static _za: Vector3;
/**
* 使用统一的方法设置对象的矩阵.
* 需要对缩放矩形进行重载.避免对象矩阵不是单位矩阵
*/
ApplyMatrix(m: Matrix4): this;
protected ApplyScaleMatrix(m: Matrix4): this;
protected ApplyMirrorMatrix(m: Matrix4): this;
/**
*
* @param snapMode 捕捉模式(单一)
* @param pickPoint const
* @param lastPoint const
* @param viewXform const 最近点捕捉需要这个变量
* @returns object snap points
*/
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3, frustum?: Frustum): Vector3[];
GetGripPoints(): Vector3[];
MoveGripPoints(indexList: number[], vec: Vector3): void;
GetStretchPoints(): Array<Vector3>;
/**
* 拉伸夹点,用于Stretch命令
* @param {Array<number>} indexList 拉伸点索引列表.
* @param {Vector3} vec 移动向量
*/
MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
IntersectWith(curve: Entity, intType: IntersectOption): Vector3[];
Clone(cloneDraw?: boolean): 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;
}
export declare class EntityColorHistoryRecord implements ISerialize {
color: number;
constructor(color: number);
ReadFile(file: CADFiler): this;
WriteFile(file: CADFiler): this;
}
//# 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,43 @@
import { Group, Matrix3, Matrix4, Object3D, Vector3 } from "three";
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
import { Box3Ext } from "../../Geometry/Box";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { CADFiler } from "../CADFiler";
import { ObjectId } from "../ObjectId";
import { PhysicalMaterialRecord } from "../PhysicalMaterialRecord";
import { Entity } from "./Entity";
/**
* 外部引用的实体,比如glTF
*/
export declare class EntityFbx extends Entity {
private _url?;
OnlyRenderType: boolean;
private _Size;
private _ScaleSize;
private _Center;
private _OverWriteMaterial;
constructor(_url?: string);
get IsVisible(): boolean;
get Url(): string;
set Url(url: string);
get CurSize(): Vector3;
get ScaleSize(): Vector3;
set ScaleSize(size: Vector3);
get Scale(): Vector3;
get BoundingBox(): Box3Ext;
get BoundingBoxInOCS(): Box3Ext;
get OverWriteMaterial(): Map<number, ObjectId<PhysicalMaterialRecord>>;
SetMaterialAtSlot(mtl: ObjectId<PhysicalMaterialRecord>, slotIndex: number): void;
newObject: Group;
LoadFBXModelFromArrayBuffer(fbxArray: ArrayBuffer): string;
CloneDrawObject(from: this): void;
ApplyScaleMatrix(m: Matrix4): this;
InitDrawObject(renderType?: RenderType): Object3D;
UpdateDrawObject(type: RenderType, obj: Object3D): void;
UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D): void;
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform: Matrix3): Vector3[];
MoveGripPoints(indexList: Array<number>, vec: Vector3): void;
protected _ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=EntityFbx.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"EntityFbx.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Entity/EntityFbx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,EAAE,OAAO,EAAE,OAAO,EAA2B,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AASlG,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC;;GAEG;AACH,qBACa,SAAU,SAAQ,MAAM;IAUrB,OAAO,CAAC,IAAI,CAAC;IARzB,cAAc,UAAQ;IAEtB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,OAAO,CAAe;IAE9B,OAAO,CAAC,kBAAkB,CAAuD;gBAE7D,IAAI,CAAC,EAAE,MAAM;IAKjC,IAAa,SAAS,YAGrB;IAED,IAAI,GAAG,IACM,MAAM,CADY;IAC/B,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,EAOlB;IAED,IAAI,OAAO,YAA6E;IAExF,IAAI,SAAS,IACO,OAAO,CADgB;IAC3C,IAAI,SAAS,CAAC,IAAI,EAAE,OAAO,EAW1B;IAED,IAAI,KAAK,YAKR;IAED,IAAI,WAAW,YAGd;IAED,IAAI,gBAAgB,YAenB;IACD,IAAI,iBAAiB,kDAGpB;IAED,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,MAAM;IAS1E,SAAS,EAAE,KAAK,CAAC;IAGjB,2BAA2B,CAAC,QAAQ,EAAE,WAAW;IAgBjD,eAAe,CAAC,IAAI,EAAE,IAAI;IAyB1B,gBAAgB,CAAC,CAAC,EAAE,OAAO;IA6B3B,cAAc,CAAC,UAAU,GAAE,UAAiC;IA4J5D,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAchD,wBAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAyC9D,mBAAmB,CACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,GACnB,OAAO,EAAE;IAsCZ,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO;IAYrD,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAmClC,SAAS,CAAC,IAAI,EAAE,QAAQ;CA4B3B"}

View File

@@ -0,0 +1,38 @@
import { Matrix3, Matrix4, Vector3 } from "three";
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
import { Box3Ext } from "../../Geometry/Box";
import { CADFiler } from "../CADFiler";
import { ObjectId } from "../ObjectId";
import { PhysicalMaterialRecord } from "../PhysicalMaterialRecord";
import { Entity } from "./Entity";
/**
* 外部引用的实体,比如glTF
*/
export declare class EntityRef extends Entity {
protected _url?: string;
OnlyRenderType: boolean;
protected _Size: Vector3;
protected _ScaleSize: Vector3;
protected _Center: Vector3;
protected _OverWriteMaterial: Map<number, ObjectId<PhysicalMaterialRecord>>;
constructor(_url?: string);
get IsVisible(): boolean;
get Url(): string;
set Url(url: string);
get CurSize(): Vector3;
get ScaleSize(): Vector3;
set ScaleSize(size: Vector3);
get Scale(): Vector3;
get BoundingBox(): Box3Ext;
get BoundingBoxInOCS(): Box3Ext;
CloneDrawObject(from: this): void;
ApplyScaleMatrix(m: Matrix4): this;
get OverWriteMaterial(): Map<number, ObjectId<PhysicalMaterialRecord>>;
SetMaterialAtSlot(mtl: ObjectId<PhysicalMaterialRecord>, slotIndex: number): void;
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform: Matrix3): Vector3[];
GetGripPoints(): Array<Vector3>;
MoveGripPoints(indexList: Array<number>, vec: Vector3): 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,EAAQ,OAAO,EAAE,OAAO,EAAQ,OAAO,EAAE,MAAM,OAAO,CAAC;AAI9D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC;;GAEG;AACH,qBACa,SAAU,SAAQ,MAAM;IAWrB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM;IATnC,cAAc,UAAQ;IAEtB,SAAS,CAAC,KAAK,UAAe;IAC9B,SAAS,CAAC,UAAU,UAAe;IACnC,SAAS,CAAC,OAAO,UAAe;IAEhC,SAAS,CAAC,kBAAkB,gDAAuD;gBAG7D,IAAI,CAAC,EAAE,MAAM;IAKnC,IAAa,SAAS,YAGrB;IAED,IAAI,GAAG,IACM,MAAM,CADY;IAC/B,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,EAOlB;IAED,IAAI,OAAO,YAA6E;IAExF,IAAI,SAAS,IACO,OAAO,CADgB;IAC3C,IAAI,SAAS,CAAC,IAAI,EAAE,OAAO,EAW1B;IAED,IAAI,KAAK,YAKR;IAED,IAAI,WAAW,YAGd;IAED,IAAI,gBAAgB,YAenB;IAED,eAAe,CAAC,IAAI,EAAE,IAAI;IA2C1B,gBAAgB,CAAC,CAAC,EAAE,OAAO;IA6B3B,IAAI,iBAAiB,kDAGpB;IAED,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,MAAM;IAY1E,mBAAmB,CACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,GACnB,OAAO,EAAE;IAsCZ,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC;IA0B/B,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO;IAarD,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAmClC,SAAS,CAAC,IAAI,EAAE,QAAQ;CA4B3B"}

View File

@@ -0,0 +1,232 @@
import { BoxGeometry, BufferGeometry, Frustum, Geometry, Matrix3, Matrix4, Mesh, Object3D, UVGenerator, 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 { EdgesGeometry } from "../../Geometry/EdgeGeometry";
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 type ExtrudeContourCurve = Polyline | Circle;
export type ExtrudeContour = Polyline | Circle | ExtrudeSolid | Region;
export declare const MaxDrawGrooveCount = 1000;
export declare class ExtrudeSolid extends Entity {
protected height: number;
protected width: number;
/**
* 拉伸实体的厚度
* 我们允许它是一个负数,但是这个时候这个实体已经是一个无效的拉伸实体了.
* 允许负数,用来校验凹槽的合理性.
*/
protected thickness: number;
protected isRect: boolean;
protected bevelEnabled: boolean;
IsKnife: boolean;
RelevanceMeats: ObjectId[];
RelevanceKnifs: ObjectId[];
__OriginalId__: ObjectId;
__OriginalEnt__: this;
/**
* 拉伸形状
* 出于优化考虑,可能未初始化,请注意调用this.ContourCurve
* 形状位于WCS 0点位置,不随OCS变化而变化
* 注意:这个时针不一定为逆时针
*/
protected contourCurve: ExtrudeContourCurve;
/**
* 正面和反面的凹槽造型
*/
protected grooves: ExtrudeSolid[];
protected knifeRadius: number;
protected groovesAddLength: number;
protected groovesAddWidth: number;
protected groovesAddDepth: number;
__TempIndexVersion__: {
Index: number;
Version: number;
};
constructor();
set Material(materialId: ObjectId);
get Material(): ObjectId;
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;
protected ApplyMirrorMatrix(m: Matrix4): this;
get Width(): number;
get Height(): number;
get Thickness(): number;
set Thickness(thickness: number);
get Grooves(): ExtrudeSolid[];
/**
* 返回未拷贝的轮廓曲线
*/
get ContourCurve(): ExtrudeContourCurve;
set ContourCurve(cu: ExtrudeContourCurve);
/**
* 生成矩形轮廓(强制)
*/
GeneralRectContour(): void;
/**
* 转换成矩形拉伸实体
*/
ConverToRectSolid(width?: number, height?: number, thickness?: number): this;
/**
* 更新拉伸实体的轮廓
* @param curve 曲线已经存在WCS坐标系0点
*/
SetContourCurve(curve: ExtrudeContourCurve): void;
/**
* 在不改变Normal和实体显示的情况下,修改X轴的指向
* @param xAxis
*/
SetXAxis(xAxis: Vector3): this;
/**
* 检验轮廓曲线,通常当轮廓曲线被修改时,都需要检验轮廓曲线,并更新实体大小和轮廓位置.
* >计算轮廓大小
* >判断是否矩形
* >修正轮廓基点
* >保证轮廓是逆时针(不再设置)
*/
CheckContourCurve(): void;
get IsRect(): boolean;
/**
* 这个拉伸实体的面域形状
*/
get Shape(): Shape;
private GetShape;
/**
* 实体合并(不会删除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, frustum?: Frustum): 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;
/**
* (步骤2)
* 更新凹槽位置和厚度(校验凹槽的Z轴位置是否存在交集)
*/
GrooveCheckPosition(target: ExtrudeSolid): Status;
/**
* (步骤3)
* 计算凹槽合并
*/
GrooveCheckMerge(checkGrooveContourCurve?: boolean): void;
/**
* (步骤4.1)
* 计算凹槽轮廓在本实体中的约束状态(可能分裂)
* @param groove 凹槽(不拷贝,直接被修改)
* @returns this[] 凹槽在本实体中正确的约束状态.(可能分裂成为多个)
*/
private GrooveCheckContour;
/**
* (步骤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;
UpdateMeshGeom(geo: BufferGeometry | Geometry): BufferGeometry;
protected get Has2DPath(): boolean;
protected _EdgeGeometry: EdgesGeometry | BufferGeometry;
get EdgeGeometry(): BufferGeometry;
UpdateUV(geo: Geometry, ocs: Matrix4, isRev?: boolean): void;
GenWorldUV(geo: BufferGeometry): void;
UpdateBufferGeometryUvs(isRev: boolean): void;
DeferUpdate(): void;
ClearDraw(): this;
UpdateDrawObject(renderType: RenderType, obj: Object3D): Object3D;
UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D): void;
private GetModelGroove;
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,4 @@
export declare const ExtrudeConfig: {
DisableRefCut: 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;;CAEzB,CAAC"}

View File

@@ -0,0 +1,14 @@
import { BufferGeometry, Material, Matrix4, Mesh, Vector3 } from "three";
export declare function GetFaceDir(direction: Vector3): Vector3;
export declare class GenUVForWorld {
InvMtxMap: Map<Vector3, Matrix4>;
private _Z;
private _X;
private _Y;
private _Box;
private _Box2;
GetMtxInv(normalX: number, normalY: number, normalZ: number): Matrix4;
GenUV(mesh: Mesh<BufferGeometry, Material[]>): void;
GenGeoUV(geo: BufferGeometry, mtl: Material, scale?: number): void;
}
//# sourceMappingURL=GenUVForWorld.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"GenUVForWorld.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Entity/GenUVForWorld.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAMhG,wBAAgB,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAsBtD;AAED,qBAAa,aAAa;IAEtB,SAAS,wBAA+B;IAExC,OAAO,CAAC,EAAE,CAAe;IACzB,OAAO,CAAC,EAAE,CAAe;IACzB,OAAO,CAAC,EAAE,CAAe;IACzB,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,KAAK,CAAY;IACzB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAiB3D,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC;IAqD5C,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,SAAO;CA+B5D"}

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

@@ -0,0 +1,73 @@
import { Box3, Matrix3, Matrix4, Object3D, Shape, Vector3 } from 'three';
import { Status } from '../../Common/Status';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
import { Box3Ext } from '../../Geometry/Box';
import { IntersectOption, IntersectResult } 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;
/**
* 重载:更新绘制的实体
* @param {RenderType} type
* @param {Object3D} obj
*/
UpdateDrawObject(type: RenderType, obj: Object3D): void;
GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform: Matrix3): Vector3[];
GetGripPoints(): Vector3[];
MoveGripPoints(indexList: Array<number>, vec: Vector3): void;
GetStretchPoints(): Array<THREE.Vector3>;
MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
GetFirstDeriv(param: number | Vector3): Vector3;
/**
* 需要注意的是,平行线和共线无交点
* @param curve
* @param intType
* @param [tolerance=1e-4]
* @returns
*/
IntersectWith2(curve: Curve, intType: IntersectOption, tolerance?: number): IntersectResult[];
GetPointAtParam(param: number): Vector3;
GetParamAtPoint(pt: Vector3, fuzz?: number): 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<Line>;
get BoundingBox(): Box3;
/**
* 返回对象在自身坐标系下的Box
*/
get BoundingBoxInOCS(): Box3Ext;
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);
SetStartEndPoint(s: Vector3, e: Vector3): void;
}
//# 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,18 @@
import { Vector3 } from "three";
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
import { Entity } from "./Entity";
export declare class Point extends Entity {
constructor(position?: Vector3);
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 移动向量
*/
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,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,qBACa,KAAM,SAAQ,MAAM;gBAEjB,QAAQ,GAAE,OAAuB;IAQ7C,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;;;;;OAKG;IACH,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO;CAI3D"}

View File

@@ -0,0 +1,200 @@
import { Matrix3, Matrix4, Vec2, Vector2, Vector3 } from 'three';
import { Status } from '../../Common/Status';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
import { Box3Ext } from '../../Geometry/Box';
import { IntersectOption } from '../../GraphicsSystem/IntersectWith';
import { PolylineJoinType } from '../../GraphicsSystem/OffsetPolyline';
import { CADFiler } from '../CADFiler';
import { Shape2 } from '../Shape2';
import { Arc } from './Arc';
import { Curve, ExtendType } from './Curve';
import { DragPointType } from './DragPointType';
import { Line } from './Line';
export interface PolylineProps {
pt: Vector2;
bul: number;
}
export declare const BUL_IS_LINE_FUZZ = 0.00001;
export declare class Polyline extends Curve {
private _LineData;
private _ClosedMark;
constructor(_LineData?: PolylineProps[]);
UpdateOCSTo(m: Matrix4): void;
/**
* 原地翻转,仅改变法向量
*/
Flip(): this;
Reverse(): this;
set LineData(data: PolylineProps[]);
get LineData(): PolylineProps[];
get NumberOfVertices(): number;
/**
* 在指定位置插入点.
* 例如:
* pl.AddVertexAt(pl.NumberOfVertices,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;
GetBulgeAt(index: number): number;
Rectangle(length: number, height: number): this;
RectangleFrom2Pt(p1: Vector3, p2: Vector3): this;
FromPoints2d(pts: Vec2[]): 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;
/**
* 删除重复点
* @param [fuzz=0.1] 容差=0.1
*/
RemoveRepeatPos(fuzz?: number): void;
get Length(): number;
/**
* 获得指定参数所在的点.
* 当曲线存在闭合标志时,参数必须在曲线内部.
* 当曲线不存在闭合标志时,参数允许延伸出曲线.
*
* @param {number} param 参数
* @returns {Vector3} 三维点,可为空
*/
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
*/
GetFirstDeriv(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, computOCS?: boolean): Polyline | undefined;
PtOnCurve(pt: Vector3, fuzz?: number): 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, joinType?: PolylineJoinType): Polyline[];
/**
* 分解
*/
Explode(): (Line | Arc)[];
/**
* 根据参数得到参数所在的子曲线.
*
* 当曲线存在闭合标志时,参数必须在曲线内部,否则返回空.
*
* @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): Line | Arc;
IntersectWith2(curve: Curve, intType: IntersectOption, tolerance?: number): import("../../GraphicsSystem/IntersectWith").IntersectResult[];
IntersectSelf(): number[];
IsIntersectSelf(): boolean;
get BoundingBox(): Box3Ext;
SetPtsBuls(pts: Vector2[], buls: number[]): this;
/**
* 得到曲线有用的点表和凸度(闭合曲线首尾重复)
*/
get PtsBuls(): {
pts: Vector2[];
buls: number[];
};
get IsBulge(): boolean;
get Shape(): Shape2;
get SVG(): string;
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":"AAAA,OAAO,EAAQ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAIvE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,OAAO,EAAE,eAAe,EAA6B,MAAM,oCAAoC,CAAC;AAChG,OAAO,EAAkB,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,WAAW,aAAa;IAE1B,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,gBAAgB,UAAO,CAAC;AAErC,qBACa,QAAS,SAAQ,KAAK;IAGnB,OAAO,CAAC,SAAS;IAD7B,OAAO,CAAC,WAAW,CAAkB;gBACjB,SAAS,GAAE,aAAa,EAAO;IAKnD,WAAW,CAAC,CAAC,EAAE,OAAO;IAuBtB;;OAEG;IACH,IAAI;IAsBJ,OAAO,IAAI,IAAI;IAmCf,IAAI,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,EAKjC;IACD,IAAI,QAAQ,IANO,aAAa,EAAE,CASjC;IAED,IAAI,gBAAgB,IAAI,MAAM,CAG7B;IAED;;;;;;;;;OASG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,IAAI;IAqBzD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAUnC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAW9C;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM;IAc7B,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAKhD;;;;;;OAMG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI;IAW5C,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAa5C,SAAS,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAiB7C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAY5C,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAKjC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAW/C,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI;IAoBhD,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI;IAW/B,IAAI,UAAU,IAMI,OAAO,CADxB;IACD,IAAI,UAAU,CAAC,CAAC,EAAE,OAAO,EAqBxB;IACD,IAAI,QAAQ,IAOI,OAAO,CADtB;IACD,IAAI,QAAQ,CAAC,CAAC,EAAE,OAAO,EAkBtB;IAED,IAAI,UAAU,IAAI,MAAM,CAGvB;IAED,IAAI,UAAU,WAGb;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAUrB;IACD,IAAI,KAAK,WA0BR;IACD,IAAI,IAAI,WAGP;IAED,IAAI,SAAS,IAAI,OAAO,CAGvB;IAED,IAAI,OAAO,IAAI,OAAO,CAGrB;IACD,IAAI,SAAS,CAAC,CAAC,EAAE,OAAO,EAKvB;IAED,kBAAkB;IAYlB;;;OAGG;IACH,eAAe,CAAC,IAAI,SAAM;IA6B1B,IAAI,MAAM,WAGT;IAED;;;;;;;OAOG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAUvC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IA8BrC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAMzC;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM;IAyCpC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IA0BpC,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM;IAOnC;;;;;;;;OAQG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO;IAc/C,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;IA8GzD,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IA+DxE,MAAM,CAAC,QAAQ,EAAE,MAAM;IAgCvB,cAAc,CAAC,QAAQ,EAAE,OAAO;;;;IAsBhC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,UAAQ,EAAE,SAAS,SAAO;IA6LlD;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,SAAS,SAAO,GAAG,QAAQ,GAAG,SAAS;IAyBvE,iBAAiB;IACjB,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,SAAS,SAAO,EAAE,SAAS,UAAO,GAAG,QAAQ,GAAG,SAAS;IA8CpF,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,SAAO,GAAG,OAAO;IAYrD,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,SAAO,GAAG,OAAO;IAW5C,SAAS,CAAC,EAAE,EAAE,OAAO;IAIrB,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO;IAIxD,kBAAkB,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO;IAyD7D,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,EAAE;IAS/C,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,SAA0B,EAAE,QAAQ,GAAE,gBAAyC,GAAG,QAAQ,EAAE;IAM/I;;OAEG;IACH,OAAO,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE;IAUzB;;;;;;;;OAQG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK;IAYrC;;;;;;OAMG;IACH,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAQ3C;;;OAGG;IACH,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,GAAG;IAqB7B,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,SAAO;IAMhF,aAAa,IAAI,MAAM,EAAE;IAuBzB,eAAe;IA6Df,IAAI,WAAW,YASd;IAED,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;IAezC;;OAEG;IACH,IAAI,OAAO,IAAI;QAAE,GAAG,EAAE,OAAO,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;KAAE,CAsBjD;IACD,IAAI,OAAO,YAiDV;IACD,IAAI,KAAK,IAAI,MAAM,CAIlB;IACD,IAAI,GAAG,WAiBN;IAED,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM;IAc9C,mBAAmB,CACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,EAClB,SAAS,CAAC,EAAE,OAAO,GACpB,OAAO,EAAE;IA4EZ,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC;IAe/B,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO;IA8DpD,gBAAgB,IAAI,OAAO,EAAE;IAa7B;;;;;;OAMG;IACH,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO;IA+DxD,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAqBlC,SAAS,CAAC,IAAI,EAAE,QAAQ;CAa3B;AAED,eAAO,MAAM,YAAY,UAAiB,CAAC"}

View File

@@ -0,0 +1,56 @@
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[] | (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;
ClearDraw(): this;
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,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,MAAM,GAAG,SAAS;gBAanD,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;IAUlB,SAAS,IAAI,IAAI;IAMjB,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;IA8B7E,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAOlC,SAAS,CAAC,IAAI,EAAE,QAAQ;CAM3B"}