build-dxf 0.1.9 → 0.1.11

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.
package/src/index.css CHANGED
@@ -574,6 +574,10 @@
574
574
  filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
575
575
  }
576
576
 
577
+ .filter {
578
+ filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
579
+ }
580
+
577
581
  .transition {
578
582
  transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;
579
583
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
@@ -806,7 +810,7 @@
806
810
  inherits: false
807
811
  }
808
812
 
809
- [data-v-8028c98c] {
813
+ [data-v-18ae0c97] {
810
814
  font-family: 宋体;
811
815
  }
812
816
 
package/src/index3.js CHANGED
@@ -7688,7 +7688,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7688
7688
  localStorage.setItem("lines", JSON.stringify(lines));
7689
7689
  try {
7690
7690
  dxfSystem.Dxf.set(lines);
7691
- dxfSystem.Dxf.lineOffset();
7692
7691
  } catch (error) {
7693
7692
  console.log(error);
7694
7693
  }
@@ -7908,7 +7907,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7908
7907
  drawLine.addEventListener("start", () => drawLineCount.value = 0);
7909
7908
  drawLine.addEventListener("appendLine", (e) => drawLineCount.value = e.points.length);
7910
7909
  drawLine.addEventListener("revoke", (e) => drawLineCount.value = e.points.length);
7911
- dxfSystem.Dxf.addEventListener("setDta", () => {
7910
+ dxfSystem.Dxf.addEventListener("dataChange", () => {
7912
7911
  z.value = dxfSystem.Dxf.originalZAverage;
7913
7912
  });
7914
7913
  const startedEventCancel = editor.commandManager.addEventListener("started", (e) => {
@@ -7989,7 +7988,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7989
7988
  onMousedown: dragMoveHelper,
7990
7989
  class: normalizeClass([{ "border-b-[#eee] border-b-1": toolBarExpand.value }, "flex flex-row justify-between header text-[14px] font-bold p-[10px 0px]"])
7991
7990
  }, [
7992
- _cache[13] || (_cache[13] = createStaticVNode('<div class="flex flex-row" data-v-8028c98c><div class="p-[2px_5px] flex items-center pointer-events-none" data-v-8028c98c><svg fill="#aaa" width="20" height="20" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" data-v-8028c98c><path d="M341.333333 298.666667a85.333333 85.333333 0 1 0 0-170.666667 85.333333 85.333333 0 0 0 0 170.666667z m0 298.666666a85.333333 85.333333 0 1 0 0-170.666666 85.333333 85.333333 0 0 0 0 170.666666z m85.333334 213.333334a85.333333 85.333333 0 1 1-170.666667 0 85.333333 85.333333 0 0 1 170.666667 0z m256-512a85.333333 85.333333 0 1 0 0-170.666667 85.333333 85.333333 0 0 0 0 170.666667z m85.333333 213.333333a85.333333 85.333333 0 1 1-170.666667 0 85.333333 85.333333 0 0 1 170.666667 0z m-85.333333 384a85.333333 85.333333 0 1 0 0-170.666667 85.333333 85.333333 0 0 0 0 170.666667z" data-v-8028c98c></path></svg></div><h5 class="flex text-nowrap text-[12px] items-center pointer-events-none" data-v-8028c98c>绘制工具</h5></div>', 1)),
7991
+ _cache[13] || (_cache[13] = createStaticVNode('<div class="flex flex-row" data-v-18ae0c97><div class="p-[2px_5px] flex items-center pointer-events-none" data-v-18ae0c97><svg fill="#aaa" width="20" height="20" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" data-v-18ae0c97><path d="M341.333333 298.666667a85.333333 85.333333 0 1 0 0-170.666667 85.333333 85.333333 0 0 0 0 170.666667z m0 298.666666a85.333333 85.333333 0 1 0 0-170.666666 85.333333 85.333333 0 0 0 0 170.666666z m85.333334 213.333334a85.333333 85.333333 0 1 1-170.666667 0 85.333333 85.333333 0 0 1 170.666667 0z m256-512a85.333333 85.333333 0 1 0 0-170.666667 85.333333 85.333333 0 0 0 0 170.666667z m85.333333 213.333333a85.333333 85.333333 0 1 1-170.666667 0 85.333333 85.333333 0 0 1 170.666667 0z m-85.333333 384a85.333333 85.333333 0 1 0 0-170.666667 85.333333 85.333333 0 0 0 0 170.666667z" data-v-18ae0c97></path></svg></div><h5 class="flex text-nowrap text-[12px] items-center pointer-events-none" data-v-18ae0c97>绘制工具</h5></div>', 1)),
7993
7992
  createElementVNode("div", {
7994
7993
  onMousedown: _cache[0] || (_cache[0] = (e) => e.stopPropagation()),
7995
7994
  onClick: _cache[1] || (_cache[1] = ($event) => toolBarExpand.value = !toolBarExpand.value),
@@ -8229,7 +8228,7 @@ const _export_sfc = (sfc, props) => {
8229
8228
  }
8230
8229
  return target;
8231
8230
  };
8232
- const EditorTool = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-8028c98c"]]);
8231
+ const EditorTool = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-18ae0c97"]]);
8233
8232
  class Editor extends Component {
8234
8233
  static name = "Editor";
8235
8234
  container = new THREE.Group();
@@ -1,73 +1,13 @@
1
- import { Component } from '../../ComponentManager';
2
- import { Box2 } from '../../Box2';
3
- import { LineSegment } from '../../LineSegment';
4
- import { Quadtree } from '../../Quadtree';
5
- import { SetDataOption, DataItem, LineUserData, OriginalDataItem, Unit } from '../type';
6
- import { CAD } from '../utils/CAD';
1
+ import { SetDataOption, OriginalDataItem } from '../type';
7
2
  import { DxfSystem } from '../DxfSystem';
8
- type PreProcessor = (lines: LineSegment[], option: SetDataOption) => LineSegment[];
9
- export declare const PRE_PROCESSOR: Record<"DoorsAnalysis" | "AxisAlignCorr" | "BoundExt" | "AngleCorr" | "ResetGeometricCenter", PreProcessor>;
3
+ import { Dxf } from './Dxf';
10
4
  /**
11
5
  * 将点云结构转换为DXF格式
12
6
  */
13
- export declare class CorrectionDxf<TEventMap extends {} = {}> extends Component<{
14
- dataChange: {
15
- originalData: OriginalDataItem[];
16
- data: DataItem[];
17
- cad: CAD;
18
- };
19
- cadChange: {
20
- cad: CAD;
21
- };
22
- preprocessing: {
23
- data: OriginalDataItem[];
24
- setData(data: OriginalDataItem[]): void;
25
- };
26
- } & TEventMap> {
7
+ export declare class CorrectionDxf<TEventMap extends {} = {}> extends Dxf<{} & TEventMap> {
27
8
  static name: string;
28
- static readonly PRE_PROCESSOR: Record<"DoorsAnalysis" | "AxisAlignCorr" | "BoundExt" | "AngleCorr" | "ResetGeometricCenter", PreProcessor>;
29
- width: number;
30
- originalData: OriginalDataItem[];
31
- data: DataItem[];
32
- box: Box2;
33
- cad: CAD | null;
34
- lineSegments: LineSegment<LineUserData>[];
35
- doorLineSegment: LineSegment[];
36
- verticalReferenceLine?: LineSegment<LineUserData>;
37
- originalZAverage: number;
38
- private _preProcessorSet;
39
- trajectory: Record<string, any> | null;
40
- onBoundExt?: (lines: LineSegment[], trajectory: any) => void;
41
- /** 原始数据组
42
- */
43
- get lines(): LineSegment<LineUserData>[];
44
- /**初始化
45
- * @param width 墙体宽度
46
- */
47
- constructor(width?: number);
48
- setTrajectory(trajectory: Record<string, any> | null, onBoundExt?: (lines: LineSegment[], trajectory: any) => void): this;
9
+ static readonly PRE_PROCESSOR: Record<"DoorsAnalysis" | "AxisAlignCorr" | "BoundExt" | "AngleCorr" | "ResetGeometricCenter", (lines: import('../..').LineSegment[], option: SetDataOption) => import('../..').LineSegment[]>;
49
10
  onAddFromParent(parent: DxfSystem): void;
50
- /** 完整线段数据
51
- * @returns
52
- */
53
- getLineSegments(clone?: boolean): LineSegment<LineUserData>[];
54
- /**
55
- * 预处理数据
56
- * @param data
57
- */
58
- private preprocessing;
59
- /** 添加预处理
60
- * @param handler
61
- */
62
- addPreProcessor(handler: PreProcessor): this;
63
- /** 删除预处理
64
- * @param handler
65
- */
66
- removePreProcessor(handler: PreProcessor): this;
67
- /** 清空预处理
68
- * @returns
69
- */
70
- clearPreProcessor(): this;
71
11
  /** 设置
72
12
  * @param data 房屋结构数据,node环境可以为路径
73
13
  * @param width 墙体宽度
@@ -76,51 +16,5 @@ export declare class CorrectionDxf<TEventMap extends {} = {}> extends Component<
76
16
  * @param option
77
17
  * @returns
78
18
  */
79
- set(data: OriginalDataItem[], options?: SetDataOption): void;
80
- /**
81
- * 线段数据转为原始json数据
82
- */
83
- lineDataToOriginalData(lines: LineSegment<LineUserData>[], quadtree?: Quadtree): OriginalDataItem[];
84
- /**
85
- * 下载原始json
86
- * @param filename
87
- */
88
- downloadOriginalData(filename: string): Promise<void>;
89
- /** 获取绘制数据
90
- */
91
- toDrawData(unit?: Unit): {
92
- unit: Unit;
93
- lines: [number, number, number, number, string][];
94
- arcs: [number, number, number, number, number, string][];
95
- texts: [string, number, number, string][];
96
- center: {
97
- x: number;
98
- y: number;
99
- };
100
- width: number;
101
- height: number;
102
- scale: number;
103
- } | undefined;
104
- /** 获取 dxf 图片 二进制对象
105
- * @param type
106
- */
107
- toDxfImageBlob(unit?: Unit, type?: string, background?: string): Promise<any>;
108
- /** 下载 dxf 图片
109
- * @param filename
110
- */
111
- downloadDxfImage(filename: string, unit?: Unit, type?: string): Promise<boolean | undefined>;
112
- /**
113
- * 将点json结构转换为Dxf 字符串
114
- */
115
- toDxfString(unit?: Unit): string | undefined;
116
- /**
117
- * 将点云结构转换为 DXF 二进制对象
118
- * @returns
119
- */
120
- toDxfBlob(unit?: Unit): Blob | undefined;
121
- /** 下载Dxf
122
- * @param filename
123
- */
124
- downloadDxf(filename: string, unit?: Unit): Promise<void | undefined>;
19
+ set(data: OriginalDataItem[], options?: SetDataOption): any;
125
20
  }
126
- export {};
@@ -53,7 +53,10 @@ export declare class Dxf<TEventMap extends {} = {}> extends Component<{
53
53
  * 预处理数据
54
54
  * @param data
55
55
  */
56
- private preprocessing;
56
+ protected preprocessing(data: OriginalDataItem[], options: SetDataOption): {
57
+ lineSegments: LineSegment<LineUserData>[];
58
+ data: OriginalDataItem[];
59
+ };
57
60
  /** 添加预处理
58
61
  * @param handler
59
62
  */
@@ -89,6 +92,7 @@ export declare class Dxf<TEventMap extends {} = {}> extends Component<{
89
92
  toDrawData(unit?: Unit): {
90
93
  unit: Unit;
91
94
  lines: [number, number, number, number, string][];
95
+ lines2: [number, number, number, number, string][];
92
96
  arcs: [number, number, number, number, number, string][];
93
97
  texts: [string, number, number, string][];
94
98
  center: {
@@ -7,6 +7,7 @@ type EndType = "etOpenSquare" | "etOpenButt" | "etOpenRound";
7
7
  type DrawData = {
8
8
  unit: Unit;
9
9
  lines: [number, number, number, number, string][];
10
+ lines2: [number, number, number, number, string][];
10
11
  arcs: [number, number, number, number, number, string][];
11
12
  texts: [string, number, number, string][];
12
13
  center: {
@@ -95,6 +95,13 @@ export declare class LineGroupType {
95
95
  * @returns
96
96
  */
97
97
  static removeByType(line: LineSegment<LineUserData>, type: string): boolean;
98
+ /**
99
+ * 通过类型移除
100
+ * @param line
101
+ * @param id
102
+ * @returns
103
+ */
104
+ static removeByTypes(line: LineSegment<LineUserData>, types: string[]): void;
98
105
  /**
99
106
  * 清空线段的所有分组信息
100
107
  * @param line
@@ -1,183 +0,0 @@
1
- import { Component } from '../../ComponentManager';
2
- import { Point } from '../../Point';
3
- import { Box2 } from '../../Box2';
4
- import { LineSegment } from '../../LineSegment';
5
- import { Quadtree } from '../../Quadtree';
6
- import { SetDataOption, DataItem, DrawData, LineUserData, OriginalDataItem, Unit } from '../type';
7
- /**
8
- * 将点云结构转换为DXF格式
9
- */
10
- export declare class Dxf<TEventMap extends {} = {}> extends Component<{
11
- setDta: {
12
- originalData: OriginalDataItem[];
13
- data: DataItem[];
14
- };
15
- lineOffset: {
16
- wallsGroup: Point[][];
17
- };
18
- createGroup: {
19
- groups: Point[][][];
20
- };
21
- preprocessing: {
22
- data: OriginalDataItem[];
23
- setData(data: OriginalDataItem[]): void;
24
- };
25
- } & TEventMap> {
26
- static name: string;
27
- shortLine: number;
28
- width: number;
29
- scale: number;
30
- originalData: OriginalDataItem[];
31
- data: DataItem[];
32
- originalBox: Box2;
33
- box: Box2;
34
- pointsGroups: Point[][][];
35
- wallsGroup: Point[][];
36
- doors: DataItem[];
37
- doorLineSegment: LineSegment[];
38
- verticalReferenceLine?: LineSegment<LineUserData>;
39
- lineSegments: LineSegment<LineUserData>[];
40
- originalZAverage: number;
41
- static EndType: {
42
- etOpenSquare: number;
43
- etOpenRound: number;
44
- etOpenButt: number;
45
- };
46
- static JoinType: {
47
- jtSquare: number;
48
- jtRound: number;
49
- jtMiter: number;
50
- };
51
- /** 原始数据组
52
- */
53
- get lines(): LineSegment<LineUserData>[];
54
- /**初始化
55
- * @param width 墙体宽度
56
- * @param scale 缩放比例
57
- */
58
- constructor(width?: number, scale?: number);
59
- /** 预处理数据
60
- * @param data
61
- */
62
- preprocessing(data: OriginalDataItem[]): {
63
- lineSegments: LineSegment<LineUserData>[];
64
- data: OriginalDataItem[];
65
- };
66
- /** 设置
67
- * @param data 房屋结构数据,node环境可以为路径
68
- * @param width 墙体宽度
69
- * @param scale 缩放比例
70
- * @param axisAlignmentCorrection 需要执行轴对称垂直纠正
71
- * @param option
72
- * @returns
73
- */
74
- set(data: OriginalDataItem[] | string, width?: number, scale?: number): Promise<any>;
75
- /** 创建分组
76
- * @description 根据相交数组insetionArr, 把相交的线段,划分到一组内,方便后续路径查找合并使用
77
- * @returns
78
- */
79
- private createGroups;
80
- /** 计算当前墙体数据的边界框
81
- * @description 根据分组数据pointsGroups,计算包围盒, pointsGroups数据为缩放后数据。
82
- * @description 可通过box属性查看计算结果。
83
- * @returns
84
- */
85
- computedSize(): Box2;
86
- /** 线路拓扑
87
- * @description 处理线路拓扑,使线路有序链接,形成长路径
88
- * @param lines
89
- */
90
- lineTopology(lines: Point[][]): Point<Record<string, any>>[][];
91
- /** 合并方向相同的线段
92
- * @param lines
93
- * @param errAngle
94
- */
95
- private mergeSameDirectionLine;
96
- /** etOpenRound 去除毛刺
97
- * @description 检查连续的短线段数量,去除合并后产生的毛刺
98
- */
99
- private squareRemoveBurr;
100
- /**
101
- * 线段矫直, 线段中心突刺
102
- * @description 突变长度小于墙体宽度,该线段可能为突起线段,
103
- * @description 判断后续第2线段与上一条线段是否方向相同,相同就为突刺
104
- */
105
- lineSegmentStraightening(path: Point[]): Point<Record<string, any>>[];
106
- /**
107
- * 移除短线段
108
- * @todo 根据线段两端线段长度,选取参照物_|▔▔
109
- * @param path
110
- */
111
- removeShortLine(path: Point[], shortLine?: number): Point<Record<string, any>>[];
112
- /** 线偏移
113
- * @description 使用 ClipperLib 对每个点组进行线偏移处理,生成具有指定宽度的墙体路径
114
- */
115
- lineOffset(endType?: number, joinType?: number, scale?: number): Point<Record<string, any>>[][];
116
- /** 垂直纠正
117
- * @param option
118
- */
119
- axisAlignCorr(option?: SetDataOption): Promise<void>;
120
- /** 完整线段数据
121
- * @returns
122
- */
123
- getLineSegments(clone?: boolean): LineSegment<LineUserData>[];
124
- /**
125
- * 将点云结构转换为Float32Array
126
- */
127
- to3DArray(scale: number, z?: number): Float32Array<ArrayBuffer>;
128
- /** 获取角度范围
129
- * @param center
130
- * @param p1
131
- * @param p2
132
- * @returns
133
- */
134
- private getArcAngleRange;
135
- /**
136
- * 线段数据转为原始json数据
137
- */
138
- lineDataToOriginalData(lines: LineSegment<LineUserData>[], quadtree?: Quadtree): OriginalDataItem[];
139
- /**
140
- * 转为绘制数据
141
- */
142
- toDrawDataJson(unit?: Unit): DrawData;
143
- /**
144
- * @param type
145
- */
146
- toDxfImageBlob(unit?: Unit, type?: string, background?: string): Promise<any>;
147
- /**
148
- * 将点json结构转换为Dxf string
149
- */
150
- toDxfString(unit?: Unit): string;
151
- /**
152
- * 将点云结构转换为DXF格式
153
- * @returns
154
- */
155
- toDxfBlob(unit?: Unit): Blob;
156
- /**
157
- * 下载原始json
158
- * @param filename
159
- */
160
- downloadOriginalData(filename: string): Promise<void>;
161
- /**
162
- * 下载
163
- * @param filename
164
- */
165
- download(filename: string, unit?: Unit): Promise<void>;
166
- /**
167
- * 下载
168
- * @param filename
169
- */
170
- downloadImage(filename: string, unit?: Unit, type?: string): Promise<boolean>;
171
- /**
172
- * 计算原始数据的边界框
173
- * @description 计算所有线段的起点和终点的最小最大值,形成一个边界框
174
- * @returns
175
- */
176
- private computedOriginalSize;
177
- /**
178
- * 创建数据
179
- * @param pointsGroups
180
- * @returns
181
- */
182
- static createData(pointsGroups: Point[][], sealed?: boolean): OriginalDataItem[];
183
- }