abstract-3d 2.6.19 → 2.7.0

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 (142) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/lib/abstract-3d.d.ts +13 -1
  3. package/lib/abstract-3d.d.ts.map +1 -1
  4. package/lib/abstract-3d.js +77 -0
  5. package/lib/abstract-3d.js.map +1 -1
  6. package/lib/renderers/dxf/dxf-encoding/dxf-color.d.ts +5 -0
  7. package/lib/renderers/dxf/dxf-encoding/dxf-color.d.ts.map +1 -0
  8. package/lib/renderers/dxf/{color.js → dxf-encoding/dxf-color.js} +24 -19
  9. package/lib/renderers/dxf/dxf-encoding/dxf-color.js.map +1 -0
  10. package/lib/renderers/dxf/dxf-encoding/dxf-common.d.ts +13 -0
  11. package/lib/renderers/dxf/dxf-encoding/dxf-common.d.ts.map +1 -0
  12. package/lib/renderers/dxf/dxf-encoding/dxf-common.js +23 -0
  13. package/lib/renderers/dxf/dxf-encoding/dxf-common.js.map +1 -0
  14. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.d.ts +6 -0
  15. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.d.ts.map +1 -0
  16. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.js +50 -0
  17. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.js.map +1 -0
  18. package/lib/renderers/dxf/dxf-encoding/dxf-footer.d.ts +2 -0
  19. package/lib/renderers/dxf/dxf-encoding/dxf-footer.d.ts.map +1 -0
  20. package/lib/renderers/dxf/{dxf-encoding.js → dxf-encoding/dxf-footer.js} +3 -1819
  21. package/lib/renderers/dxf/{dxf-encoding.js.map → dxf-encoding/dxf-footer.js.map} +1 -1
  22. package/lib/renderers/dxf/dxf-encoding/dxf-header.d.ts +3 -0
  23. package/lib/renderers/dxf/dxf-encoding/dxf-header.d.ts.map +1 -0
  24. package/lib/renderers/dxf/dxf-encoding/dxf-header.js +1653 -0
  25. package/lib/renderers/dxf/dxf-encoding/dxf-header.js.map +1 -0
  26. package/lib/renderers/dxf/dxf-encoding/dxf-line.d.ts +5 -0
  27. package/lib/renderers/dxf/dxf-encoding/dxf-line.d.ts.map +1 -0
  28. package/lib/renderers/dxf/dxf-encoding/dxf-line.js +29 -0
  29. package/lib/renderers/dxf/dxf-encoding/dxf-line.js.map +1 -0
  30. package/lib/renderers/dxf/dxf-encoding/dxf-polyline.d.ts +5 -0
  31. package/lib/renderers/dxf/dxf-encoding/dxf-polyline.d.ts.map +1 -0
  32. package/lib/renderers/dxf/dxf-encoding/dxf-polyline.js +73 -0
  33. package/lib/renderers/dxf/dxf-encoding/dxf-polyline.js.map +1 -0
  34. package/lib/renderers/dxf/dxf-encoding/dxf-quad.d.ts +5 -0
  35. package/lib/renderers/dxf/dxf-encoding/dxf-quad.d.ts.map +1 -0
  36. package/lib/renderers/dxf/dxf-encoding/dxf-quad.js +39 -0
  37. package/lib/renderers/dxf/dxf-encoding/dxf-quad.js.map +1 -0
  38. package/lib/renderers/dxf/dxf-encoding/dxf-text.d.ts +19 -0
  39. package/lib/renderers/dxf/dxf-encoding/dxf-text.d.ts.map +1 -0
  40. package/lib/renderers/dxf/dxf-encoding/dxf-text.js +70 -0
  41. package/lib/renderers/dxf/dxf-encoding/dxf-text.js.map +1 -0
  42. package/lib/renderers/dxf/dxf-encoding/dxf-triangle.d.ts +5 -0
  43. package/lib/renderers/dxf/dxf-encoding/dxf-triangle.d.ts.map +1 -0
  44. package/lib/renderers/dxf/dxf-encoding/dxf-triangle.js +3 -0
  45. package/lib/renderers/dxf/dxf-encoding/dxf-triangle.js.map +1 -0
  46. package/lib/renderers/dxf/dxf-geometries/dxf-box.d.ts +2 -2
  47. package/lib/renderers/dxf/dxf-geometries/dxf-box.d.ts.map +1 -1
  48. package/lib/renderers/dxf/dxf-geometries/dxf-box.js +8 -8
  49. package/lib/renderers/dxf/dxf-geometries/dxf-box.js.map +1 -1
  50. package/lib/renderers/dxf/dxf-geometries/dxf-cone.d.ts +2 -2
  51. package/lib/renderers/dxf/dxf-geometries/dxf-cone.d.ts.map +1 -1
  52. package/lib/renderers/dxf/dxf-geometries/dxf-cone.js +4 -4
  53. package/lib/renderers/dxf/dxf-geometries/dxf-cone.js.map +1 -1
  54. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.d.ts +2 -2
  55. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.d.ts.map +1 -1
  56. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.js +6 -5
  57. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.js.map +1 -1
  58. package/lib/renderers/dxf/dxf-geometries/dxf-dimension.d.ts +4 -0
  59. package/lib/renderers/dxf/dxf-geometries/dxf-dimension.d.ts.map +1 -0
  60. package/lib/renderers/dxf/dxf-geometries/dxf-dimension.js +13 -0
  61. package/lib/renderers/dxf/dxf-geometries/dxf-dimension.js.map +1 -0
  62. package/lib/renderers/dxf/dxf-geometries/dxf-image.d.ts +2 -2
  63. package/lib/renderers/dxf/dxf-geometries/dxf-image.d.ts.map +1 -1
  64. package/lib/renderers/dxf/dxf-geometries/dxf-image.js +8 -7
  65. package/lib/renderers/dxf/dxf-geometries/dxf-image.js.map +1 -1
  66. package/lib/renderers/dxf/dxf-geometries/dxf-plane.d.ts +2 -2
  67. package/lib/renderers/dxf/dxf-geometries/dxf-plane.d.ts.map +1 -1
  68. package/lib/renderers/dxf/dxf-geometries/dxf-plane.js +3 -3
  69. package/lib/renderers/dxf/dxf-geometries/dxf-plane.js.map +1 -1
  70. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.d.ts +2 -2
  71. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.d.ts.map +1 -1
  72. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.js +7 -6
  73. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.js.map +1 -1
  74. package/lib/renderers/dxf/dxf-geometries/dxf-shape.d.ts +2 -2
  75. package/lib/renderers/dxf/dxf-geometries/dxf-shape.d.ts.map +1 -1
  76. package/lib/renderers/dxf/dxf-geometries/dxf-shape.js +6 -5
  77. package/lib/renderers/dxf/dxf-geometries/dxf-shape.js.map +1 -1
  78. package/lib/renderers/dxf/dxf-geometries/dxf-text.d.ts +4 -0
  79. package/lib/renderers/dxf/dxf-geometries/dxf-text.d.ts.map +1 -0
  80. package/lib/renderers/dxf/dxf-geometries/dxf-text.js +8 -0
  81. package/lib/renderers/dxf/dxf-geometries/dxf-text.js.map +1 -0
  82. package/lib/renderers/dxf/dxf.d.ts +4 -3
  83. package/lib/renderers/dxf/dxf.d.ts.map +1 -1
  84. package/lib/renderers/dxf/dxf.js +36 -22
  85. package/lib/renderers/dxf/dxf.js.map +1 -1
  86. package/lib/renderers/dxf/index.d.ts +1 -1
  87. package/lib/renderers/dxf/index.d.ts.map +1 -1
  88. package/lib/renderers/react/react-dimension.d.ts +4 -3
  89. package/lib/renderers/react/react-dimension.d.ts.map +1 -1
  90. package/lib/renderers/react/react-dimension.js +4 -3
  91. package/lib/renderers/react/react-dimension.js.map +1 -1
  92. package/lib/renderers/step/step-encoding.d.ts +2 -0
  93. package/lib/renderers/step/step-encoding.d.ts.map +1 -1
  94. package/lib/renderers/step/step-encoding.js +16 -3
  95. package/lib/renderers/step/step-encoding.js.map +1 -1
  96. package/lib/renderers/step/step-geometries/step-box.d.ts.map +1 -1
  97. package/lib/renderers/step/step-geometries/step-box.js +3 -0
  98. package/lib/renderers/step/step-geometries/step-box.js.map +1 -1
  99. package/lib/renderers/step/step-geometries/step-cylinder.d.ts.map +1 -1
  100. package/lib/renderers/step/step-geometries/step-cylinder.js +67 -21
  101. package/lib/renderers/step/step-geometries/step-cylinder.js.map +1 -1
  102. package/lib/renderers/svg/svg.d.ts.map +1 -1
  103. package/lib/renderers/svg/svg.js +6 -27
  104. package/lib/renderers/svg/svg.js.map +1 -1
  105. package/lib/utils.d.ts +3 -0
  106. package/lib/utils.d.ts.map +1 -1
  107. package/lib/utils.js +30 -0
  108. package/lib/utils.js.map +1 -1
  109. package/package.json +2 -2
  110. package/src/abstract-3d.ts +127 -7
  111. package/src/renderers/dxf/{color.ts → dxf-encoding/dxf-color.ts} +27 -20
  112. package/src/renderers/dxf/dxf-encoding/dxf-common.ts +31 -0
  113. package/src/renderers/dxf/dxf-encoding/dxf-dimension.ts +60 -0
  114. package/src/renderers/dxf/{dxf-encoding.ts → dxf-encoding/dxf-footer.ts} +4 -1870
  115. package/src/renderers/dxf/dxf-encoding/dxf-header.ts +1657 -0
  116. package/src/renderers/dxf/dxf-encoding/dxf-line.ts +35 -0
  117. package/src/renderers/dxf/dxf-encoding/dxf-polyline.ts +83 -0
  118. package/src/renderers/dxf/dxf-encoding/dxf-quad.ts +47 -0
  119. package/src/renderers/dxf/dxf-encoding/dxf-text.ts +71 -0
  120. package/src/renderers/dxf/dxf-encoding/dxf-triangle.ts +12 -0
  121. package/src/renderers/dxf/dxf-geometries/dxf-box.ts +18 -8
  122. package/src/renderers/dxf/dxf-geometries/dxf-cone.ts +13 -4
  123. package/src/renderers/dxf/dxf-geometries/dxf-cylinder.ts +13 -11
  124. package/src/renderers/dxf/dxf-geometries/dxf-dimension.ts +14 -0
  125. package/src/renderers/dxf/dxf-geometries/dxf-image.ts +11 -9
  126. package/src/renderers/dxf/dxf-geometries/dxf-plane.ts +7 -6
  127. package/src/renderers/dxf/dxf-geometries/dxf-polygon.ts +8 -6
  128. package/src/renderers/dxf/dxf-geometries/dxf-shape.ts +8 -6
  129. package/src/renderers/dxf/dxf-geometries/dxf-text.ts +9 -0
  130. package/src/renderers/dxf/dxf.ts +57 -39
  131. package/src/renderers/dxf/index.ts +1 -1
  132. package/src/renderers/react/react-dimension.tsx +8 -4
  133. package/src/renderers/step/step-encoding.ts +24 -5
  134. package/src/renderers/step/step-geometries/step-box.ts +6 -0
  135. package/src/renderers/step/step-geometries/step-cylinder.ts +303 -101
  136. package/src/renderers/svg/svg.ts +6 -34
  137. package/src/utils.ts +39 -0
  138. package/lib/renderers/dxf/color.d.ts +0 -7
  139. package/lib/renderers/dxf/color.d.ts.map +0 -1
  140. package/lib/renderers/dxf/color.js.map +0 -1
  141. package/lib/renderers/dxf/dxf-encoding.d.ts +0 -17
  142. package/lib/renderers/dxf/dxf-encoding.d.ts.map +0 -1
