build-dxf 0.1.21 → 0.1.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/package.json +1 -1
  2. package/src/DomEventRegister.js +4 -5
  3. package/src/build.d.ts +3 -0
  4. package/src/build.js +6764 -3142
  5. package/src/components/DragContainer.vue.d.ts +44 -0
  6. package/src/index.css +111 -66
  7. package/src/index.js +10 -10
  8. package/src/index2.js +0 -2
  9. package/src/index3.js +658 -226
  10. package/src/utils/DxfSystem/components/CorrectionDxf.d.ts +1 -1
  11. package/src/utils/DxfSystem/components/Dxf.d.ts +1 -1
  12. package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/Default.d.ts +1 -1
  13. package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/PropertiesPanel.d.ts +33 -0
  14. package/src/utils/DxfSystem/plugin/Editor/components/index.d.ts +1 -0
  15. package/src/utils/DxfSystem/plugin/Editor/pages/EditorTool.vue.d.ts +1 -4
  16. package/src/utils/DxfSystem/plugin/Editor/pages/PropertiesPanel.vue.d.ts +16 -0
  17. package/src/utils/DxfSystem/plugin/Editor/pages/components/Input.vue.d.ts +13 -0
  18. package/src/utils/DxfSystem/plugin/RenderPlugin/components/DomEventRegister.d.ts +1 -2
  19. package/src/utils/DxfSystem/type.d.ts +31 -27
  20. package/src/utils/DxfSystem/utils/BoundExt.d.ts +0 -4
  21. package/src/utils/DxfSystem/utils/BoundExt02.d.ts +46 -0
  22. package/src/utils/DxfSystem/utils/DoorFind.d.ts +4 -3
  23. package/src/utils/DxfSystem/utils/index.d.ts +1 -1
  24. package/src/utils/DxfSystem/utils/lineSegmentClipping.d.ts +1 -1
  25. package/src/utils/LineSegment.d.ts +1 -1
  26. package/src/utils/OBB.d.ts +30 -0
  27. package/src/utils/{PointCloud.d.ts → PCSparseOctree.d.ts} +2 -29
  28. package/src/utils/StorageHelper.d.ts +6 -0
  29. package/src/utils/index.d.ts +2 -0
  30. package/src/utils/isMobile.d.ts +1 -0
  31. package/src/utils/modelScenario/scenario.d.ts +2 -1
@@ -7,7 +7,7 @@ import { Dxf } from './Dxf';
7
7
  */
