build-dxf 0.1.31 → 0.1.33

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "build-dxf",
3
- "version": "0.1.31",
3
+ "version": "0.1.33",
4
4
  "description": "线段构建双线墙壁的dxf版本",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
@@ -7,7 +7,7 @@ import { CSS3DObject, CSS3DSprite, CSS3DRenderer } from "three/addons/renderers/
7
7
  import { CSS2DObject, CSS2DRenderer } from "three/addons/renderers/CSS2DRenderer.js";
8
8
  import { OrbitControls } from "three/addons/controls/OrbitControls.js";
9
9
  import * as TWEEN from "@tweenjs/tween.js";
10
- import { C as Component, a as Point, h as getDefaultExportFromCjs, A as ArrayMap, V as Variable } from "./build.js";
10
+ import { C as Component, a as Point, i as getDefaultExportFromCjs, A as ArrayMap, V as Variable } from "./build.js";
11
11
  import { ref } from "vue";
12
12
  class DomContainer extends Component {
13
13
  static name = "DomContainer";
@@ -250,8 +250,9 @@ const _Renderer = class _Renderer extends Component {
250
250
  */
251
251
  createCircle(point, parameters, parent) {
252
252
  const vertices = [];
253
- if (Array.isArray(point)) point.forEach((p) => vertices.push(p.x, p.y, 0));
254
- else vertices.push(point.x, point.y, 0);
253
+ if (Array.isArray(point)) point.forEach((p) => vertices.push(p.x, p.y, p.z ?? 0));
254
+ else if (point instanceof Point) vertices.push(point.x, point.y, 0);
255
+ else vertices.push(point.x, point.y, point.z);
255
256
  const geometry = new THREE.BufferGeometry();
256
257
  geometry.setAttribute("position", new THREE.Float32BufferAttribute(vertices, 3));
257
258
  const material = new THREE.PointsMaterial({
@@ -1382,7 +1383,7 @@ class DomEventRegister extends Component {
1382
1383
  return this;
1383
1384
  }
1384
1385
  destroy() {
1385
- this.canceEventRecord("destory");
1386
+ this.cancelEventRecord("destory");
1386
1387
  }
1387
1388
  /**
1388
1389
  *
package/src/build.js CHANGED
@@ -33,6 +33,14 @@ class EventDispatcher extends EventDispatcher$1 {
33
33
  }
34
34
  eventRecordStack = /* @__PURE__ */ new Map();
35
35
  addEventRecord(name, ...cancels) {
36
+ if (Array.isArray(name)) {
37
+ const list = name.map((n) => this.addEventRecord(n, ...cancels));
38
+ const add2 = (cancel) => {
39
+ list.forEach(({ add: add3 }) => add3(cancel));
40
+ return { add: add2 };
41
+ };
42
+ return { add: add2 };
43
+ }
36
44
  if (!this.eventRecordStack.has(name)) this.eventRecordStack.set(name, []);
37
45
  cancels.forEach((cancel) => {
38
46
  this.eventRecordStack.get(name)?.push(cancel);
@@ -43,7 +51,7 @@ class EventDispatcher extends EventDispatcher$1 {
43
51
  };
44
52
  return { add };
45
53
  }
46
- canceEventRecord(name) {
54
+ cancelEventRecord(name) {
47
55
  const list = this.eventRecordStack.get(name);
48
56
  if (list) {
49
57
  list.reverse().forEach((cancel) => cancel());
@@ -2205,6 +2213,9 @@ class Point {
2205
2213
  this.y = y;
2206
2214
  return this;
2207
2215
  }
2216
+ setByDirect(direct, origin, width) {
2217
+ origin.clone().add(direct.clone().multiplyScalar(width));
2218
+ }
2208
2219
  setX(x) {
2209
2220
  this.x = x;
2210
2221
  return this;
@@ -15675,6 +15686,32 @@ class Lines extends THREE.LineSegments {
15675
15686
  this.points.length = 0;
15676
15687
  this.addPoint(...points);
15677
15688
  }
15689
+ setColor(color) {
15690
+ if (this.material.color instanceof THREE.Color) this.material.color.setHex(color);
15691
+ else this.material.color = new THREE.Color(color);
15692
+ }
15693
+ setOpacity(opacity) {
15694
+ this.material.transparent = true;
15695
+ this.material.opacity = opacity;
15696
+ }
15697
+ getCenter(startIndex, endIndex) {
15698
+ endIndex = endIndex ?? startIndex;
15699
+ if (startIndex <= this.points.length - 1 && endIndex <= this.points.length - 1) {
15700
+ const start = this.points[startIndex];
15701
+ const end = this.points[endIndex];
15702
+ return start.clone().add(end).multiplyScalar(0.5);
15703
+ }
15704
+ throw new Error("索引不在可取范围");
15705
+ }
15706
+ getDistance(startIndex, endIndex) {
15707
+ endIndex = endIndex ?? startIndex;
15708
+ if (startIndex <= this.points.length - 1 && endIndex <= this.points.length - 1) {
15709
+ const start = this.points[startIndex];
15710
+ const end = this.points[endIndex];
15711
+ return start.distanceTo(end);
15712
+ }
15713
+ throw new Error("索引不在可取范围");
15714
+ }
15678
15715
  _timer = null;
15679
15716
  updateGeometry() {
15680
15717
  if (this._timer) clearTimeout(this._timer);
@@ -19081,7 +19118,6 @@ async function buildJson(opt) {
19081
19118
  itemInfo = JSON.parse(buffer.toString("utf-8"));
19082
19119
  } else throw new Error("非node环境不允许使用路径");
19083
19120
  }
19084
- whiteModel?.setItemList(itemInfo);
19085
19121
  }
19086
19122
  doorFind && dxfSystem.Dxf.addPreProcessor(PRE_PROCESSOR.DoorFind);
19087
19123
  if (opt.axisAlignCorr !== false) dxfSystem.Dxf.addPreProcessor(PRE_PROCESSOR.AxisAlignCorr);
@@ -19102,7 +19138,9 @@ async function buildJson(opt) {
19102
19138
  groupMethod: "cross",
19103
19139
  fittingMethod: "max",
19104
19140
  crossAxistThreshold: 0.08,
19141
+ wallGroup: true,
19105
19142
  ...axisAlignCorrOption,
19143
+ publicInfo: itemInfo,
19106
19144
  trajectory
19107
19145
  });
19108
19146
  download?.json && await dxfSystem.Dxf.downloadOriginalData(download.json);
@@ -19159,20 +19197,21 @@ export {
19159
19197
  Point as a,
19160
19198
  LineSegment as b,
19161
19199
  cloneUserData as c,
19162
- Lines as d,
19163
- drawText$1 as e,
19164
- PRE_PROCESSOR as f,
19165
- CommandManager as g,
19166
- getDefaultExportFromCjs as h,
19167
- createEditor as i,
19168
- getModels as j,
19169
- buildJson as k,
19170
- getFileAll as l,
19171
- getGlobalDxfSystem as m,
19172
- index$1 as n,
19173
- index as o,
19174
- DxfSystem as p,
19175
- components as q,
19200
+ createQuadtree as d,
19201
+ Lines as e,
19202
+ drawText$1 as f,
19203
+ PRE_PROCESSOR as g,
19204
+ CommandManager as h,
19205
+ getDefaultExportFromCjs as i,
19206
+ createEditor as j,
19207
+ getModels as k,
19208
+ buildJson as l,
19209
+ getFileAll as m,
19210
+ getGlobalDxfSystem as n,
19211
+ index$1 as o,
19212
+ index as p,
19213
+ DxfSystem as q,
19176
19214
  recomputedWindow as r,
19215
+ components as s,
19177
19216
  uuid as u
19178
19217
  };
@@ -0,0 +1,21 @@
1
+ type __VLS_Props = {
2
+ showCancel?: boolean;
3
+ };
4
+ declare const __VLS_defaults: {
5
+ modelValue: string;
6
+ };
7
+ type __VLS_PublicProps = {
8
+ modelValue?: typeof __VLS_defaults['modelValue'];
9
+ } & __VLS_Props;
10
+ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
11
+ cancel: (...args: any[]) => void;
12
+ confirm: (...args: any[]) => void;
13
+ "update:modelValue": (value: string) => void;
14
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
15
+ onCancel?: ((...args: any[]) => any) | undefined;
16
+ onConfirm?: ((...args: any[]) => any) | undefined;
17
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
18
+ }>, {
19
+ showCancel: boolean;
20
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
21
+ export default _default;
package/src/index.css CHANGED
@@ -2,6 +2,9 @@
2
2
  @layer properties {
3
3
  @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {
4
4
  *, :before, :after, ::backdrop {
5
+ --tw-translate-x: 0;
6
+ --tw-translate-y: 0;
7
+ --tw-translate-z: 0;
5
8
  --tw-rotate-x: initial;
6
9
  --tw-rotate-y: initial;
7
10
  --tw-rotate-z: initial;
@@ -10,6 +13,7 @@
10
13
  --tw-border-style: solid;
11
14
  --tw-leading: initial;
12
15
  --tw-font-weight: initial;
16
+ --tw-outline-style: solid;
13
17
  --tw-blur: initial;
14
18
  --tw-brightness: initial;
15
19
  --tw-contrast: initial;
@@ -23,7 +27,6 @@
23
27
  --tw-drop-shadow-color: initial;
24
28
  --tw-drop-shadow-alpha: 100%;
25
29
  --tw-drop-shadow-size: initial;
26
- --tw-outline-style: solid;
27
30
  }
28
31
  }
29
32
  }
@@ -65,6 +68,19 @@
65
68
  .btn:active {
66
69
  transform: scale(.7);
67
70
  }
71
+
72
+ .slide-fade-enter-active {
73
+ transition: all .3s ease-out;
74
+ }
75
+
76
+ .slide-fade-leave-active {
77
+ transition: all .8s cubic-bezier(1, .5, .8, 1);
78
+ }
79
+
80
+ .slide-fade-enter-from, .slide-fade-leave-to {
81
+ opacity: 0;
82
+ transform: translateX(20px);
83
+ }
68
84
  }
69
85
 
70
86
  @layer components, utilities;
@@ -85,6 +101,10 @@
85
101
  position: absolute;
86
102
  }
87
103
 
104
+ .fixed {
105
+ position: fixed;
106
+ }
107
+
88
108
  .relative {
89
109
  position: relative;
90
110
  }
@@ -101,6 +121,14 @@
101
121
  top: 10px;
102
122
  }
103
123
 
124
+ .top-\[50\%\] {
125
+ top: 50%;
126
+ }
127
+
128
+ .right-\[0px\] {
129
+ right: 0;
130
+ }
131
+
104
132
  .right-\[10px\] {
105
133
  right: 10px;
106
134
  }
@@ -129,6 +157,10 @@
129
157
  left: 20px;
130
158
  }
131
159
 
160
+ .z-20 {
161
+ z-index: 20;
162
+ }
163
+
132
164
  .z-100 {
133
165
  z-index: 100;
134
166
  }
@@ -137,10 +169,38 @@
137
169
  z-index: 11;
138
170
  }
139
171
 
172
+ .z-\[18\] {
173
+ z-index: 18;
174
+ }
175
+
140
176
  .z-\[20\] {
141
177
  z-index: 20;
142
178
  }
143
179
 
180
+ .col-start-1 {
181
+ grid-column-start: 1;
182
+ }
183
+
184
+ .col-start-4 {
185
+ grid-column-start: 4;
186
+ }
187
+
188
+ .col-end-3 {
189
+ grid-column-end: 3;
190
+ }
191
+
192
+ .col-end-4 {
193
+ grid-column-end: 4;
194
+ }
195
+
196
+ .row-start-3 {
197
+ grid-row-start: 3;
198
+ }
199
+
200
+ .row-end-5 {
201
+ grid-row-end: 5;
202
+ }
203
+
144
204
  .container {
145
205
  width: 100%;
146
206
  }
@@ -262,6 +322,11 @@
262
322
  height: 30px;
263
323
  }
264
324
 
325
+ .size-\[40px\] {
326
+ width: 40px;
327
+ height: 40px;
328
+ }
329
+
265
330
  .h-\[20px\] {
266
331
  height: 20px;
267
332
  }
@@ -326,6 +391,11 @@
326
391
  flex-shrink: 1;
327
392
  }
328
393
 
394
+ .translate-y-\[-50\%\] {
395
+ --tw-translate-y: -50%;
396
+ translate: var(--tw-translate-x) var(--tw-translate-y);
397
+ }
398
+
329
399
  .rotate-90 {
330
400
  rotate: 90deg;
331
401
  }
@@ -346,6 +416,14 @@
346
416
  resize: both;
347
417
  }
348
418
 
419
+ .grid-cols-4 {
420
+ grid-template-columns: repeat(4, minmax(0, 1fr));
421
+ }
422
+
423
+ .grid-rows-4 {
424
+ grid-template-rows: repeat(4, minmax(0, 1fr));
425
+ }
426
+
349
427
  .flex-col {
350
428
  flex-direction: column;
351
429
  }
@@ -362,6 +440,10 @@
362
440
  align-items: center;
363
441
  }
