@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,288 @@
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
+ import type { Point2D, Point3D, BoundingBox } from '../grid/index';
12
+ /** Transform in 2D space. */
13
+ export interface Transform2D {
14
+ position: Point2D;
15
+ rotation: number;
16
+ scale: Point2D;
17
+ }
18
+ /** Transform in 3D space. */
19
+ export interface Transform3D {
20
+ position: Point3D;
21
+ rotation: Point3D;
22
+ scale: Point3D;
23
+ }
24
+ /** Base spatial object interface. */
25
+ export interface SpatialObject {
26
+ id: string;
27
+ type: string;
28
+ category?: ObjectCategory;
29
+ name?: string;
30
+ transform?: Transform2D | Transform3D;
31
+ bounds?: BoundingBox;
32
+ /** Layer this object belongs to. */
33
+ layer?: string;
34
+ /** Whether object is locked (can't be moved). */
35
+ locked?: boolean;
36
+ /** Whether object is visible. */
37
+ visible?: boolean;
38
+ /** Custom metadata. */
39
+ metadata?: Record<string, unknown>;
40
+ /** Parent object ID (for hierarchy). */
41
+ parentId?: string;
42
+ /** Child object IDs. */
43
+ childIds?: string[];
44
+ /** Optional human-readable description. */
45
+ description?: string;
46
+ /** Optional convenience accessor for top-left position (mirrors `transform.position`). */
47
+ position?: Point2D | Point3D;
48
+ /** Optional convenience accessor for size in scene units. */
49
+ size?: {
50
+ width: number;
51
+ height: number;
52
+ depth?: number;
53
+ };
54
+ /** Optional inline visual style (fill/stroke/strokeWidth) used by editors and viewers. */
55
+ style?: {
56
+ fill?: string;
57
+ stroke?: string;
58
+ strokeWidth?: number;
59
+ opacity?: number;
60
+ [key: string]: unknown;
61
+ };
62
+ }
63
+ /** High-level object category. */
64
+ export type ObjectCategory = 'smart-home' | 'furniture' | 'network' | 'infrastructure' | 'building' | 'zone' | 'game' | 'annotation';
65
+ /** Smart home device types. */
66
+ export type SmartHomeDeviceType = 'light' | 'light-dimmer' | 'light-rgb' | 'light-strip' | 'thermostat' | 'hvac' | 'fan' | 'humidifier' | 'air-purifier' | 'camera' | 'camera-doorbell' | 'camera-ptz' | 'sensor-motion' | 'sensor-door' | 'sensor-window' | 'sensor-smoke' | 'sensor-co' | 'sensor-water' | 'sensor-temperature' | 'sensor-humidity' | 'sensor-air-quality' | 'sensor-occupancy' | 'lock' | 'lock-deadbolt' | 'lock-smart' | 'switch' | 'outlet' | 'power-strip' | 'speaker' | 'speaker-stereo' | 'soundbar' | 'voice-assistant' | 'tv' | 'projector' | 'screen' | 'blind' | 'curtain' | 'shade' | 'alarm' | 'siren' | 'keypad' | 'vacuum' | 'mower' | 'irrigation' | 'ev-charger' | 'solar-inverter' | 'battery' | 'energy-monitor' | 'doorbell' | 'intercom' | 'gate' | 'appliance' | 'washer' | 'dryer' | 'dishwasher' | 'oven' | 'fridge' | 'coffee-machine';
67
+ /** Smart home device object. */
68
+ export interface SmartHomeDevice extends SpatialObject {
69
+ category: 'smart-home';
70
+ deviceType: SmartHomeDeviceType;
71
+ /** Device manufacturer. */
72
+ manufacturer?: string;
73
+ /** Device model. */
74
+ model?: string;
75
+ /** Current state (on/off, temperature, etc). */
76
+ state?: Record<string, unknown>;
77
+ /** Connection status. */
78
+ connectionStatus: 'online' | 'offline' | 'unknown';
79
+ /** Protocol (zigbee, z-wave, wifi, bluetooth, thread, matter). */
80
+ protocol?: string;
81
+ }
82
+ /** Furniture subcategory. */
83
+ export type FurnitureSubcategory = 'seating' | 'tables' | 'beds' | 'storage' | 'lighting' | 'appliances' | 'electronics' | 'bathroom' | 'outdoor' | 'decor' | 'plants' | 'rugs' | 'office';
84
+ /** Furniture item object. */
85
+ export interface FurnitureItem extends SpatialObject {
86
+ category: 'furniture';
87
+ subcategory: FurnitureSubcategory;
88
+ /** Size in meters as 3D vector (x=width, y=depth, z=height). */
89
+ size3D: Point3D;
90
+ /** Base price for catalog. */
91
+ price?: number;
92
+ /** 3D model URL. */
93
+ modelUrl?: string;
94
+ /** Material/color variants. */
95
+ variants?: Array<{
96
+ id: string;
97
+ name: string;
98
+ color?: string;
99
+ textureUrl?: string;
100
+ }>;
101
+ /** Selected variant ID. */
102
+ selectedVariant?: string;
103
+ }
104
+ /** Network device types. */
105
+ export type NetworkDeviceType = 'router' | 'switch' | 'switch-poe' | 'switch-managed' | 'firewall' | 'ids-ips' | 'vpn-gateway' | 'server' | 'server-rack' | 'blade-server' | 'storage' | 'nas' | 'san' | 'workstation' | 'laptop' | 'thin-client' | 'access-point' | 'access-point-mesh' | 'wifi-controller' | 'ip-camera' | 'nvr' | 'dvr' | 'iot-hub' | 'iot-gateway' | 'iot-sensor' | 'cloud' | 'cloud-service' | 'voip-phone' | 'pbx' | 'sip-gateway' | 'printer' | 'mfp' | 'plotter' | 'ups' | 'pdu' | 'ats';
106
+ /** Network device status. */
107
+ export type NetworkDeviceStatus = 'online' | 'offline' | 'warning' | 'error' | 'maintenance';
108
+ /** Network connection type. */
109
+ export type NetworkConnectionType = 'ethernet' | 'fiber' | 'wireless' | 'vpn' | 'wan' | 'serial';
110
+ /** Network device object. */
111
+ export interface NetworkDevice extends SpatialObject {
112
+ category: 'network';
113
+ deviceType: NetworkDeviceType;
114
+ /** IP address. */
115
+ ipAddress?: string;
116
+ /** MAC address. */
117
+ macAddress?: string;
118
+ /** Hostname. */
119
+ hostname?: string;
120
+ /** Status. */
121
+ status: NetworkDeviceStatus;
122
+ /** Port count (for switches/routers). */
123
+ portCount?: number;
124
+ /** Connected port IDs. */
125
+ connectedPorts?: string[];
126
+ /** Metrics (CPU, memory, bandwidth). */
127
+ metrics?: {
128
+ cpuUsage?: number;
129
+ memoryUsage?: number;
130
+ bandwidthIn?: number;
131
+ bandwidthOut?: number;
132
+ latency?: number;
133
+ uptime?: number;
134
+ };
135
+ }
136
+ /** Network connection between devices. */
137
+ export interface NetworkConnection {
138
+ id: string;
139
+ sourceDeviceId: string;
140
+ sourcePort?: string;
141
+ targetDeviceId: string;
142
+ targetPort?: string;
143
+ connectionType: NetworkConnectionType;
144
+ bandwidth?: number;
145
+ status: NetworkDeviceStatus;
146
+ label?: string;
147
+ }
148
+ /** Infrastructure equipment type. */
149
+ export type InfrastructureType = 'rack-42u' | 'rack-24u' | 'rack-12u' | 'rack-open' | 'cable-tray' | 'cable-ladder' | 'cable-conduit' | 'cooling-crac' | 'cooling-inrow' | 'cooling-portable' | 'ups-rack' | 'ups-floor' | 'pdu-vertical' | 'pdu-horizontal' | 'fire-suppression' | 'fire-detector' | 'emergency-stop' | 'access-control' | 'biometric' | 'man-trap' | 'kvm' | 'console-server' | 'oob-management';
150
+ /** Infrastructure equipment object. */
151
+ export interface InfrastructureEquipment extends SpatialObject {
152
+ category: 'infrastructure';
153
+ equipmentType: InfrastructureType;
154
+ /** Rack units used (for rack-mounted). */
155
+ rackUnits?: number;
156
+ /** Power consumption (watts). */
157
+ powerConsumption?: number;
158
+ /** Heat output (BTU). */
159
+ heatOutput?: number;
160
+ /** Weight (kg). */
161
+ weight?: number;
162
+ }
163
+ /** Building element type. */
164
+ export type BuildingElementType = 'wall' | 'wall-partition' | 'wall-curtain' | 'wall-glass' | 'door' | 'door-double' | 'door-sliding' | 'door-revolving' | 'door-fire' | 'window' | 'window-skylight' | 'window-bay' | 'floor' | 'floor-raised' | 'floor-mezzanine' | 'ceiling' | 'ceiling-drop' | 'ceiling-exposed' | 'stair' | 'stair-spiral' | 'escalator' | 'elevator' | 'column' | 'beam' | 'ramp';
165
+ /** Wall segment with openings. */
166
+ export interface WallSegment extends SpatialObject {
167
+ category: 'building';
168
+ elementType: 'wall' | 'wall-partition' | 'wall-curtain' | 'wall-glass';
169
+ /** Wall start point. */
170
+ start: Point2D;
171
+ /** Wall end point. */
172
+ end: Point2D;
173
+ /** Wall height (meters). */
174
+ height: number;
175
+ /** Wall thickness (meters). */
176
+ thickness: number;
177
+ /** Material. */
178
+ material: string;
179
+ /** Openings (doors/windows). */
180
+ openings: WallOpening[];
181
+ }
182
+ /** Opening in a wall (door/window). */
183
+ export interface WallOpening {
184
+ id: string;
185
+ type: 'door' | 'window';
186
+ /** Position along wall (0-1). */
187
+ position: number;
188
+ /** Width (meters). */
189
+ width: number;
190
+ /** Height (meters). */
191
+ height: number;
192
+ /** Sill height for windows (meters). */
193
+ sillHeight?: number;
194
+ }
195
+ /** Room definition. */
196
+ export interface Room extends SpatialObject {
197
+ category: 'building';
198
+ elementType: 'room';
199
+ /** Boundary polygon points. */
200
+ boundary: Point2D[];
201
+ /** Room type. */
202
+ roomType: RoomType;
203
+ /** Floor level (0 = ground). */
204
+ floorLevel: number;
205
+ /** Ceiling height (meters). */
206
+ ceilingHeight: number;
207
+ /** Floor material. */
208
+ floorMaterial: string;
209
+ /** Wall material. */
210
+ wallMaterial: string;
211
+ /** Calculated area (m²). */
212
+ area: number;
213
+ }
214
+ /** Room types (from cadModeUtils + buildingTypes). */
215
+ export type RoomType = 'living-room' | 'bedroom' | 'master-bedroom' | 'guest-room' | 'kitchen' | 'dining-room' | 'bathroom' | 'toilet' | 'laundry' | 'garage' | 'basement' | 'attic' | 'hallway' | 'foyer' | 'home-office' | 'nursery' | 'playroom' | 'media-room' | 'office' | 'open-office' | 'private-office' | 'executive-office' | 'conference-room' | 'meeting-room' | 'boardroom' | 'reception' | 'lobby' | 'waiting-area' | 'break-room' | 'cafeteria' | 'kitchen-commercial' | 'storage' | 'archive' | 'supply-room' | 'restroom' | 'locker-room' | 'shower' | 'server-room' | 'data-center' | 'mdf' | 'idf' | 'telecom-room' | 'electrical-room' | 'mechanical-room' | 'hvac-room' | 'security-room' | 'control-room' | 'auditorium' | 'theater' | 'gymnasium' | 'pool' | 'laboratory' | 'clean-room' | 'workshop' | 'loading-dock' | 'warehouse' | 'custom';
216
+ /** Game-specific object types. */
217
+ export type GameObjectType = 'spawn-point' | 'checkpoint' | 'trigger-zone' | 'kill-zone' | 'item-pickup' | 'weapon-pickup' | 'health-pickup' | 'ammo-pickup' | 'enemy-spawner' | 'npc' | 'boss' | 'door-trigger' | 'switch' | 'button' | 'lever' | 'platform' | 'moving-platform' | 'elevator' | 'hazard' | 'trap' | 'spike' | 'turret' | 'light-source' | 'particle-emitter' | 'sound-emitter' | 'camera-zone' | 'cutscene-trigger' | 'waypoint' | 'patrol-path' | 'nav-mesh-modifier';
218
+ /** Game object. */
219
+ export interface GameObject extends SpatialObject {
220
+ category: 'game';
221
+ gameObjectType: GameObjectType;
222
+ /** Trigger radius (for zones). */
223
+ triggerRadius?: number;
224
+ /** Associated script/behavior. */
225
+ script?: string;
226
+ /** Custom game properties. */
227
+ gameProperties?: Record<string, unknown>;
228
+ }
229
+ /** Annotation type. */
230
+ export type AnnotationType = 'dimension' | 'area-label' | 'callout' | 'note' | 'arrow' | 'line' | 'polyline' | 'rectangle' | 'circle' | 'polygon' | 'text' | 'label' | 'legend' | 'symbol';
231
+ /** Annotation object. */
232
+ export interface Annotation extends SpatialObject {
233
+ category: 'annotation';
234
+ annotationType: AnnotationType;
235
+ /** Text content. */
236
+ text?: string;
237
+ /** Font size. */
238
+ fontSize?: number;
239
+ /** Color. */
240
+ color?: string;
241
+ /** Line/stroke color. */
242
+ strokeColor?: string;
243
+ /** Fill color. */
244
+ fillColor?: string;
245
+ /** Points for polyline/polygon. */
246
+ points?: Point2D[];
247
+ /** Dimension value (for dimension annotations). */
248
+ dimensionValue?: number;
249
+ /** Unit (m, ft, in, etc). */
250
+ unit?: string;
251
+ }
252
+ /** Catalog item definition. */
253
+ export interface CatalogItem {
254
+ id: string;
255
+ name: string;
256
+ category: ObjectCategory;
257
+ type: string;
258
+ icon?: string;
259
+ thumbnail?: string;
260
+ description?: string;
261
+ tags?: string[];
262
+ /** Default size (width, depth, height). */
263
+ defaultSize?: Point3D;
264
+ /** Default properties. */
265
+ defaults?: Record<string, unknown>;
266
+ }
267
+ /** Object catalog with all available items. */
268
+ export declare const OBJECT_CATALOG: CatalogItem[];
269
+ /**
270
+ * Get catalog items by category.
271
+ */
272
+ export declare function getCatalogByCategory(category: ObjectCategory): CatalogItem[];
273
+ /**
274
+ * Get catalog item by ID.
275
+ */
276
+ export declare function getCatalogItem(id: string): CatalogItem | undefined;
277
+ /**
278
+ * Search catalog by query.
279
+ */
280
+ export declare function searchCatalog(query: string): CatalogItem[];
281
+ declare const _default: {
282
+ OBJECT_CATALOG: CatalogItem[];
283
+ getCatalogByCategory: typeof getCatalogByCategory;
284
+ getCatalogItem: typeof getCatalogItem;
285
+ searchCatalog: typeof searchCatalog;
286
+ };
287
+ export default _default;
288
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/objects/index.ts"],"names":[],"mappings":"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"}