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

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

@@ -0,0 +1,138 @@
import { Box3, BufferGeometry, Matrix4, Object3D, Shape, Vector2, Vector3, Matrix3, Line as TLine } from 'three';
import { Status } from '../../Common/Status';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
import { RenderType } from '../../GraphicsSystem/RenderType';
import { IntersectOption } from '../../GraphicsSystem/IntersectWith';
import { CADFiler } from '../CADFiler';
import { Curve } from './Curve';
import { Line2 } from 'three/examples/jsm/lines/Line2';
/**
* 圆弧实体类
* 与ACAD不同,这个类加入了时针变量,并且默认构造的圆弧为顺时针圆弧.
*
* 关于时针圆弧:
* 起始圆弧到终止圆弧总是在0-2PI之间.(一个完整的圆).
* 圆弧的绘制从起始圆弧绘制到终止圆弧. 按照时针绘制.
* 参考计算圆弧的完整角度方法查看该计算方式.
*/
export declare class Arc extends Curve {
constructor(center?: Vector3, radius?: number, startAngle?: number, endAngle?: number, clockwise?: boolean);
private m_Radius;
private m_StartAngle;
private m_EndAngle;
/**
* 曲线为顺时针
*/
private m_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;
/**
* Gets param at angle2
* @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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"}

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,55 @@
import { Box3, Material, Matrix3, Matrix4, Object3D, Vector3 } from 'three';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
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(): Box3;
InitDrawObject(renderType?: RenderType): Object3D;
UpdateDrawObject(type: RenderType, obj: Object3D): void;
UpdateDrawObjectMaterial(type: RenderType, obj: Object3D, material: Material): void;
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,53 @@
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[];
OnlyRenderType: boolean;
/**
* 初始化绘制的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);
UpdateRenderType(renderType: RenderType): void;
UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D): 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;AAGnD,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;AAKlC,qBACa,eAAgB,SAAQ,MAAM;;IAO3B,OAAO,EAAE,MAAM,EAAE,CAAM;IAGnC,cAAc,UAAQ;IACtB;;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;IAMjF,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAetD,IAAI,UAAU,IAAI,MAAM,CAGvB;IACD,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAa3B;IACD,IAAI,QAAQ,mCAGX;IACD,IAAI,QAAQ,CAAC,EAAE,gCAAA,EAKd;IACD,gBAAgB,CAAC,UAAU,EAAE,UAAU;IAOvC,wBAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAU9D;;;;;;;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;IAuClF,eAAe,CAAC,IAAI,EAAE,IAAI;IAwB1B,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAelC,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":"AAAA,OAAO,EAAE,IAAI,EAAkB,OAAO,EAAW,QAAQ,EAAE,KAAK,EAAE,OAAO,EAA4B,MAAM,OAAO,CAAC;AAInH,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAA6E,eAAe,EAAqD,MAAM,oCAAoC,CAAC;AACnM,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,qBACa,OAAQ,SAAQ,KAAK;IAE9B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAAe;gBAE5B,MAAM,CAAC,EAAE,OAAO,EAChB,IAAI,GAAE,MAAa,EACnB,IAAI,GAAE,MAAa,EACnB,KAAK,GAAE,MAAU;IAQrB,IAAI,UAAU,IAAI,MAAM,CAGvB;IACD,IAAI,QAAQ,IAAI,MAAM,CAGrB;IACD,IAAI,UAAU,YAGb;IACD,IAAI,QAAQ,YAGX;IACD,IAAI,KAAK,IAAI,KAAK,CAKjB;IACD,IAAI,OAAO,IAAI,OAAO,CAGrB;IACD,IAAI,MAAM,IAII,OAAO,CADpB;IACD,IAAI,MAAM,CAAC,CAAC,EAAE,OAAO,EAKpB;IACD,IAAI,IAAI,IAII,MAAM,CADjB;IACD,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAKjB;IACD,IAAI,IAAI,IAII,MAAM,CADjB;IACD,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAKjB;IACD,IAAI,QAAQ,IAII,MAAM,CADrB;IACD,IAAI,QAAQ,CAAC,CAAC,EAAE,MAAM,EAKrB;IACD,IAAI,UAAU,IAQI,MAAM,CALvB;IACD,IAAI,QAAQ,IAUI,MAAM,CAPrB;IACD,IAAI,UAAU,CAAC,CAAC,EAAE,MAAM,EAKvB;IACD,IAAI,QAAQ,CAAC,CAAC,EAAE,MAAM,EAKrB;IACD,IAAI,MAAM,WAKT;IACD,IAAI,IAAI,WAiBP;IACD,IAAI,UAAU,WAMb;IACD,IAAI,WAAW,IAAI,IAAI,CAGtB;IACD,SAAS,CAAC,EAAE,EAAE,OAAO;IAKrB,SAAS,CAAC,EAAE,EAAE,OAAO;IASrB,WAAW,CAAC,EAAE,EAAE,OAAO;IAKvB,eAAe,CAAC,KAAK,EAAE,MAAM;IAe7B,eAAe,CAAC,EAAE,CAAC,EAAE,OAAO;IAoB5B,kBAAkB,CAAC,QAAQ,EAAE,MAAM;IAKnC,cAAc,CAAC,KAAK,EAAE,MAAM;IAI5B,cAAc,CAAC,EAAE,EAAE,OAAO;IAK1B,cAAc,CAAC,CAAC,EAAE,MAAM;IAIxB,eAAe,CAAC,GAAG,EAAE,MAAM;IAK3B,qBAAqB,CAAC,EAAE,EAAE,OAAO;IAwBjC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IA+BjC,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO;IA+CvD,eAAe,CAAC,UAAU,EAAE,MAAM;IAWlC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAqCvC,IAAI,CAAC,EAAE,EAAE,OAAO;IAwBhB,mBAAmB,CACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,EAClB,SAAS,CAAC,EAAE,OAAO,GACpB,OAAO,EAAE;IAkCZ,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe;IAsBrD,cAAc,CAAC,UAAU,GAAE,UAAiC,GAAG,QAAQ;IAMvE,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAMhD,OAAO,CAAC,cAAc;IAQtB,gBAAgB,IAAI,KAAK,CAAC,OAAO,CAAC;IAIlC,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC;IAkB/B,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO;IAIxD,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO;IAoCrD,gBAAgB,CAAC,KAAK,SAAI;IAyB1B,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAYlC,SAAS,CAAC,IAAI,EAAE,QAAQ;CAW3B"}

View File

@@ -0,0 +1,152 @@
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;
__CacheRenderType__: RenderType;
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;
_drawObject: Object3D;
get DrawObject(): Object3D;
get JigObject(): Object3D;
DestroyJigObject(): void;
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(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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"}

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(sp?: Vector3, ep?: 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): any;
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,190 @@
import { Box3, BufferGeometry, Line as TLine, Matrix3, Matrix4, Object3D, Vector2, 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, ExtendType } from './Curve';
import { DragPointType } from './DragPointType';
import { Line2 } from 'three/examples/jsm/lines/Line2';
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;
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): Array<Curve>;
GetFeedingToolPath(offsetDist: number): Array<Curve>;
/**
* 分解
*/
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[];
get BoundingBox(): Box3;
/**
* 得到曲线有用的点表和凸度(闭合曲线首尾重复)
*/
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(): Array<Vector3>;
/**
* 范围拉伸(stretch),对夹点进行拉伸.
* 如果对圆弧的一侧进行拉伸,那么修改bul
*
* @param {Array<number>} indexList
* @param {Vector3} vec
* @memberof Polyline
*/
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,EAAiB,OAAO,EAAW,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;IAsBvE,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAwBtD;;MAEE;IACF,wBAAwB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ;IAoC7E,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAOlC,SAAS,CAAC,IAAI,EAAE,QAAQ;CAM3B"}