364
442
 
443
+ .items-end {
444
+ align-items: flex-end;
445
+ }
446
+
365
447
  .justify-between {
366
448
  justify-content: space-between;
367
449
  }
@@ -374,6 +456,10 @@
374
456
  justify-content: flex-end;
375
457
  }
376
458
 
459
+ .gap-\[0px\] {
460
+ gap: 0;
461
+ }
462
+
377
463
  .gap-\[5px\] {
378
464
  gap: 5px;
379
465
  }
@@ -382,6 +468,14 @@
382
468
  gap: 10px;
383
469
  }
384
470
 
471
+ .gap-\[16px\] {
472
+ gap: 16px;
473
+ }
474
+
475
+ .gap-\[20px\] {
476
+ gap: 20px;
477
+ }
478
+
385
479
  .overflow-hidden {
386
480
  overflow: hidden;
387
481
  }
@@ -442,19 +536,35 @@
442
536
  border-top-width: 1px;
443
537
  }
444
538
 
445
- .border-b-1 {
539
+ .border-b, .border-b-1 {
446
540
  border-bottom-style: var(--tw-border-style);
447
541
  border-bottom-width: 1px;
448
542
  }
449
543
 
544
+ .\!border-\[var\(--primary-color\)\] {
545
+ border-color: var(--primary-color) !important;
546
+ }
547
+
548
+ .border-\[\#00ff0a\] {
549
+ border-color: #00ff0a;
550
+ }
551
+
450
552
  .border-\[\#ccc\] {
451
553
  border-color: #ccc;
452
554
  }
453
555
 
556
+ .border-\[\#fff\] {
557
+ border-color: #fff;
558
+ }
559
+
454
560
  .border-t-\[\#eee\] {
455
561
  border-top-color: #eee;
456
562
  }
457
563
 
564
+ .border-b-\[\#ccc\] {
565
+ border-bottom-color: #ccc;
566
+ }
567
+
458
568
  .border-b-\[\#eee\] {
459
569
  border-bottom-color: #eee;
460
570
  }
@@ -463,6 +573,10 @@
463
573
  background-color: var(--primary-color) !important;
464
574
  }