8
8
  export declare class CorrectionDxf<TEventMap extends {} = {}> extends Dxf<{} & TEventMap> {
9
9
  static name: string;
10
- static readonly PRE_PROCESSOR: Record<"DoorFind" | "AxisAlignCorr" | "BoundExt" | "AngleCorr" | "ResetGeometricCenter" | "WallHeightHandle" | "Clipping" | "RemoveShortLine", (lines: import('../..').LineSegment[], option: SetDataOption) => import('../..').LineSegment[]>;
10
+ static readonly PRE_PROCESSOR: Record<"DoorFind" | "AxisAlignCorr" | "BoundExt" | "AngleCorr" | "ResetGeometricCenter" | "WallHeightHandle" | "Clipping" | "RemoveShortLine", (lines: import('../..').LineSegment[], option: SetDataOption, ...arg: any[]) => import('../..').LineSegment[]>;
11
11
  rotateCorrCad?: CAD;
12
12
  constructor();
13
13
  onAddFromParent(parent: DxfSystem): void;
@@ -4,7 +4,7 @@ import { LineSegment } from '../../LineSegment';
4
4
  import { Quadtree } from '../../Quadtree';
5
5
  import { SetDataOption, DataItem, LineUserData, OriginalDataItem, Unit } from '../type';
6
6
  import { CAD } from '../utils/CAD';
7
- type PreProcessor = (lines: LineSegment[], option: SetDataOption) => LineSegment[];
7
+ type PreProcessor = (lines: LineSegment[], option: SetDataOption, ...arg: any[]) => LineSegment[];
8
8
  export declare const PRE_PROCESSOR: Record<"DoorFind" | "AxisAlignCorr" | "BoundExt" | "AngleCorr" | "ResetGeometricCenter" | "WallHeightHandle" | "Clipping" | "RemoveShortLine", PreProcessor>;
9
9
  /**
10
10
  * 将点云结构转换为DXF格式
@@ -20,7 +20,7 @@ export declare class Default extends CommandFlowComponent<{
20
20
  /** 添加选择的线段
21
21
  * @param lineSegment
22
22
  */
23
- addSelectLine(lineSegment: LineSegment): void;
23
+ addSelectLine(...lineSegments: LineSegment[]): void;
24
24
  /** 移除选择的线段
25
25
  * @param lineSegment
26
26
  */
@@ -0,0 +1,33 @@
1
+ import { CommandFlowComponent } from './CommandFlowComponent';
2
+ import { ComponentManager } from '../../../../../ComponentManager';
3
+ import { LineSegment } from '../../../../../LineSegment';
4
+ import * as THREE from "three";
5
+ export declare class PropertiesPanel extends CommandFlowComponent<{}> {
6
+ static name: string;
7
+ container: THREE.Group<THREE.Object3DEventMap>;
8
+ static shortcutKeys: string[];
9
+ static commandName: string;
10
+ isOpen: boolean;
11
+ onAddFromParent(parent: ComponentManager): void;
12
+ getSelectLines(): {
13
+ list: LineSegment<import('../../../../type').LineUserData>[];
14
+ winList: any[];
15
+ };
16
+ private constraint;
17
+ /** 选择开始点
18
+ * @param next
19
+ */
20
+ open(next: any): void;
21
+ /** 执行完成
22
+ */
23
+ completed(): void;
24
+ /** 回滚操作
25
+ * @param data
26
+ */
27
+ private rollback;
28
+ /** 撤回回滚
29
+ * @param lines
30
+ * @returns
31
+ */
32
+ private revokeRollback;
33
+ }
@@ -4,3 +4,4 @@ export * from './CommandFlow/DrawDoorLine';
4
4
  export * from './CommandFlow/DrawLine';
5
5
  export * from './CommandFlow/DrawWindow';
6
6
  export * from './CommandFlow/VerticalCorr';
7
+ export * from './CommandFlow/PropertiesPanel';
@@ -3,8 +3,5 @@ type __VLS_Props = {
3
3
  dxfSystem: DxfSystem;
4
4
  permission?: "admin";
5
5
  };
6
- declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
7
- elRef: HTMLDivElement;
8
- toolBarRef: HTMLDivElement;
9
- }, any>;
6
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
10
7
  export default _default;
