@nice2dev/spatial-core 1.0.10

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 (82) hide show
  1. package/README.md +160 -0
  2. package/dist/bim/index.d.ts +366 -0
  3. package/dist/bim/index.d.ts.map +1 -0
  4. package/dist/bim/index.js +60 -0
  5. package/dist/bim/index.js.map +1 -0
  6. package/dist/cad/index.d.ts +329 -0
  7. package/dist/cad/index.d.ts.map +1 -0
  8. package/dist/cad/index.js +124 -0
  9. package/dist/cad/index.js.map +1 -0
  10. package/dist/ecad/index.d.ts +316 -0
  11. package/dist/ecad/index.d.ts.map +1 -0
  12. package/dist/ecad/index.js +11 -0
  13. package/dist/ecad/index.js.map +1 -0
  14. package/dist/export/index.d.ts +93 -0
  15. package/dist/export/index.d.ts.map +1 -0
  16. package/dist/export/index.js +522 -0
  17. package/dist/export/index.js.map +1 -0
  18. package/dist/floor-plan/index.d.ts +248 -0
  19. package/dist/floor-plan/index.d.ts.map +1 -0
  20. package/dist/floor-plan/index.js +228 -0
  21. package/dist/floor-plan/index.js.map +1 -0
  22. package/dist/grid/index.d.ts +160 -0
  23. package/dist/grid/index.d.ts.map +1 -0
  24. package/dist/grid/index.js +319 -0
  25. package/dist/grid/index.js.map +1 -0
  26. package/dist/import/import.worker.d.ts +28 -0
  27. package/dist/import/import.worker.d.ts.map +1 -0
  28. package/dist/import/import.worker.js +52 -0
  29. package/dist/import/import.worker.js.map +1 -0
  30. package/dist/import/index.d.ts +111 -0
  31. package/dist/import/index.d.ts.map +1 -0
  32. package/dist/import/index.js +1092 -0
  33. package/dist/import/index.js.map +1 -0
  34. package/dist/import/workerImport.d.ts +56 -0
  35. package/dist/import/workerImport.d.ts.map +1 -0
  36. package/dist/import/workerImport.js +207 -0
  37. package/dist/import/workerImport.js.map +1 -0
  38. package/dist/index.d.ts +29 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +86 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/interior/index.d.ts +241 -0
  43. package/dist/interior/index.d.ts.map +1 -0
  44. package/dist/interior/index.js +101 -0
  45. package/dist/interior/index.js.map +1 -0
  46. package/dist/measurement/index.d.ts +186 -0
  47. package/dist/measurement/index.d.ts.map +1 -0
  48. package/dist/measurement/index.js +400 -0
  49. package/dist/measurement/index.js.map +1 -0
  50. package/dist/objects/index.d.ts +288 -0
  51. package/dist/objects/index.d.ts.map +1 -0
  52. package/dist/objects/index.js +463 -0
  53. package/dist/objects/index.js.map +1 -0
  54. package/dist/serialization/index.d.ts +421 -0
  55. package/dist/serialization/index.d.ts.map +1 -0
  56. package/dist/serialization/index.js +412 -0
  57. package/dist/serialization/index.js.map +1 -0
  58. package/dist/topology/index.d.ts +252 -0
  59. package/dist/topology/index.d.ts.map +1 -0
  60. package/dist/topology/index.js +525 -0
  61. package/dist/topology/index.js.map +1 -0
  62. package/dist/transitions/index.d.ts +141 -0
  63. package/dist/transitions/index.d.ts.map +1 -0
  64. package/dist/transitions/index.js +160 -0
  65. package/dist/transitions/index.js.map +1 -0
  66. package/dist/unified/index.d.ts +225 -0
  67. package/dist/unified/index.d.ts.map +1 -0
  68. package/dist/unified/index.js +474 -0
  69. package/dist/unified/index.js.map +1 -0
  70. package/dist/virtualization/QuadTree.d.ts +68 -0
  71. package/dist/virtualization/QuadTree.d.ts.map +1 -0
  72. package/dist/virtualization/QuadTree.js +228 -0
  73. package/dist/virtualization/QuadTree.js.map +1 -0
  74. package/dist/virtualization/ViewportCulling.d.ts +92 -0
  75. package/dist/virtualization/ViewportCulling.d.ts.map +1 -0
  76. package/dist/virtualization/ViewportCulling.js +123 -0
  77. package/dist/virtualization/ViewportCulling.js.map +1 -0
  78. package/dist/virtualization/index.d.ts +9 -0
  79. package/dist/virtualization/index.d.ts.map +1 -0
  80. package/dist/virtualization/index.js +9 -0
  81. package/dist/virtualization/index.js.map +1 -0
  82. package/package.json +64 -0