465
575
 
576
+ .bg-\[\#717171\] {
577
+ background-color: #717171;
578
+ }
579
+
466
580
  .bg-\[\#ccc\] {
467
581
  background-color: #ccc;
468
582
  }
@@ -479,6 +593,10 @@
479
593
  background-color: var(--el-color-primary);
480
594
  }
481
595
 
596
+ .bg-\[var\(--primary-color\)\] {
597
+ background-color: var(--primary-color);
598
+ }
599
+
482
600
  .bg-\[whitesmoke\] {
483
601
  background-color: #f5f5f5;
484
602
  }
@@ -497,7 +615,15 @@
497
615
  }
498
616
  }
499
617
 
500
- .p-\[0_5px\], .p-\[0px_5px\] {
618
+ .p-\[0_5px\] {
619
+ padding: 0 5px;
620
+ }
621
+
622
+ .p-\[0px\] {
623
+ padding: 0;
624
+ }
625
+
626
+ .p-\[0px_5px\] {
501
627
  padding: 0 5px;
502
628
  }
503
629
 
@@ -513,10 +639,18 @@
513
639
  padding: 5px;
514
640
  }
515
641
 
642
+ .p-\[5px_40px\] {
643
+ padding: 5px 40px;
644
+ }
645
+
516
646
  .p-\[10px\] {
517
647
  padding: 10px;
518
648
  }
