abstract-3d 0.6.1 → 0.6.2

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 (83) hide show
  1. package/lib/abstract-3d.d.ts +4 -0
  2. package/lib/abstract-3d.d.ts.map +1 -1
  3. package/lib/abstract-3d.js +10 -8
  4. package/lib/abstract-3d.js.map +1 -1
  5. package/lib/index.js +1 -0
  6. package/lib/index.js.map +1 -1
  7. package/lib/renderers/dxf/color.d.ts +3 -1
  8. package/lib/renderers/dxf/color.d.ts.map +1 -1
  9. package/lib/renderers/dxf/color.js +299 -1
  10. package/lib/renderers/dxf/color.js.map +1 -1
  11. package/lib/renderers/dxf/dxf-encoding.d.ts +12 -4
  12. package/lib/renderers/dxf/dxf-encoding.d.ts.map +1 -1
  13. package/lib/renderers/dxf/dxf-encoding.js +18323 -223
  14. package/lib/renderers/dxf/dxf-encoding.js.map +1 -1
  15. package/lib/renderers/dxf/dxf-geometries/dxf-box.d.ts +3 -1
  16. package/lib/renderers/dxf/dxf-geometries/dxf-box.d.ts.map +1 -1
  17. package/lib/renderers/dxf/dxf-geometries/dxf-box.js +7 -7
  18. package/lib/renderers/dxf/dxf-geometries/dxf-box.js.map +1 -1
  19. package/lib/renderers/dxf/dxf-geometries/dxf-cone.d.ts +3 -1
  20. package/lib/renderers/dxf/dxf-geometries/dxf-cone.d.ts.map +1 -1
  21. package/lib/renderers/dxf/dxf-geometries/dxf-cone.js +2 -2
  22. package/lib/renderers/dxf/dxf-geometries/dxf-cone.js.map +1 -1
  23. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.d.ts +3 -1
  24. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.d.ts.map +1 -1
  25. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.js +3 -3
  26. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.js.map +1 -1
  27. package/lib/renderers/dxf/dxf-geometries/dxf-plane.d.ts +3 -1
  28. package/lib/renderers/dxf/dxf-geometries/dxf-plane.d.ts.map +1 -1
  29. package/lib/renderers/dxf/dxf-geometries/dxf-plane.js +2 -2
  30. package/lib/renderers/dxf/dxf-geometries/dxf-plane.js.map +1 -1
  31. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.d.ts +3 -1
  32. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.d.ts.map +1 -1
  33. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.js +5 -5
  34. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.js.map +1 -1
  35. package/lib/renderers/dxf/dxf-geometries/dxf-shape.d.ts +3 -1
  36. package/lib/renderers/dxf/dxf-geometries/dxf-shape.d.ts.map +1 -1
  37. package/lib/renderers/dxf/dxf-geometries/dxf-shape.js +5 -5
  38. package/lib/renderers/dxf/dxf-geometries/dxf-shape.js.map +1 -1
  39. package/lib/renderers/dxf/dxf.d.ts.map +1 -1
  40. package/lib/renderers/dxf/dxf.js +22 -14
  41. package/lib/renderers/dxf/dxf.js.map +1 -1
  42. package/lib/renderers/react/react-camera.d.ts.map +1 -1
  43. package/lib/renderers/react/react-camera.js +24 -24
  44. package/lib/renderers/react/react-camera.js.map +1 -1
  45. package/lib/renderers/react/react-hotspot.js +1 -1
  46. package/lib/renderers/react/react-hotspot.js.map +1 -1
  47. package/lib/renderers/react/react-material.d.ts +2 -1
  48. package/lib/renderers/react/react-material.d.ts.map +1 -1
  49. package/lib/renderers/react/react-material.js +10 -3
  50. package/lib/renderers/react/react-material.js.map +1 -1
  51. package/lib/renderers/react/react-scene.d.ts.map +1 -1
  52. package/lib/renderers/react/react-scene.js +1 -2
  53. package/lib/renderers/react/react-scene.js.map +1 -1
  54. package/lib/renderers/step/step-encoding.d.ts.map +1 -1
  55. package/lib/renderers/step/step.d.ts.map +1 -1
  56. package/lib/renderers/stl/stl-encoding.d.ts.map +1 -1
  57. package/lib/renderers/stl/stl.d.ts.map +1 -1
  58. package/lib/renderers/svg/svg-encoding.d.ts.map +1 -1
  59. package/lib/renderers/svg/svg-encoding.js +13 -4
  60. package/lib/renderers/svg/svg-encoding.js.map +1 -1
  61. package/lib/renderers/svg/svg-geometries/shared.d.ts.map +1 -1
  62. package/lib/renderers/svg/svg.d.ts +1 -1
  63. package/lib/renderers/svg/svg.d.ts.map +1 -1
  64. package/lib/renderers/svg/svg.js +4 -2
  65. package/lib/renderers/svg/svg.js.map +1 -1
  66. package/package.json +6 -6
  67. package/src/abstract-3d.ts +18 -9
  68. package/src/index.ts +1 -0
  69. package/src/renderers/dxf/color.ts +304 -1
  70. package/src/renderers/dxf/dxf-encoding.ts +18331 -226
  71. package/src/renderers/dxf/dxf-geometries/dxf-box.ts +7 -7
  72. package/src/renderers/dxf/dxf-geometries/dxf-cone.ts +2 -2
  73. package/src/renderers/dxf/dxf-geometries/dxf-cylinder.ts +3 -3
  74. package/src/renderers/dxf/dxf-geometries/dxf-plane.ts +3 -2
  75. package/src/renderers/dxf/dxf-geometries/dxf-polygon.ts +5 -5
  76. package/src/renderers/dxf/dxf-geometries/dxf-shape.ts +5 -5
  77. package/src/renderers/dxf/dxf.ts +23 -15
  78. package/src/renderers/react/react-camera.tsx +28 -28
  79. package/src/renderers/react/react-hotspot.tsx +1 -1
  80. package/src/renderers/react/react-material.tsx +12 -2
  81. package/src/renderers/react/react-scene.tsx +1 -3
  82. package/src/renderers/svg/svg-encoding.ts +14 -12
  83. package/src/renderers/svg/svg.ts +7 -2