@@ -20,6 +20,7 @@ import {
20
20
  CIRCLE,
21
21
  CLOSED_SHELL,
22
22
  COLOUR_RGB,
23
+ CONICAL_SURFACE,
23
24
  CURVE_STYLE,
24
25
  CYLINDRICAL_SURFACE,
25
26
  DIRECTION,
@@ -51,6 +52,7 @@ import {
51
52
  } from "../step-encoding.js";
52
53
 
53
54
  const SMALLEST_RADIUS = 1e-4;
55
+ const GEOMETRY_EPSILON = 1e-12;
54
56
 
55
57
  export function stepCylinder(
56
58
  c: Cylinder,
@@ -60,154 +62,354 @@ export function stepCylinder(
60
62
  m: MutableStep,
61
63
  rSmall?: number
62
64
  ): void {
63
- const r = c.radius;
64
- const r2 = Math.max(rSmall ?? c.radius, SMALLEST_RADIUS);
65
65
  const h = c.length;
66
+
67
+ if (h <= GEOMETRY_EPSILON) {
68
+ return;
69
+ }
70
+
71
+ const bottomRadius = Math.max(c.radius, SMALLEST_RADIUS);
72
+ const requestedTopRadius = Math.max(
73
+ rSmall ?? c.radius,
74
+ SMALLEST_RADIUS
75
+ );
76
+
77
+ const radiusTolerance =
78
+ GEOMETRY_EPSILON *
79
+ Math.max(1, bottomRadius, requestedTopRadius);
80
+
81
+ const isCylinder =
82
+ Math.abs(requestedTopRadius - bottomRadius) <= radiusTolerance;
83
+
84
+ const topRadius = isCylinder
85
+ ? bottomRadius
86
+ : requestedTopRadius;
87
+
66
88
  const pos = vec3TransRot(c.pos, parentPos, parentRot);
67
- const rotation = vec3RotCombine(parentRot, c.rot ?? vec3Zero);
89
+ const rotation = vec3RotCombine(
90
+ parentRot,
91
+ c.rot ?? vec3Zero
92
+ );
93
+
94
+ const rot = (v: Vec3): Vec3 =>
95
+ vec3Rot(v, vec3Zero, rotation);
68
96
 
69
- const rot = (v: Vec3): Vec3 => vec3Rot(v, vec3Zero, rotation);
70
- const upNormal = rot(vec3(0, 1, 0));
71
- const downNormal = rot(vec3(0, -1, 0));
72
- const circleTop = rot(vec3(0, h / 2, 0));
73
- const circleBot = rot(vec3(0, -h / 2, 0));
74
- const v1 = rot(vec3(r2, h / 2, 0));
75
- const v2 = rot(vec3(r, -h / 2, 0));
97
+ const axis = rot(vec3(0, 1, 0));
98
+ const radial = rot(vec3(1, 0, 0));
99
+
100
+ const bottomCenter = vec3Add(
101
+ pos,
102
+ rot(vec3(0, -h / 2, 0))
103
+ );
104
+
105
+ const topCenter = vec3Add(
106
+ pos,
107
+ rot(vec3(0, h / 2, 0))
108
+ );
109
+
110
+ const bottomSeamPoint = vec3Add(
111
+ pos,
112
+ rot(vec3(bottomRadius, -h / 2, 0))
113
+ );
114
+
115
+ const topSeamPoint = vec3Add(
116
+ pos,
117
+ rot(vec3(topRadius, h / 2, 0))
118
+ );
119
+
120
+ const seamDelta = vec3(
121
+ topSeamPoint.x - bottomSeamPoint.x,
122
+ topSeamPoint.y - bottomSeamPoint.y,
123
+ topSeamPoint.z - bottomSeamPoint.z
124
+ );
125
+
126
+ const seamLength = Math.hypot(
127
+ seamDelta.x,
128
+ seamDelta.y,
129
+ seamDelta.z
130
+ );
131
+
132
+ if (seamLength <= GEOMETRY_EPSILON) {
133
+ return;
134
+ }
135
+
136
+ const seamDirection = vec3(
137
+ seamDelta.x / seamLength,
138
+ seamDelta.y / seamLength,
139
+ seamDelta.z / seamLength
140
+ );
76
141
 
77
142
  const applicationContext = APPLICATION_CONTEXT(m);
78
- APPLICATION_PROTOCOL_DEFINITION(applicationContext, m);
143
+ APPLICATION_PROTOCOL_DEFINITION(
144
+ applicationContext,
145
+ m
146
+ );
147
+
148
+ const axisDirection = DIRECTION(axis, m);
149
+ const radialDirection = DIRECTION(radial, m);
150
+
151
+ const bottomCenterPoint = CARTESIAN_POINT(
152
+ bottomCenter,
153
+ m
154
+ );
155
+
156
+ const topCenterPoint = CARTESIAN_POINT(
157
+ topCenter,
158
+ m
159
+ );
160
+
161
+ const bottomSeamCartesianPoint = CARTESIAN_POINT(
162
+ bottomSeamPoint,
163
+ m
164
+ );
165
+
166
+ const topSeamCartesianPoint = CARTESIAN_POINT(
167
+ topSeamPoint,
168
+ m
169
+ );
170
+
171
+ const bottomVertex = VERTEX_POINT(
172
+ bottomSeamCartesianPoint,
173
+ m
174
+ );
175
+
176
+ const topVertex = VERTEX_POINT(
177
+ topSeamCartesianPoint,
178
+ m
179
+ );
79
180
 
80
- const ecurve0 = EDGE_CURVE(
81
- VERTEX_POINT(CARTESIAN_POINT(vec3Add(pos, v2), m), m),
82
- VERTEX_POINT(CARTESIAN_POINT(vec3Add(pos, v1), m), m),
83
- LINE(CARTESIAN_POINT(vec3Add(pos, v2), m), VECTOR(DIRECTION(upNormal, m), m), m),
181
+ const bottomPlacement = AXIS2_PLACEMENT_3D(
182
+ bottomCenterPoint,
183
+ axisDirection,
184
+ radialDirection,
185
+ m
186
+ );
187
+
188
+ const topPlacement = AXIS2_PLACEMENT_3D(
189
+ topCenterPoint,
190
+ axisDirection,
191
+ radialDirection,
192
+ m
193
+ );
194
+
195
+ const seamEdge = EDGE_CURVE(
196
+ bottomVertex,
197
+ topVertex,
198
+ LINE(
199
+ bottomSeamCartesianPoint,
200
+ VECTOR(
201
+ DIRECTION(seamDirection, m),
202
+ m
203
+ ),
204
+ m
205
+ ),
84
206
  m,
85
207
  "T"
86
208
  );
87
209
 
88
- const ecurve1 = EDGE_CURVE(
89
- VERTEX_POINT(CARTESIAN_POINT(vec3Add(pos, v2), m), m),
90
- VERTEX_POINT(CARTESIAN_POINT(vec3Add(pos, v2), m), m),
210
+ const bottomCircleEdge = EDGE_CURVE(
211
+ bottomVertex,
212
+ bottomVertex,
91
213
  CIRCLE(
92
- AXIS2_PLACEMENT_3D(
93
- CARTESIAN_POINT(vec3Add(pos, circleBot), m),
94
- DIRECTION(upNormal, m),
95
- DIRECTION(vec3(0, 1, 0), m),
96
- m
97
- ),
98
- r,
214
+ bottomPlacement,
215
+ bottomRadius,
99
216
  m
100
217
  ),
101
218
  m,
102
219
  "T"
103
220
  );
104
221
 
105
- const ecurve2 = EDGE_CURVE(
106
- VERTEX_POINT(CARTESIAN_POINT(vec3Add(pos, v1), m), m),
107
- VERTEX_POINT(CARTESIAN_POINT(vec3Add(pos, v1), m), m),
222
+ const topCircleEdge = EDGE_CURVE(
223
+ topVertex,
224
+ topVertex,
108
225
  CIRCLE(
109
- AXIS2_PLACEMENT_3D(
110
- CARTESIAN_POINT(vec3Add(pos, circleTop), m),
111
- DIRECTION(upNormal, m),
112
- DIRECTION(vec3(0, 1, 0), m),
226
+ topPlacement,
227
+ topRadius,
228
+ m
229
+ ),
230
+ m,
231
+ "T"
232
+ );
233
+
234
+ const growsTowardTop =
235
+ topRadius >= bottomRadius;
236
+
237
+ const coneAxis = growsTowardTop
238
+ ? axis
239
+ : vec3(-axis.x, -axis.y, -axis.z);
240
+
241
+ const coneLocation = growsTowardTop
242
+ ? bottomCenterPoint
243
+ : topCenterPoint;
244
+
245
+ const coneStartRadius = Math.min(
246
+ bottomRadius,
247
+ topRadius
248
+ );
249
+
250
+ const semiAngle = Math.atan2(
251
+ Math.abs(topRadius - bottomRadius),
252
+ h
253
+ );
254
+
255
+ const conePlacement = AXIS2_PLACEMENT_3D(
256
+ coneLocation,
257
+ DIRECTION(coneAxis, m),
258
+ radialDirection,
259
+ m
260
+ );
261
+
262
+ const sideSurface = isCylinder
263
+ ? CYLINDRICAL_SURFACE(
264
+ bottomPlacement,
265
+ bottomRadius,
266
+ m
267
+ )
268
+ : CONICAL_SURFACE(
269
+ conePlacement,
270
+ coneStartRadius,
271
+ semiAngle,
272
+ m
273
+ );
274
+
275
+ const sideFace = ADVANCED_FACE(
276
+ FACE_BOUND(
277
+ EDGE_LOOP(
278
+ [
279
+ ORIENTED_EDGE(seamEdge, m, "T"),
280
+ ORIENTED_EDGE(topCircleEdge, m, "T"),
281
+ ORIENTED_EDGE(seamEdge, m, "F"),
282
+ ORIENTED_EDGE(bottomCircleEdge, m, "F"),
283
+ ],
113
284
  m
114
285
  ),
115
- r2,
286
+ "F",
116
287
  m
117
288
  ),
118
- m
289
+ sideSurface,
290
+ m,
291
+ "T"
119
292
  );
120
293
 
121
- const msb = MANIFOLD_SOLID_BREP(
122
- CLOSED_SHELL(
123
- [
124
- ADVANCED_FACE(
125
- FACE_BOUND(
126
- EDGE_LOOP(
127
- [
128
- ORIENTED_EDGE(ecurve0, m, "T"),
129
- ORIENTED_EDGE(ecurve2, m),
130
- ORIENTED_EDGE(ecurve0, m, "F"),
131
- ORIENTED_EDGE(ecurve1, m, "F"),
132
- ],
133
- m
134
- ),
135
- "F",
136
- m
294
+ const bottomFace = ADVANCED_FACE(
295
+ FACE_BOUND(
296
+ EDGE_LOOP(
297
+ [
298
+ ORIENTED_EDGE(
299
+ bottomCircleEdge,
300
+ m,
301
+ "F"
137
302
  ),
138
- CYLINDRICAL_SURFACE(
139
- AXIS2_PLACEMENT_3D(
140
- CARTESIAN_POINT(vec3(pos.x + circleTop.x, pos.y + circleTop.y, pos.z + circleTop.z), m),
141
- DIRECTION(downNormal, m),
142
- DIRECTION(vec3(0, -1, 0), m),
143
- m
144
- ),
145
- r,
146
- m
147
- ),
148
- m,
149
- "T"
150
- ),
303
+ ],
304
+ m
305
+ ),
306
+ "T",
307
+ m
308
+ ),
309
+ PLANE(bottomPlacement, m),
310
+ m,
311
+ "F"
312
+ );
151
313
 
152
- ADVANCED_FACE(
153
- FACE_BOUND(EDGE_LOOP([ORIENTED_EDGE(ecurve1, m, "F")], m), "T", m),
154
- PLANE(
155
- AXIS2_PLACEMENT_3D(
156
- CARTESIAN_POINT(vec3Add(pos, circleBot), m),
157
- DIRECTION(upNormal, m),
158
- DIRECTION(vec3(0, 1, 0), m),
159
- m
160
- ),
161
- m
314
+ const topFace = ADVANCED_FACE(
315
+ FACE_BOUND(
316
+ EDGE_LOOP(
317
+ [
318
+ ORIENTED_EDGE(
319
+ topCircleEdge,
320
+ m,
321
+ "F"
162
322
  ),
163
- m,
164
- "F"
165
- ),
323
+ ],
324
+ m
325
+ ),
326
+ "F",
327
+ m
328
+ ),
329
+ PLANE(topPlacement, m),
330
+ m,
331
+ "T"
332
+ );
166
333
 
167
- ADVANCED_FACE(
168
- FACE_BOUND(EDGE_LOOP([ORIENTED_EDGE(ecurve2, m, "F")], m), "F", m),
169
- PLANE(
170
- AXIS2_PLACEMENT_3D(
171
- CARTESIAN_POINT(vec3Add(pos, circleTop), m),
172
- DIRECTION(upNormal, m),
173
- DIRECTION(vec3(0, 1, 0), m),
174
- m
175
- ),
176
- m
177
- ),
178
- m,
179
- "T"
180
- ),
334
+ const msb = MANIFOLD_SOLID_BREP(
335
+ CLOSED_SHELL(
336
+ [
337
+ sideFace,
338
+ bottomFace,
339
+ topFace,
181
340
  ],
182
341
  m
183
342
  ),
184
343
  m
185
344
  );
186
345
 
187
- const absp = ADVANCED_BREP_SHAPE_REPRESENTATION(
188
- AXIS2_PLACEMENT_3D(CARTESIAN_POINT(vec3Zero, m), DIRECTION(vec3(0, 0, 1), m), DIRECTION(vec3(1, 0, 0), m), m),
189
- msb,
190
- m.geoContext3d,
346
+ const absp =
347
+ ADVANCED_BREP_SHAPE_REPRESENTATION(
348
+ AXIS2_PLACEMENT_3D(
349
+ CARTESIAN_POINT(vec3Zero, m),
350
+ DIRECTION(vec3(0, 0, 1), m),
351
+ DIRECTION(vec3(1, 0, 0), m),
352
+ m
353
+ ),
354
+ msb,
355
+ m.geoContext3d,
356
+ m
357
+ );
358
+
359
+ const prod = PRODUCT(
360
+ PRODUCT_CONTEXT(applicationContext, m),
361
+ isCylinder ? "Cylinder" : "Cone",
191
362
  m
192
363
  );
193
364
 
194
- const prod = PRODUCT(PRODUCT_CONTEXT(applicationContext, m), "Cylinder", m);
195
-
196
365
  SHAPE_DEFINITION_REPRESENTATION(
197
366
  PRODUCT_DEFINITION_SHAPE(
198
- PRODUCT_DEFINITION(PRODUCT_DEFINITION_FORMATION(prod, m), PRODUCT_DEFINITION_CONTEXT(applicationContext, m), m),
367
+ PRODUCT_DEFINITION(
368
+ PRODUCT_DEFINITION_FORMATION(
369
+ prod,
370
+ m
371
+ ),
372
+ PRODUCT_DEFINITION_CONTEXT(
373
+ applicationContext,
374
+ m
375
+ ),
376
+ m
377
+ ),
199
378
  m
200
379
  ),
201
380
  absp,
202
381
  m
203
382
  );
204
383
 
205
- const color = COLOUR_RGB(parseRgb(mat.normal), m);
384
+ const color = COLOUR_RGB(
385
+ parseRgb(mat.normal),
386
+ m
387
+ );
388
+
206
389
  MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION(
207
390
  STYLED_ITEM(
208
391
  PRESENTATION_STYLE_ASSIGNMENT(
209
- SURFACE_STYLE_USAGE(SURFACE_SIDE_STYLE(SURFACE_STYLE_FILL_AREA(FILL_AREA_STYLE_COLOUR(color, m), m), m), m),
210
- CURVE_STYLE(DRAUGHTING_PRE_DEFINED_CURVE_FONT("continuous", m), color, m),
392
+ SURFACE_STYLE_USAGE(
393
+ SURFACE_SIDE_STYLE(
394
+ SURFACE_STYLE_FILL_AREA(
395
+ FILL_AREA_STYLE_COLOUR(
396
+ color,
397
+ m
398
+ ),
399
+ m
400
+ ),
401
+ m
402
+ ),
403
+ m
404
+ ),
405
+ CURVE_STYLE(
406
+ DRAUGHTING_PRE_DEFINED_CURVE_FONT(
407
+ "continuous",
408
+ m
409
+ ),
410
+ color,
411
+ m
412
+ ),
211
413
  m
212
414
  ),
213
415
  msb,
@@ -216,4 +418,4 @@ export function stepCylinder(
216
418
  m.geoContext3d,
217
419
  m
218
420
  );
219
- }
421
+ }
@@ -23,6 +23,7 @@ import {
23
23
  vec2Add,
24
24
  View,
25
25
  vec3RotInverse,
26
+ dimensionConvertToTypeMesh,
26
27
  } from "../../abstract-3d.js";
27
28
  import { SvgOptions, zOrderElement } from "./svg-geometries/shared.js";
28
29
  import { box } from "./svg-geometries/svg-box.js";
@@ -33,7 +34,7 @@ import { shape } from "./svg-geometries/svg-shape.js";
33
34
  import { polygon } from "./svg-geometries/svg-polygon.js";
34
35
  import { text } from "./svg-geometries/svg-text.js";
35
36
  import { cone } from "./svg-geometries/svg-cone.js";
36
- import { Optional } from "../../utils.js";
37
+ import { calculateVisibleViews, isViewVisible, Optional } from "../../utils.js";
37
38
  import { svg } from "./svg-encoding.js";
38
39
  import { image } from "./svg-geometries/svg-image.js";
39
40
 
@@ -113,40 +114,11 @@ function renderInternal(
113
114
  }
114
115
  const dimOpts: SvgOptions = { ...opts, only_stroke: false, gray_scale: false };
115
116
  elements.sort((a, b) => a.zOrder - b.zOrder);
117
+ const visibleViews = calculateVisibleViews(opts.view, scene.rotation_deprecated);
116
118
 
117
- const cameraPositionForView = (view: View): Vec3 => {
118
- switch (view) {
119
- case "front":
120
- return vec3(0, 0, 1);
121
- case "back":
122
- return vec3(0, 0, -1);
123
- case "top":
124
- return vec3(0, 1, 0);
125
- case "bottom":
126
- return vec3(0, -1, 0);
127
- case "right":
128
- return vec3(1, 0, 0);
129
- case "left":
130
- return vec3(-1, 0, 0);
131
- default:
132
- return vec3(0, 0, 1);
133
- }
134
- };
135
-
136
- const cam = vec3Rot(
137
- cameraPositionForView(opts.view),
138
- vec3Zero,
139
- scene.rotation_deprecated ?? vec3Zero
140
- );
141
-
142
- const visibleViews = {
143
- [cam.x >= 0 ? "right" : "left"]: opts.view === "right" || opts.view === "left",
144
- [cam.y >= 0 ? "top" : "bottom"]: opts.view === "top" || opts.view === "bottom",
145
- [cam.z >= 0 ? "front" : "back"]: opts.view === "front" || opts.view === "back",
146
- };
147
-
148
- for (const d of scene.dimensions_deprecated?.dimensions ?? []) {
149
- if(d.views[0] && visibleViews[d.views[0]] === true) {
119
+ for (const dim of scene.dimensions_deprecated?.dimensions ?? []) {
120
+ const d = dimensionConvertToTypeMesh(dim, scene.rotation_deprecated ?? vec3Zero, scene.dimensions_deprecated?.material);
121
+ if(isViewVisible(d.views[0], visibleViews)) {
150
122
  const pos = vec3TransRot(d.pos, unitCenterFlipped, unitRot);
151
123
  const rot = vec3RotCombine(unitRot, d.rot);
152
124
  for (const m of d.meshes) {
package/src/utils.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/no-unused-expressions */
2
2
 
3
+ import { vec3, Vec3, vec3Rot, vec3Zero, View } from "./abstract-3d.js";
4
+
3
5
  // dummy
4
6
  export function parseRgb(color: string): { readonly r: number; readonly g: number; readonly b: number } {
5
7
  const parts = color.split("(")[1]?.slice(0, -1).split(",");
@@ -149,4 +151,41 @@ export function shade(p: number, from: string, to?: string): string | undefined
149
151
  );
150
152
  }
151
153
 
154
+ export function calculateVisibleViews(originalView: View, sceneRotation: Vec3 | undefined): Record<string, boolean> {
155
+ const cameraPositionForView = (view: View): Vec3 => {
156
+ switch (view) {
157
+ case "front":
158
+ return vec3(0, 0, 1);
159
+ case "back":
160
+ return vec3(0, 0, -1);
161
+ case "top":
162
+ return vec3(0, 1, 0);
163
+ case "bottom":
164
+ return vec3(0, -1, 0);
165
+ case "right":
166
+ return vec3(1, 0, 0);
167
+ case "left":
168
+ return vec3(-1, 0, 0);
169
+ default:
170
+ return vec3(0, 0, 1);
171
+ }
172
+ };
173
+
174
+ const cam = vec3Rot(
175
+ cameraPositionForView(originalView),
176
+ vec3Zero,
177
+ sceneRotation ?? vec3Zero
178
+ );
179
+
180
+ return {
181
+ [cam.x >= 0 ? "right" : "left"]: originalView === "right" || originalView === "left",
182
+ [cam.y >= 0 ? "top" : "bottom"]: originalView === "top" || originalView === "bottom",
183
+ [cam.z >= 0 ? "front" : "back"]: originalView === "front" || originalView === "back",
184
+ };
185
+ }
186
+
187
+ export function isViewVisible(view: View | undefined, visibleViews: Record<string, boolean>): boolean {
188
+ return view !== undefined && visibleViews[view] === true;
189
+ }
190
+
152
191
  export type Optional<T> = { readonly [K in keyof T]?: T[K] };
@@ -1,7 +0,0 @@
1
- import { Color } from "abstract-image";
2
- import { Vec3 } from "../../abstract-3d.js";
3
- export declare function colorToInteger(color: string): number;
4
- export declare function colorHexFromAbstractImageColor(color: Color): string;
5
- export declare function color(colorNormal: string | undefined): number;
6
- export declare const ACI_COLOR_TABLE: ReadonlyArray<Vec3>;
7
- //# sourceMappingURL=color.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../src/renderers/dxf/color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAyB,MAAM,sBAAsB,CAAC;AAEnE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQpD;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAEnE;AAED,wBAAgB,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAqB7D;AAsBD,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,IAAI,CAiQ/C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"color.js","sourceRoot":"","sources":["../../../src/renderers/dxf/color.ts"],"names":[],"mappings":"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E,GAAG,CAAC;IACjB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACf,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACd,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;IAClB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;IAClB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;IAClB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAChB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAChB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAChB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;IACjB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;IACjB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACd,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;IACjB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACf,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACf,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;IACd,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACb,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CACd,CAAC"}
@@ -1,17 +0,0 @@
1
- import { Bounds3, Vec3 } from "../../abstract-3d.js";
2
- export declare const DEFAULT_CIRCLE_SIDE_COUNT = 16;
3
- export type DxfOrigin = "BottomLeftFront" | "Center" | "SameAsScene";
4
- export type DxfDynamicColor = 7;
5
- export type Handle = {
6
- handle: number;
7
- };
8
- export declare function dxf(groups: string, bounds: Bounds3, size: Vec3, center: Vec3): string;
9
- export declare function dxfHandleCreate(): Handle;
10
- export declare function dxfHandle(handleRef: Handle): string;
11
- export declare const dxfQuad: (vec1: Vec3, vec2: Vec3, vec3: Vec3, vec4: Vec3, col: string | DxfDynamicColor, handleRef: Handle) => string;
12
- export declare const dxfTriangle: (vec1: Vec3, vec2: Vec3, vec3: Vec3, col: string | DxfDynamicColor, handleRef: Handle) => string;
13
- export declare function dxfPolyline(points: ReadonlyArray<Vec3>, col: string | DxfDynamicColor, closed: boolean, handleRef: Handle): string;
14
- export declare function dxfLine(vecStart: Vec3, vecEnd: Vec3, col: string | DxfDynamicColor, handleRef: Handle): string;
15
- export declare const dxfHeader: (bounds: Bounds3, center: Vec3, blockId: string, size: Vec3) => string;
16
- export declare const dxfFooter: (blockId: string) => string;
17
- //# sourceMappingURL=dxf-encoding.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dxf-encoding.d.ts","sourceRoot":"","sources":["../../../src/renderers/dxf/dxf-encoding.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAsB,MAAM,sBAAsB,CAAC;AAGzE,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAM5C,MAAM,MAAM,SAAS,GAAG,iBAAiB,GAAG,QAAQ,GAAG,aAAa,CAAC;AACrE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC;AAChC,MAAM,MAAM,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,MAAM,CAGrF;AAED,wBAAgB,eAAe,IAAI,MAAM,CAIxC;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAOD,eAAO,MAAM,OAAO,GAClB,MAAM,IAAI,EACV,MAAM,IAAI,EACV,MAAM,IAAI,EACV,MAAM,IAAI,EACV,KAAK,MAAM,GAAG,eAAe,EAC7B,WAAW,MAAM,KAChB,MA0CF,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,MAAM,IAAI,EACV,MAAM,IAAI,EACV,MAAM,IAAI,EACV,KAAK,MAAM,GAAG,eAAe,EAC7B,WAAW,MAAM,KAChB,MAAyD,CAAC;AAE7D,wBAAgB,WAAW,CACzB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,EAC3B,GAAG,EAAE,MAAM,GAAG,eAAe,EAC7B,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,GAChB,MAAM,CAmFR;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,IAAI,EACd,MAAM,EAAE,IAAI,EACZ,GAAG,EAAE,MAAM,GAAG,eAAe,EAC7B,SAAS,EAAE,MAAM,GAChB,MAAM,CAiCR;AAED,eAAO,MAAM,SAAS,GAAI,QAAQ,OAAO,EAAE,QAAQ,IAAI,EAAE,SAAS,MAAM,EAAE,MAAM,IAAI,KAAG,MA2mDtF,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,KAAG,MAuwgBxC,CAAC"}