519
649
 
650
+ .p-\[40px\] {
651
+ padding: 40px;
652
+ }
653
+
520
654
  .pt-\[5px\] {
521
655
  padding-top: 5px;
522
656
  }
@@ -537,6 +671,15 @@
537
671
  font-size: 14px;
538
672
  }
539
673
 
674
+ .text-\[16px\] {
675
+ font-size: 16px;
676
+ }
677
+
678
+ .\!leading-\[88px\] {
679
+ --tw-leading: 88px !important;
680
+ line-height: 88px !important;
681
+ }
682
+
540
683
  .leading-\[1\.4em\] {
541
684
  --tw-leading: 1.4em;
542
685
  line-height: 1.4em;
@@ -547,6 +690,16 @@
547
690
  line-height: 20px;
548
691
  }
549
692
 
693
+ .leading-\[30px\] {
694
+ --tw-leading: 30px;
695
+ line-height: 30px;
696
+ }
697
+
698
+ .leading-\[40px\] {
699
+ --tw-leading: 40px;
700
+ line-height: 40px;
701
+ }
702
+
550
703
  .font-bold {
551
704
  --tw-font-weight: var(--font-weight-bold);
552
705
  font-weight: var(--font-weight-bold);
@@ -580,6 +733,10 @@
580
733
  color: #fff;
581
734
  }