@@ -0,0 +1,463 @@
1
+ /**
2
+ * Spatial Objects — Unified object system for all spatial editors.
3
+ *
4
+ * Consolidates functionality from:
5
+ * - simsModeUtils.ts (FURNITURE_CATALOG)
6
+ * - buildingTypes.ts (DeviceType, BuildingZone)
7
+ * - NiceNetworkTopology.tsx (NetworkDevice)
8
+ *
9
+ * @module @nice2dev/spatial-core/objects
10
+ */
11
+ /** Object catalog with all available items. */
12
+ export const OBJECT_CATALOG = [
13
+ // Smart Home - Lighting
14
+ {
15
+ id: 'sh-light-bulb',
16
+ name: 'Smart Bulb',
17
+ category: 'smart-home',
18
+ type: 'light',
19
+ icon: '💡',
20
+ tags: ['lighting', 'bulb'],
21
+ },
22
+ {
23
+ id: 'sh-light-dimmer',
24
+ name: 'Dimmer Switch',
25
+ category: 'smart-home',
26
+ type: 'light-dimmer',
27
+ icon: '🔆',
28
+ tags: ['lighting', 'switch'],
29
+ },
30
+ {
31
+ id: 'sh-light-rgb',
32
+ name: 'RGB Light',
33
+ category: 'smart-home',
34
+ type: 'light-rgb',
35
+ icon: '🌈',
36
+ tags: ['lighting', 'color'],
37
+ },
38
+ {
39
+ id: 'sh-light-strip',
40
+ name: 'LED Strip',
41
+ category: 'smart-home',
42
+ type: 'light-strip',
43
+ icon: '💡',
44
+ tags: ['lighting', 'strip'],
45
+ },
46
+ // Smart Home - Climate
47
+ {
48
+ id: 'sh-thermostat',
49
+ name: 'Thermostat',
50
+ category: 'smart-home',
51
+ type: 'thermostat',
52
+ icon: '🌡️',
53
+ tags: ['climate', 'temperature'],
54
+ },
55
+ {
56
+ id: 'sh-hvac',
57
+ name: 'HVAC Unit',
58
+ category: 'smart-home',
59
+ type: 'hvac',
60
+ icon: '❄️',
61
+ tags: ['climate', 'cooling', 'heating'],
62
+ },
63
+ {
64
+ id: 'sh-fan',
65
+ name: 'Smart Fan',
66
+ category: 'smart-home',
67
+ type: 'fan',
68
+ icon: '💨',
69
+ tags: ['climate', 'fan'],
70
+ },
71
+ // Smart Home - Security
72
+ {
73
+ id: 'sh-camera',
74
+ name: 'Security Camera',
75
+ category: 'smart-home',
76
+ type: 'camera',
77
+ icon: '📷',
78
+ tags: ['security', 'camera'],
79
+ },
80
+ {
81
+ id: 'sh-doorbell',
82
+ name: 'Video Doorbell',
83
+ category: 'smart-home',
84
+ type: 'camera-doorbell',
85
+ icon: '🔔',
86
+ tags: ['security', 'doorbell'],
87
+ },
88
+ {
89
+ id: 'sh-lock',
90
+ name: 'Smart Lock',
91
+ category: 'smart-home',
92
+ type: 'lock',
93
+ icon: '🔒',
94
+ tags: ['security', 'lock'],
95
+ },
96
+ {
97
+ id: 'sh-sensor-motion',
98
+ name: 'Motion Sensor',
99
+ category: 'smart-home',
100
+ type: 'sensor-motion',
101
+ icon: '👁️',
102
+ tags: ['security', 'sensor'],
103
+ },
104
+ {
105
+ id: 'sh-sensor-door',
106
+ name: 'Door Sensor',
107
+ category: 'smart-home',
108
+ type: 'sensor-door',
109
+ icon: '🚪',
110
+ tags: ['security', 'sensor'],
111
+ },
112
+ // Smart Home - Audio/Video
113
+ {
114
+ id: 'sh-speaker',
115
+ name: 'Smart Speaker',
116
+ category: 'smart-home',
117
+ type: 'speaker',
118
+ icon: '🔊',
119
+ tags: ['audio', 'speaker'],
120
+ },
121
+ {
122
+ id: 'sh-voice-assistant',
123
+ name: 'Voice Assistant',
124
+ category: 'smart-home',
125
+ type: 'voice-assistant',
126
+ icon: '🗣️',
127
+ tags: ['audio', 'assistant'],
128
+ },
129
+ {
130
+ id: 'sh-tv',
131
+ name: 'Smart TV',
132
+ category: 'smart-home',
133
+ type: 'tv',
134
+ icon: '📺',
135
+ tags: ['video', 'tv'],
136
+ },
137
+ // Furniture - Seating
138
+ {
139
+ id: 'furn-sofa-3',
140
+ name: '3-Seater Sofa',
141
+ category: 'furniture',
142
+ type: 'sofa',
143
+ defaultSize: { x: 2.2, y: 0.9, z: 0.85 },
144
+ tags: ['seating', 'sofa'],
145
+ },
146
+ {
147
+ id: 'furn-sofa-2',
148
+ name: '2-Seater Sofa',
149
+ category: 'furniture',
150
+ type: 'sofa',
151
+ defaultSize: { x: 1.6, y: 0.9, z: 0.85 },
152
+ tags: ['seating', 'sofa'],
153
+ },
154
+ {
155
+ id: 'furn-armchair',
156
+ name: 'Armchair',
157
+ category: 'furniture',
158
+ type: 'armchair',
159
+ defaultSize: { x: 0.9, y: 0.9, z: 0.85 },
160
+ tags: ['seating', 'chair'],
161
+ },
162
+ {
163
+ id: 'furn-dining-chair',
164
+ name: 'Dining Chair',
165
+ category: 'furniture',
166
+ type: 'chair',
167
+ defaultSize: { x: 0.45, y: 0.5, z: 0.9 },
168
+ tags: ['seating', 'dining'],
169
+ },
170
+ {
171
+ id: 'furn-office-chair',
172
+ name: 'Office Chair',
173
+ category: 'furniture',
174
+ type: 'chair',
175
+ defaultSize: { x: 0.65, y: 0.65, z: 1.2 },
176
+ tags: ['seating', 'office'],
177
+ },
178
+ // Furniture - Tables
179
+ {
180
+ id: 'furn-dining-table-6',
181
+ name: 'Dining Table (6p)',
182
+ category: 'furniture',
183
+ type: 'table',
184
+ defaultSize: { x: 1.8, y: 0.9, z: 0.75 },
185
+ tags: ['table', 'dining'],
186
+ },
187
+ {
188
+ id: 'furn-coffee-table',
189
+ name: 'Coffee Table',
190
+ category: 'furniture',
191
+ type: 'table',
192
+ defaultSize: { x: 1.2, y: 0.6, z: 0.45 },
193
+ tags: ['table', 'living'],
194
+ },
195
+ {
196
+ id: 'furn-desk',
197
+ name: 'Office Desk',
198
+ category: 'furniture',
199
+ type: 'desk',
200
+ defaultSize: { x: 1.6, y: 0.8, z: 0.75 },
201
+ tags: ['table', 'office', 'desk'],
202
+ },
203
+ {
204
+ id: 'furn-side-table',
205
+ name: 'Side Table',
206
+ category: 'furniture',
207
+ type: 'table',
208
+ defaultSize: { x: 0.5, y: 0.5, z: 0.55 },
209
+ tags: ['table', 'side'],
210
+ },
211
+ // Furniture - Beds
212
+ {
213
+ id: 'furn-bed-king',
214
+ name: 'King Bed',
215
+ category: 'furniture',
216
+ type: 'bed',
217
+ defaultSize: { x: 2.0, y: 2.2, z: 0.5 },
218
+ tags: ['bed', 'bedroom'],
219
+ },
220
+ {
221
+ id: 'furn-bed-queen',
222
+ name: 'Queen Bed',
223
+ category: 'furniture',
224
+ type: 'bed',
225
+ defaultSize: { x: 1.6, y: 2.1, z: 0.5 },
226
+ tags: ['bed', 'bedroom'],
227
+ },
228
+ {
229
+ id: 'furn-bed-single',
230
+ name: 'Single Bed',
231
+ category: 'furniture',
232
+ type: 'bed',
233
+ defaultSize: { x: 0.9, y: 2.0, z: 0.5 },
234
+ tags: ['bed', 'bedroom'],
235
+ },
236
+ // Furniture - Storage
237
+ {
238
+ id: 'furn-wardrobe',
239
+ name: 'Wardrobe',
240
+ category: 'furniture',
241
+ type: 'wardrobe',
242
+ defaultSize: { x: 1.8, y: 0.6, z: 2.2 },
243
+ tags: ['storage', 'bedroom'],
244
+ },
245
+ {
246
+ id: 'furn-bookshelf',
247
+ name: 'Bookshelf',
248
+ category: 'furniture',
249
+ type: 'bookshelf',
250
+ defaultSize: { x: 0.8, y: 0.3, z: 2.0 },
251
+ tags: ['storage', 'books'],
252
+ },
253
+ {
254
+ id: 'furn-dresser',
255
+ name: 'Dresser',
256
+ category: 'furniture',
257
+ type: 'dresser',
258
+ defaultSize: { x: 1.2, y: 0.5, z: 0.8 },
259
+ tags: ['storage', 'bedroom'],
260
+ },
261
+ // Network Equipment
262
+ {
263
+ id: 'net-router',
264
+ name: 'Router',
265
+ category: 'network',
266
+ type: 'router',
267
+ icon: '📡',
268
+ tags: ['network', 'router'],
269
+ },
270
+ {
271
+ id: 'net-switch-24',
272
+ name: '24-Port Switch',
273
+ category: 'network',
274
+ type: 'switch',
275
+ icon: '🔌',
276
+ tags: ['network', 'switch'],
277
+ },
278
+ {
279
+ id: 'net-switch-48',
280
+ name: '48-Port Switch',
281
+ category: 'network',
282
+ type: 'switch',
283
+ icon: '🔌',
284
+ tags: ['network', 'switch'],
285
+ },
286
+ {
287
+ id: 'net-firewall',
288
+ name: 'Firewall',
289
+ category: 'network',
290
+ type: 'firewall',
291
+ icon: '🛡️',
292
+ tags: ['network', 'security'],
293
+ },
294
+ {
295
+ id: 'net-access-point',
296
+ name: 'WiFi Access Point',
297
+ category: 'network',
298
+ type: 'access-point',
299
+ icon: '📶',
300
+ tags: ['network', 'wifi'],
301
+ },
302
+ {
303
+ id: 'net-server',
304
+ name: 'Server',
305
+ category: 'network',
306
+ type: 'server',
307
+ icon: '🖥️',
308
+ tags: ['network', 'server'],
309
+ },
310
+ {
311
+ id: 'net-storage',
312
+ name: 'NAS Storage',
313
+ category: 'network',
314
+ type: 'nas',
315
+ icon: '💾',
316
+ tags: ['network', 'storage'],
317
+ },
318
+ // Infrastructure
319
+ {
320
+ id: 'infra-rack-42u',
321
+ name: '42U Rack',
322
+ category: 'infrastructure',
323
+ type: 'rack-42u',
324
+ icon: '🗄️',
325
+ defaultSize: { x: 0.6, y: 1.0, z: 2.0 },
326
+ tags: ['datacenter', 'rack'],
327
+ },
328
+ {
329
+ id: 'infra-rack-24u',
330
+ name: '24U Rack',
331
+ category: 'infrastructure',
332
+ type: 'rack-24u',
333
+ icon: '🗄️',
334
+ defaultSize: { x: 0.6, y: 1.0, z: 1.2 },
335
+ tags: ['datacenter', 'rack'],
336
+ },
337
+ {
338
+ id: 'infra-ups',
339
+ name: 'UPS',
340
+ category: 'infrastructure',
341
+ type: 'ups-floor',
342
+ icon: '🔋',
343
+ tags: ['datacenter', 'power'],
344
+ },
345
+ {
346
+ id: 'infra-pdu',
347
+ name: 'PDU',
348
+ category: 'infrastructure',
349
+ type: 'pdu-vertical',
350
+ icon: '⚡',
351
+ tags: ['datacenter', 'power'],
352
+ },
353
+ {
354
+ id: 'infra-cooling',
355
+ name: 'CRAC Unit',
356
+ category: 'infrastructure',
357
+ type: 'cooling-crac',
358
+ icon: '❄️',
359
+ tags: ['datacenter', 'cooling'],
360
+ },
361
+ // Building Elements
362
+ {
363
+ id: 'bld-wall',
364
+ name: 'Wall',
365
+ category: 'building',
366
+ type: 'wall',
367
+ icon: '🧱',
368
+ tags: ['building', 'wall'],
369
+ },
370
+ {
371
+ id: 'bld-door',
372
+ name: 'Door',
373
+ category: 'building',
374
+ type: 'door',
375
+ icon: '🚪',
376
+ tags: ['building', 'door'],
377
+ },
378
+ {
379
+ id: 'bld-window',
380
+ name: 'Window',
381
+ category: 'building',
382
+ type: 'window',
383
+ icon: '🪟',
384
+ tags: ['building', 'window'],
385
+ },
386
+ {
387
+ id: 'bld-stair',
388
+ name: 'Staircase',
389
+ category: 'building',
390
+ type: 'stair',
391
+ icon: '🪜',
392
+ tags: ['building', 'stair'],
393
+ },
394
+ // Game Objects
395
+ {
396
+ id: 'game-spawn',
397
+ name: 'Spawn Point',
398
+ category: 'game',
399
+ type: 'spawn-point',
400
+ icon: '🎯',
401
+ tags: ['game', 'spawn'],
402
+ },
403
+ {
404
+ id: 'game-checkpoint',
405
+ name: 'Checkpoint',
406
+ category: 'game',
407
+ type: 'checkpoint',
408
+ icon: '🏁',
409
+ tags: ['game', 'checkpoint'],
410
+ },
411
+ {
412
+ id: 'game-trigger',
413
+ name: 'Trigger Zone',
414
+ category: 'game',
415
+ type: 'trigger-zone',
416
+ icon: '⚡',
417
+ tags: ['game', 'trigger'],
418
+ },
419
+ {
420
+ id: 'game-item',
421
+ name: 'Item Pickup',
422
+ category: 'game',
423
+ type: 'item-pickup',
424
+ icon: '📦',
425
+ tags: ['game', 'item'],
426
+ },
427
+ {
428
+ id: 'game-enemy',
429
+ name: 'Enemy Spawner',
430
+ category: 'game',
431
+ type: 'enemy-spawner',
432
+ icon: '👾',
433
+ tags: ['game', 'enemy'],
434
+ },
435
+ ];
436
+ /**
437
+ * Get catalog items by category.
438
+ */
439
+ export function getCatalogByCategory(category) {
440
+ return OBJECT_CATALOG.filter((item) => item.category === category);
441
+ }
442
+ /**
443
+ * Get catalog item by ID.
444
+ */
445
+ export function getCatalogItem(id) {
446
+ return OBJECT_CATALOG.find((item) => item.id === id);
447
+ }
448
+ /**
449
+ * Search catalog by query.
450
+ */
451
+ export function searchCatalog(query) {
452
+ const lower = query.toLowerCase();
453
+ return OBJECT_CATALOG.filter((item) => item.name.toLowerCase().includes(lower) ||
454
+ item.type.toLowerCase().includes(lower) ||
455
+ item.tags?.some((tag) => tag.toLowerCase().includes(lower)));
456
+ }
457
+ export default {
458
+ OBJECT_CATALOG,
459
+ getCatalogByCategory,
460
+ getCatalogItem,
461
+ searchCatalog,
462
+ };
463
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/objects/index.ts"],"names":[],"mappings":"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"}