@@ -1 +1,304 @@
1
- export const color = (_color: string): string => "8";
1
+ import { Vec3, vec3, vec3DistSquared } from "../../abstract-3d.js";
2
+
3
+ export function color(colorNormal: string | undefined): number {
4
+ const ERROR_COLOR = 6; //magenta
5
+ const ACI_COLOR_COUNT = 256;
6
+ if(ACI_COLOR_TABLE.length !== ACI_COLOR_COUNT || colorNormal === undefined) {
7
+ return ERROR_COLOR; //magenta
8
+ }
9
+
10
+ const originalColor = colorNormalToVec3Color(colorNormal);
11
+ let closestColor = 0;
12
+ let smallestDistance = Number.POSITIVE_INFINITY;
13
+ for(let i = 0; i < ACI_COLOR_COUNT; i++) {
14
+ const color = ACI_COLOR_TABLE[i];
15
+ if(color !== undefined) {
16
+ const distance = vec3DistSquared(originalColor, color);
17
+ if(distance < smallestDistance) {
18
+ smallestDistance = distance;
19
+ closestColor = i;
20
+ }
21
+ }
22
+ }
23
+ return closestColor;
24
+ }
25
+
26
+ function colorNormalToVec3Color(colorNormal: string): Vec3 {
27
+ const errorColor = vec3(255, 0, 255); // #ff00ff, magenta
28
+ const paranthesisRegex = /(?<=\().+?(?=\))/;
29
+ const inside = paranthesisRegex.exec(colorNormal);
30
+ if(inside === null || inside.length < 1) {
31
+ return errorColor;
32
+ }
33
+ const values = inside[0].replaceAll(" ", "").split(",");
34
+ if(values.length < 3) {
35
+ return errorColor;
36
+ }
37
+ const r = parseInt(values[0]!, 10);
38
+ const g = parseInt(values[1]!, 10);
39
+ const b = parseInt(values[2]!, 10);
40
+ if(Number.isNaN(r) || Number.isNaN(g) || Number.isNaN(b)) {
41
+ return errorColor;
42
+ }
43
+ return vec3(r % 256, g % 256, b % 256);
44
+ }
45
+
46
+ export const ACI_COLOR_TABLE: ReadonlyArray<Vec3> = [
47
+ vec3(0, 0, 0),
48
+ vec3(255, 0, 0),
49
+ vec3(255, 255, 0),
50
+ vec3(0, 255, 0),
51
+ vec3(0, 255, 255),
52
+ vec3(0, 0, 255),
53
+ vec3(255, 0, 255),
54
+ vec3(255, 255, 255),
55
+ vec3(128, 128, 128),
56
+ vec3(192, 192, 192),
57
+ vec3(255, 0, 0),
58
+ vec3(255, 127, 127),
59
+ vec3(204, 0, 0),
60
+ vec3(204, 102, 102),
61
+ vec3(153, 0, 0),
62
+ vec3(153, 76, 76),
63
+ vec3(127, 0, 0),
64
+ vec3(127, 63, 63),
65
+ vec3(76, 0, 0),
66
+ vec3(76, 38, 38),
67
+ vec3(255, 63, 0),
68
+ vec3(255, 159, 127),
69
+ vec3(204, 51, 0),
70
+ vec3(204, 127, 102),
71
+ vec3(153, 38, 0),
72
+ vec3(153, 95, 76),
73
+ vec3(127, 31, 0),
74
+ vec3(127, 79, 63),
75
+ vec3(76, 19, 0),
76
+ vec3(76, 47, 38),
77
+ vec3(255, 127, 0),
78
+ vec3(255, 191, 127),
79
+ vec3(204, 102, 0),
80
+ vec3(204, 153, 102),
81
+ vec3(153, 76, 0),
82
+ vec3(153, 114, 76),
83
+ vec3(127, 63, 0),
84
+ vec3(127, 95, 63),
85
+ vec3(76, 38, 0),
86
+ vec3(76, 57, 38),
87
+ vec3(255, 191, 0),
88
+ vec3(255, 223, 127),
89
+ vec3(204, 153, 0),
90
+ vec3(204, 178, 102),
91
+ vec3(153, 114, 0),
92
+ vec3(153, 133, 76),
93
+ vec3(127, 95, 0),
94
+ vec3(127, 111, 63),
95
+ vec3(76, 57, 0),
96
+ vec3(76, 66, 38),
97
+ vec3(255, 255, 0),
98
+ vec3(255, 255, 127),
99
+ vec3(204, 204, 0),
100
+ vec3(204, 204, 102),
101
+ vec3(153, 153, 0),
102
+ vec3(153, 153, 76),
103
+ vec3(127, 127, 0),
104
+ vec3(127, 127, 63),
105
+ vec3(76, 76, 0),
106
+ vec3(76, 76, 38),
107
+ vec3(191, 255, 0),
108
+ vec3(223, 255, 127),
109
+ vec3(153, 204, 0),
110
+ vec3(178, 204, 102),
111
+ vec3(114, 153, 0),
112
+ vec3(133, 153, 76),
113
+ vec3(95, 127, 0),
114
+ vec3(111, 127, 63),
115
+ vec3(57, 76, 0),
116
+ vec3(66, 76, 38),
117
+ vec3(127, 255, 0),
118
+ vec3(191, 255, 127),
119
+ vec3(102, 204, 0),
120
+ vec3(153, 204, 102),
121
+ vec3(76, 153, 0),
122
+ vec3(114, 153, 76),
123
+ vec3(63, 127, 0),
124
+ vec3(95, 127, 63),
125
+ vec3(38, 76, 0),
126
+ vec3(57, 76, 38),
127
+ vec3(63, 255, 0),
128
+ vec3(159, 255, 127),
129
+ vec3(51, 204, 0),
130
+ vec3(127, 204, 102),
131
+ vec3(38, 153, 0),
132
+ vec3(95, 153, 76),
133
+ vec3(31, 127, 0),
134
+ vec3(79, 127, 63),
135
+ vec3(19, 76, 0),
136
+ vec3(47, 76, 38),
137
+ vec3(0, 255, 0),
138
+ vec3(127, 255, 127),
139
+ vec3(0, 204, 0),
140
+ vec3(102, 204, 102),
141
+ vec3(0, 153, 0),
142
+ vec3(76, 153, 76),
143
+ vec3(0, 127, 0),
144
+ vec3(63, 127, 63),
145
+ vec3(0, 76, 0),
146
+ vec3(38, 76, 38),
147
+ vec3(0, 255, 63),
148
+ vec3(127, 255, 191),
149
+ vec3(0, 204, 51),
150
+ vec3(102, 204, 127),
151
+ vec3(0, 153, 38),
152
+ vec3(76, 153, 114),
153
+ vec3(0, 127, 31),
154
+ vec3(63, 127, 95),
155
+ vec3(0, 76, 19),
156
+ vec3(38, 76, 47),
157
+ vec3(0, 255, 127),
158
+ vec3(127, 255, 223),
159
+ vec3(0, 204, 102),
160
+ vec3(102, 204, 153),
161
+ vec3(0, 153, 76),
162
+ vec3(76, 153, 133),
163
+ vec3(0, 127, 63),
164
+ vec3(63, 127, 111),
165
+ vec3(0, 76, 38),
166
+ vec3(38, 76, 57),
167
+ vec3(0, 255, 191),
168
+ vec3(127, 255, 255),
169
+ vec3(0, 204, 153),
170
+ vec3(102, 204, 178),
171
+ vec3(0, 153, 114),
172
+ vec3(76, 153, 144),
173
+ vec3(0, 127, 95),
174
+ vec3(63, 127, 119),
175
+ vec3(0, 76, 57),
176
+ vec3(38, 76, 66),
177
+ vec3(0, 255, 255),
178
+ vec3(127, 255, 255),
179
+ vec3(0, 204, 204),
180
+ vec3(102, 204, 204),
181
+ vec3(0, 153, 153),
182
+ vec3(76, 153, 153),
183
+ vec3(0, 127, 127),
184
+ vec3(63, 127, 127),
185
+ vec3(0, 76, 76),
186
+ vec3(38, 76, 76),
187
+ vec3(0, 191, 255),
188
+ vec3(127, 223, 255),
189
+ vec3(0, 153, 204),
190
+ vec3(102, 178, 204),
191
+ vec3(0, 114, 153),
192
+ vec3(76, 133, 153),
193
+ vec3(0, 95, 127),
194
+ vec3(63, 111, 127),
195
+ vec3(0, 57, 76),
196
+ vec3(38, 66, 76),
197
+ vec3(0, 127, 255),
198
+ vec3(127, 191, 255),
199
+ vec3(0, 102, 204),
200
+ vec3(102, 153, 204),
201
+ vec3(0, 76, 153),
202
+ vec3(76, 114, 153),
203
+ vec3(0, 63, 127),
204
+ vec3(63, 95, 127),
205
+ vec3(0, 38, 76),
206
+ vec3(38, 57, 76),
207
+ vec3(0, 63, 255),
208
+ vec3(127, 159, 255),
209
+ vec3(0, 51, 204),
210
+ vec3(102, 127, 204),
211
+ vec3(0, 38, 153),
212
+ vec3(76, 95, 153),
213
+ vec3(0, 31, 127),
214
+ vec3(63, 79, 127),
215
+ vec3(0, 19, 76),
216
+ vec3(38, 47, 76),
217
+ vec3(0, 0, 255),
218
+ vec3(127, 127, 255),
219
+ vec3(0, 0, 204),
220
+ vec3(102, 102, 204),
221
+ vec3(0, 0, 153),
222
+ vec3(76, 76, 153),
223
+ vec3(0, 0, 127),
224
+ vec3(63, 63, 127),
225
+ vec3(0, 0, 76),
226
+ vec3(38, 38, 76),
227
+ vec3(63, 0, 255),
228
+ vec3(159, 127, 255),
229
+ vec3(51, 0, 204),
230
+ vec3(127, 102, 204),
231
+ vec3(38, 0, 153),
232
+ vec3(95, 76, 153),
233
+ vec3(31, 0, 127),
234
+ vec3(79, 63, 127),
235
+ vec3(19, 0, 76),
236
+ vec3(47, 38, 76),
237
+ vec3(127, 0, 255),
238
+ vec3(191, 127, 255),
239
+ vec3(102, 0, 204),
240
+ vec3(153, 102, 204),
241
+ vec3(76, 0, 153),
242
+ vec3(114, 76, 153),
243
+ vec3(63, 0, 127),
244
+ vec3(95, 63, 127),
245
+ vec3(38, 0, 76),
246
+ vec3(57, 38, 76),
247
+ vec3(191, 0, 255),
248
+ vec3(223, 127, 255),
249
+ vec3(153, 0, 204),
250
+ vec3(178, 102, 204),
251
+ vec3(114, 0, 153),
252
+ vec3(133, 76, 153),
253
+ vec3(95, 0, 127),
254
+ vec3(111, 63, 127),
255
+ vec3(57, 0, 76),
256
+ vec3(66, 38, 76),
257
+ vec3(255, 0, 255),
258
+ vec3(255, 127, 255),
259
+ vec3(204, 0, 204),
260
+ vec3(204, 102, 204),
261
+ vec3(153, 0, 153),
262
+ vec3(153, 76, 153),
263
+ vec3(127, 0, 127),
264
+ vec3(127, 63, 127),
265
+ vec3(76, 0, 76),
266
+ vec3(76, 38, 76),
267
+ vec3(255, 0, 191),
268
+ vec3(255, 127, 223),
269
+ vec3(204, 0, 153),
270
+ vec3(204, 102, 178),
271
+ vec3(153, 0, 114),
272
+ vec3(153, 76, 133),
273
+ vec3(127, 0, 95),
274
+ vec3(127, 63, 111),
275
+ vec3(76, 0, 57),
276
+ vec3(76, 38, 66),
277
+ vec3(255, 0, 127),
278
+ vec3(255, 127, 191),
279
+ vec3(204, 0, 102),
280
+ vec3(204, 102, 153),
281
+ vec3(153, 0, 76),
282
+ vec3(153, 76, 114),
283
+ vec3(127, 0, 63),
284
+ vec3(127, 63, 95),
285
+ vec3(76, 0, 38),
286
+ vec3(76, 38, 57),
287
+ vec3(255, 0, 63),
288
+ vec3(255, 127, 159),
289
+ vec3(204, 0, 51),
290
+ vec3(204, 102, 127),
291
+ vec3(153, 0, 38),
292
+ vec3(153, 76, 95),
293
+ vec3(127, 0, 31),
294
+ vec3(127, 63, 79),
295
+ vec3(76, 0, 19),
296
+ vec3(76, 38, 47),
297
+ vec3(255, 255, 255),
298
+ vec3(192, 192, 192),
299
+ vec3(128, 128, 128),
300
+ vec3(64, 64, 64),
301
+ vec3(0, 0, 0),
302
+ vec3(0, 0, 0)
303
+ ];
304
+