582
735
 
736
+ .text-\[red\] {
737
+ color: red;
738
+ }
739
+
583
740
  .text-white {
584
741
  color: var(--color-white);
585
742
  }
@@ -588,6 +745,11 @@
588
745
  opacity: .3;
589
746
  }
590
747
 
748
+ .outline-0 {
749
+ outline-style: var(--tw-outline-style);
750
+ outline-width: 0;
751
+ }
752
+
591
753
  .blur {
592
754
  --tw-blur: blur(8px);
593
755
  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, );
@@ -615,6 +777,12 @@
615
777
  transition-duration: var(--tw-duration, var(--default-transition-duration));
616
778
  }
617
779
 
780
+ .transition-colors {
781
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
782
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
783
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
784
+ }
785
+
618
786
  .select-none {
619
787
  -webkit-user-select: none;
620
788
  user-select: none;
@@ -643,6 +811,29 @@
643
811
  scale: .8;
644
812
  }
645
813
 
814
+ .active\:grayscale-75:active {
815
+ --tw-grayscale: grayscale(75%);
816
+ 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, );
817
+ }
818
+
819
+ @property --tw-translate-x {
820
+ syntax: "*";
821
+ inherits: false;
822
+ initial-value: 0;
823
+ }
824
+
825
+ @property --tw-translate-y {
826
+ syntax: "*";
827
+ inherits: false;
828
+ initial-value: 0;
829
+ }
830
+
831
+ @property --tw-translate-z {
832
+ syntax: "*";
833
+ inherits: false;
834
+ initial-value: 0;
835
+ }
836
+
646
837
  @property --tw-rotate-x {
647
838
  syntax: "*";
648
839
  inherits: false
@@ -684,6 +875,12 @@
684
875
  inherits: false
685
876
  }