@@ -0,0 +1,16 @@
1
+ import { LineUserData } from '../../../type';
2
+ import { LineSegment } from '../../../../LineSegment';
3
+ import { Ref } from 'vue';
4
+ type __VLS_Props = {
5
+ selectLines: Ref<LineSegment<LineUserData & {
6
+ isSelectWindow: boolean;
7
+ groundClearance: number;
8
+ width: number;
9
+ }>[]>;
10
+ };
11
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
12
+ update: (...args: any[]) => void;
13
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
14
+ onUpdate?: ((...args: any[]) => any) | undefined;
15
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
16
+ export default _default;
@@ -0,0 +1,13 @@
1
+ type __VLS_PublicProps = {
2
+ "modelValue"?: number;
3
+ };
4
+ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
5
+ blur: (...args: any[]) => void;
6
+ change: (...args: any[]) => void;
7
+ "update:modelValue": (value: number) => void;
8
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
9
+ onBlur?: ((...args: any[]) => any) | undefined;
10
+ onChange?: ((...args: any[]) => any) | undefined;
11
+ "onUpdate:modelValue"?: ((value: number) => any) | undefined;
12
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLInputElement>;
13
+ export default _default;
@@ -42,10 +42,10 @@ export declare class DomEventRegister extends Component<{
42
42
  */
43
43
  autoBodyCursor(): void;
44
44
  /**
45
- *
46
45
  * @param callBack
47
46
  */
48
47
  addCancelDefaultBehavior(callBack: (e: KeyboardEvent) => boolean): this;
48
+ destroy(): void;
49
49
  /**
50
50
  *
51
51
  * @param el
@@ -60,5 +60,4 @@ export declare class DomEventRegister extends Component<{
60
60
  x: number;
61
61
  y: number;
62
62
  }, condition?: () => boolean): () => void;
63
- destroy(): void;
64
63
  }
@@ -7,6 +7,35 @@ export interface GroupItem {
7
7
  id: string;
8
8
  type?: string;
9
9
  }
10
+ export type LineUserData = {
11
+ doorDirectConnection?: boolean;
12
+ isDoor?: boolean;
13
+ isWindow?: boolean;
14
+ isVerticalReferenceLine?: boolean;
15
+ wallWidth?: number;
16
+ rooftopPz?: number;
17
+ height?: number;
18
+ groupId?: string;
19
+ groupType?: string;
20
+ groups?: GroupItem[];
21
+ doorAutomaticFind?: boolean;
22
+ isBayWindow?: boolean;
23
+ uuid?: string;
24
+ drawWindow?: {
25
+ p: {
26
+ x: number;
27
+ y: number;
28
+ z: number;
29
+ };
30
+ width: number;
31
+ full: boolean;
32
+ rooftopPz?: number;
33
+ uuid?: string;
34
+ }[];
35
+ sillHeight?: number;
36
+ drawDoorData?: any;
37
+ quadtreeNode?: QuadtreeNode;
38
+ };
10
39
  export interface OriginalDataItem {
11
40
  start: {
12
41
  x: number;
@@ -48,6 +77,7 @@ export interface OriginalDataItem {
48
77
  rooftopPz?: number;
49
78
  isVerticalReferenceLine?: boolean;
50
79
  groupId?: string;
80
+ uuid?: string;
51
81
  drawWindow?: {
52
82
  p: {
53
83
  x: number;
@@ -56,35 +86,9 @@ export interface OriginalDataItem {
56
86
  };
57
87
  width: number;
58
88
  full: boolean;
89
+ uuid?: string;
59
90
  }[];
60
91
  }
61
- export type LineUserData = {
62
- doorDirectConnection?: boolean;
63
- isDoor?: boolean;
64
- isWindow?: boolean;
65
- isVerticalReferenceLine?: boolean;
66
- wallWidth?: number;
67
- rooftopPz?: number;
68
- height?: number;
69
- groupId?: string;
70
- groupType?: string;
71
- groups?: GroupItem[];
72
- doorAutomaticFind?: boolean;
73
- isBayWindow?: boolean;
74
- drawWindow?: {
75
- p: {
76
- x: number;
77
- y: number;
78
- z: number;
79
- };
80
- width: number;
81
- full: boolean;
82
- rooftopPz?: number;
83
- }[];
84
- sillHeight?: number;
85
- drawDoorData?: any;
86
- quadtreeNode?: QuadtreeNode;
87
- };
88
92
  /**
89
93
  * [开始点, 结束点, 相交点, 是否是门, 索引]
90
94
  */
@@ -15,10 +15,6 @@ interface IByTrajAnOriginData {
15
15
  updateDoubleWallGroup?: boolean;
16
16
  findCallBack?: (lines: LineSegment[], trajectory: Point[]) => void;
17
17
  }
18
- /** 执行纠正更加全面
19
- * @param line
20
- * @param grid
21
- */
22
18
  export declare class BoundExt {
23
19
  /** 通过轨迹点查找外墙
24
20
  * @param lines
@@ -0,0 +1,46 @@
1
+ import { LineSegment } from '../../LineSegment';
2
+ import { Point } from '../../Point';
3
+ import { LineUserData, OriginalDataItem } from '../type';
4
+ interface IByTraj {
5
+ lines: LineSegment[];
6
+ trajectory: any;
7
+ wallWidth: number;
8
+ updateDoubleWallGroup?: boolean;
9
+ findCallBack?: (lines: LineSegment[], trajectory: Point[]) => void;
10
+ }
11
+ interface IByTrajAnOriginData {
12
+ data: OriginalDataItem[];
13
+ trajectory: any;
14
+ wallWidth: number;
15
+ updateDoubleWallGroup?: boolean;
16
+ findCallBack?: (lines: LineSegment[], trajectory: Point[]) => void;
17
+ }
18
+ export declare class BoundExt {
19
+ /** 通过轨迹点查找外墙
20
+ * @param lines
21
+ * @param trajectoryPoints
22
+ * @returns
23
+ */
24
+ static findExtWallByTraj(lines: LineSegment<LineUserData & {
25
+ expandDirect?: 'left' | 'right' | 'on';
26
+ }>[], trajectoryPoints: Point[], minWidth?: number): LineSegment<LineUserData & {
27
+ expandDirect?: "left" | "right" | "on";
28
+ }>[];
29
+ /** 通过轨迹点外扩边线
30
+ * @param lines
31
+ * @param trajectoryPoints
32
+ */
33
+ static boundExtbyTrajAndOriginalData(opt: IByTrajAnOriginData): OriginalDataItem[];
34
+ /** 通过轨迹点外扩边线
35
+ * @param lines
36
+ * @param trajectory
37
+ * @param wallWidth
38
+ * @param findCallBack
39
+ * @returns
40
+ */
41
+ static boundExtbyTraj(opt: IByTraj): {
42
+ lines: LineSegment<Record<string, any>>[];
43
+ toOriginalData(originalZAverage: number): OriginalDataItem[];
44
+ };
45
+ }
46
+ export {};
@@ -24,13 +24,14 @@ export declare class DoorFind {
24
24
  * @returns
25
25
  */
26
26
  findOpenDoors(line: LineSegment<LineUserData>): void;
27
- /** 对门的两侧进行吸附
28
- * @description
27
+ /**
28
+ * 对门的两侧进行吸附
29
29
  * @param dock
30
30
  * @param line
31
+ * @param maxAngle 找到的门线与原来的之间最大夹角
31
32
  * @returns
32
33
  */
33
- adsorpt(dock: IDockInfo, line: LineSegment): Point<Record<string, any>> | null;
34
+ adsorpt(dock: IDockInfo, line: LineSegment, maxAngle?: number): Point<Record<string, any>> | null;
34
35
  getLines(): LineSegment<Record<string, any>>[];
35
36
  }
36
37
  export {};
@@ -1,5 +1,5 @@
1
1
  export * from './AxisAlignCorr';
2
- export * from './BoundExt';
2
+ export * from './BoundExt02';
3
3
  export * from './lineDataToOriginalData';
4
4
  export * from './lineSegmentClipping';
5
5
  export * from './DoubleWallHelper';
@@ -5,4 +5,4 @@ import { LineUserData } from '../type';
5
5
  * @param minLen
6
6
  * @returns
7
7
  */
8
- export declare function lineSegmentClipping(lines: LineSegment<LineUserData>[], minLen?: number): LineSegment<LineUserData>[];
8
+ export declare function lineSegmentClipping(lines: LineSegment<LineUserData>[], minLen?: number): LineSegment<Record<string, any>>[];
@@ -285,7 +285,7 @@ export declare class LineSegment<T = Record<string, any>> {
285
285
  newLines: LineSegment<Record<string, any>>[];
286
286
  deleteLines: LineSegment<Record<string, any>>[];
287
287
  };
288
- /** 合并本属于同一条的线段,切不能被其他线段分割
288
+ /** 合并本属于同一条的线段,且不能被其他线段分割
289
289
  * @param lines
290
290
  * @param callBack
291
291
  * @returns
@@ -0,0 +1,30 @@
1
+ import { OBB as OBB_ } from 'three/addons/math/OBB.js';
2
+ import * as THREE from 'three';
3
+ export declare class OBB extends OBB_ {
4
+ getBoxMesh(): THREE.Mesh<THREE.BoxGeometry, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
5
+ getBoxEdge(color?: number): THREE.LineSegments<THREE.EdgesGeometry<THREE.BoxGeometry>, THREE.LineBasicMaterial, THREE.Object3DEventMap>;
6
+ toJson(): {
7
+ size: THREE.Vector3Tuple;
8
+ center: THREE.Vector3Tuple;
9
+ quaternion: THREE.QuaternionTuple;
10
+ };
11
+ /**
12
+ * @param box
13
+ * @param position
14
+ * @param rotation
15
+ * @param obb
16
+ * @returns
17
+ */
18
+ static from(box: THREE.Vector3, position: THREE.Vector3, rotation: THREE.Euler | THREE.Quaternion, obb?: OBB): OBB;
19
+ /** 通过2d路径创建
20
+ * @param path
21
+ * @param origin
22
+ * @param height
23
+ * @param obb_
24
+ * @returns
25
+ */
26
+ static fromByPath2D(path: {
27
+ x: number;
28
+ y: number;
29
+ }[], origin: THREE.Vector3, height: number, obb_?: OBB): OBB;
30
+ }
@@ -1,26 +1,6 @@
1
1
  import { Octant, PointData } from 'sparse-octree';