686
877
 
878
+ @property --tw-outline-style {
879
+ syntax: "*";
880
+ inherits: false;
881
+ initial-value: solid;
882
+ }
883
+
687
884
  @property --tw-blur {
688
885
  syntax: "*";
689
886
  inherits: false
@@ -750,16 +947,46 @@
750
947
  inherits: false
751
948
  }
752
949
 
753
- @property --tw-outline-style {
754
- syntax: "*";
755
- inherits: false;
756
- initial-value: solid;
757
- }
758
-
759
950
  * {
760
951
  -webkit-tap-highlight-color: transparent;
761
952
  }
762
953
 
954
+ ul li[data-v-a77398cf]{
955
+ background: white;
956
+ line-height: 44px;
957
+ text-align: center;
958
+ border-radius: 6px;
959
+ font-size: 20px;
960
+ }
961
+ ul li[data-v-a77398cf]:active {
962
+ background: #eee;
963
+ }
964
+ .confirm[data-v-a77398cf] {
965
+ background: var(--primary-color);
966
+ color: #fff;
967
+ }
968
+ .confirm[data-v-a77398cf]:active {
969
+ filter: grayscale(0.4);
970
+ background: var(--primary-color);
971
+ }
972
+ .flashing-ani[data-v-a77398cf] {
973
+ animation: flashing-a77398cf 1s linear infinite;
974
+ }
975
+ @keyframes flashing-a77398cf {
976
+ 0% {
977
+ opacity: 1;
978
+ }
979
+ 49% {
980
+ opacity: 1;
981
+ }
982
+ 50% {
983
+ opacity: 0;
984
+ }
985
+ 100% {
986
+ opacity: 0;
987
+ }
988
+ }
989
+
763
990
  [data-v-293a173d] {
764
991
  font-family: 微软雅黑;
765
992
  }
@@ -767,14 +994,20 @@
767
994
  color: #a7a7a7
768
995
  }
769
996
 
770
- [data-v-ebbd8d3b] {
997
+ [data-v-461b52cf] {
771
998
  font-family: 宋体;
772
999
  }
773
1000
 
774
- .editorTool .el-checkbox__label {
1001
+ .editorToolContent .el-checkbox__label {
775
1002
  font-size: 10px !important;
776
1003
  font-family: 宋体;
777
1004
  }
778
- .editorTool .el-button+.el-button {
1005
+ .editorToolContent .el-button+.el-button {
779
1006
  margin-left: 0;
1007
+ }
1008
+ .editorToolContent .el-checkbox {
1009
+ margin-right: 0px;
1010
+ }
1011
+ .editorToolContent .el-checkbox__label{
1012
+ padding-left: 2px;
780
1013
  }
package/src/index.js CHANGED
@@ -1,15 +1,15 @@
1
1
  import "three";
2
- import { D, p, n, k, q, i, l, m, j, o } from "./build.js";
2
+ import { D, q, o, l, s, j, m, n, k, p } from "./build.js";
3
3
  import "clipper-lib";
4
4
  export {
5
5
  D as Dxf,
6
- p as DxfSystem,
7
- n as ModelDataPlugin,
8
- k as buildJson,
9
- q as components,
10
- i as createEditor,
11
- l as getFileAll,
12
- m as getGlobalDxfSystem,
13
- j as getModels,
14
- o as utils
6
+ q as DxfSystem,
7
+ o as ModelDataPlugin,
8
+ l as buildJson,
9
+ s as components,
10
+ j as createEditor,
11
+ m as getFileAll,
12
+ n as getGlobalDxfSystem,
13
+ k as getModels,
14
+ p as utils
15
15
  };