2
- import { OBB } from 'three/addons/math/OBB.js';
2
+ import { OBB } from './OBB';
3
3
  import * as THREE from 'three';
4
- /** 查询点是否在obb内,通过gpu计算
5
- * @param points
6
- * @param obbs
7
- * @returns
8
- */
9
- export declare function pointInOBBByGpu(points: THREE.Vector3[], obbs: OBBBox[]): Promise<number[]>;
10
- export declare class OBBBox extends OBB {
11
- getBoxMesh(): THREE.Mesh<THREE.BoxGeometry, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
12
- getBoxEdge(color?: number): THREE.LineSegments<THREE.EdgesGeometry<THREE.BoxGeometry>, THREE.LineBasicMaterial, THREE.Object3DEventMap>;
13
- toJson(): {
14
- size: THREE.Vector3Tuple;
15
- center: THREE.Vector3Tuple;
16
- quaternion: THREE.QuaternionTuple;
17
- };
18
- static fromByBox(box: THREE.Vector3, position: THREE.Vector3, rotation: THREE.Euler | THREE.Quaternion, obb?: OBBBox): OBBBox;
19
- static fromByPath2D(path: {
20
- x: number;
21
- y: number;
22
- }[], origin: THREE.Vector3, height: number, obb_?: OBBBox): OBBBox;
23
- }
24
4
  export declare class PCSparseOctree<T> {
25
5
  private octree;
26
6
  bound: THREE.Box3;
@@ -66,17 +46,10 @@ export declare class PCSparseOctree<T> {
66
46
  * @param obbList
67
47
  * @returns
68
48
  */
69
- findPointsInOBBBatch(obbList: OBBBox[]): {
49
+ findPointsInOBBBatch(obbList: OBB[]): {
70
50
  point: THREE.Vector3;
71
51
  data: T;
72
52
  }[][];
73
- /**
74
- * @param obbList
75
- */
76
- findPointsByGpu(obbList: OBBBox[]): Promise<{
77
- point: THREE.Vector3;
78
- data: T;
79
- }[][]>;
80
53
  static fromPoints(points: THREE.Vector3[]): PCSparseOctree<{
81
54
  index: number;
82
55
  }>;
@@ -0,0 +1,6 @@
1
+ export declare class StorageHelper {
2
+ static get(key: string, defaultValue?: any): any;
3
+ static getBoolean(key: string, defaultValue?: boolean): boolean;
4
+ static getNumber(key: string, defaultValue?: number): number;
5
+ static set(key: string, vaalue: any): void;
6
+ }
@@ -19,3 +19,5 @@ export * from './Gltf';
19
19
  export * from './DxfSystem/utils/SceneAutoGenerat';
20
20
  export * from './MaxiCircles';
21
21
  export * from './MiniCircles';
22
+ export * from './OBB';
23
+ export * from './PCSparseOctree';
@@ -0,0 +1 @@
1
+ export declare function isMobile(): boolean;
@@ -34,6 +34,7 @@ export default class Scenario {
34
34
  height: any;
35
35
  expandedList: any;
36
36
  wallHeight: any;
37
+ box: any;
37
38
  private static _instance?;
38
39
  static get Instance(): Scenario | undefined;
39
40
  constructor(scene: THREE.Scene, camera: THREE.PerspectiveCamera, renderer: THREE.WebGLRenderer, controls: OrbitControls);
@@ -50,7 +51,7 @@ export default class Scenario {
50
51
  installTable(): void;
51
52
  installchair(): void;
52
53
  winHoleOpening(data: any, mesh: any, winGroundHeight?: number, Height?: number): Brush;
53
- doorHoleOpening(wallHeight: number, data: any, data1: any, groundHeight?: number, Height?: number, distance?: number, center?: THREE.Vector3, angleRad?: any, index?: string): void;
54
+ doorHoleOpening(wallHeight: number, data: any, data1: any, groundHeight?: number, Height?: number, distance?: number, center?: THREE.Vector3, angleRad?: any, index?: string, doorList?: LineSegment): void;
54
55
  angleToXAxisDegrees(x1: number, y1: number, x2: number, y2: number, wide: number, cd: boolean): number;
55
56
  xinLine(x: number, y: number, point: THREE.Vector3 | Point, wallHeight: number): THREE.Vector3[];
56
57
  xinLine1(x: number, y: number, pointa: THREE.Vector3, pointb: THREE.Vector3, num: number, wallHeight: number): THREE.Vector3[];