@nice2dev/spatial-core 1.1.6 → 1.1.9
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/dist/bim/index.d.ts +1 -1
- package/dist/cad/index.d.ts +1 -1
- package/dist/export/index.d.ts +1 -1
- package/dist/export/index.js +1 -1
- package/dist/floor-plan/index.d.ts +3 -3
- package/dist/import/import.worker.d.ts +1 -1
- package/dist/import/import.worker.js +1 -1
- package/dist/import/index.d.ts +3 -3
- package/dist/import/index.js +1 -1
- package/dist/import/workerImport.d.ts +1 -1
- package/dist/import/workerImport.js +1 -1
- package/dist/index.d.ts +15 -15
- package/dist/index.js +15 -15
- package/dist/measurement/index.d.ts +1 -1
- package/dist/objects/index.d.ts +2 -1
- package/dist/objects/index.js +36 -36
- package/dist/serialization/index.d.ts +1 -1
- package/dist/topology/index.d.ts +1 -1
- package/dist/transitions/index.d.ts +1 -1
- package/dist/unified/index.d.ts +2 -2
- package/dist/virtualization/ViewportCulling.d.ts +1 -1
- package/dist/virtualization/index.d.ts +2 -2
- package/dist/virtualization/index.js +2 -2
- package/package.json +2 -1
- package/dist/bim/index.d.ts.map +0 -1
- package/dist/bim/index.js.map +0 -1
- package/dist/cad/index.d.ts.map +0 -1
- package/dist/cad/index.js.map +0 -1
- package/dist/ecad/index.d.ts.map +0 -1
- package/dist/ecad/index.js.map +0 -1
- package/dist/export/index.d.ts.map +0 -1
- package/dist/export/index.js.map +0 -1
- package/dist/floor-plan/index.d.ts.map +0 -1
- package/dist/floor-plan/index.js.map +0 -1
- package/dist/grid/index.d.ts.map +0 -1
- package/dist/grid/index.js.map +0 -1
- package/dist/import/import.worker.d.ts.map +0 -1
- package/dist/import/import.worker.js.map +0 -1
- package/dist/import/index.d.ts.map +0 -1
- package/dist/import/index.js.map +0 -1
- package/dist/import/workerImport.d.ts.map +0 -1
- package/dist/import/workerImport.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/interior/index.d.ts.map +0 -1
- package/dist/interior/index.js.map +0 -1
- package/dist/measurement/index.d.ts.map +0 -1
- package/dist/measurement/index.js.map +0 -1
- package/dist/objects/index.d.ts.map +0 -1
- package/dist/objects/index.js.map +0 -1
- package/dist/serialization/index.d.ts.map +0 -1
- package/dist/serialization/index.js.map +0 -1
- package/dist/topology/index.d.ts.map +0 -1
- package/dist/topology/index.js.map +0 -1
- package/dist/transitions/index.d.ts.map +0 -1
- package/dist/transitions/index.js.map +0 -1
- package/dist/unified/index.d.ts.map +0 -1
- package/dist/unified/index.js.map +0 -1
- package/dist/virtualization/QuadTree.d.ts.map +0 -1
- package/dist/virtualization/QuadTree.js.map +0 -1
- package/dist/virtualization/ViewportCulling.d.ts.map +0 -1
- package/dist/virtualization/ViewportCulling.js.map +0 -1
- package/dist/virtualization/index.d.ts.map +0 -1
- package/dist/virtualization/index.js.map +0 -1
package/dist/bim/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module @nice2dev/spatial-core/bim
|
|
8
8
|
*/
|
|
9
|
-
import type { Point2D, Point3D } from '../grid/index';
|
|
9
|
+
import type { Point2D, Point3D } from '../grid/index.js';
|
|
10
10
|
export type IfcSchema = 'IFC2x3' | 'IFC4' | 'IFC4x3';
|
|
11
11
|
export interface IfcEntity {
|
|
12
12
|
id: string;
|
package/dist/cad/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module @nice2dev/spatial-core/cad
|
|
8
8
|
*/
|
|
9
|
-
import type { Point2D, Point3D } from '../grid/index';
|
|
9
|
+
import type { Point2D, Point3D } from '../grid/index.js';
|
|
10
10
|
export type ConstraintKind = 'parallel' | 'perpendicular' | 'distance' | 'angle' | 'coincident' | 'tangent' | 'equal-length' | 'symmetric' | 'horizontal' | 'vertical' | 'concentric' | 'midpoint' | 'fixed';
|
|
11
11
|
export interface ParametricConstraint {
|
|
12
12
|
id: string;
|
package/dist/export/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @module @nice2dev/spatial-core/export
|
|
11
11
|
*/
|
|
12
|
-
import type { FloorPlanDocument } from '../floor-plan';
|
|
12
|
+
import type { FloorPlanDocument } from '../floor-plan/index.js';
|
|
13
13
|
/** Output format for document export. */
|
|
14
14
|
export type DocumentExportFormat = 'nsp' | 'svg' | 'dxf' | 'png' | 'pdf';
|
|
15
15
|
/** Export options. */
|
package/dist/export/index.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @module @nice2dev/spatial-core/export
|
|
11
11
|
*/
|
|
12
|
-
import { serialize } from '../serialization';
|
|
12
|
+
import { serialize } from '../serialization/index.js';
|
|
13
13
|
/* ================================================================
|
|
14
14
|
NSP JSON EXPORT
|
|
15
15
|
================================================================ */
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @module @nice2dev/spatial-core/floor-plan
|
|
10
10
|
*/
|
|
11
|
-
import type { Point2D, BoundingBox } from '../grid/index';
|
|
12
|
-
import type { SpatialObject, RoomType } from '../objects/index';
|
|
13
|
-
export type { SpatialObject, Room, RoomType } from '../objects/index';
|
|
11
|
+
import type { Point2D, BoundingBox } from '../grid/index.js';
|
|
12
|
+
import type { SpatialObject, RoomType } from '../objects/index.js';
|
|
13
|
+
export type { SpatialObject, Room, RoomType } from '../objects/index.js';
|
|
14
14
|
/** Floor plan document - the root object for .nsp.json files. */
|
|
15
15
|
export interface FloorPlanDocument {
|
|
16
16
|
/** Optional document identifier. */
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* - Send { type: 'import', content, format, options } message
|
|
9
9
|
* - Receive { type: 'result', result } or { type: 'progress', progress } messages
|
|
10
10
|
*/
|
|
11
|
-
import type { FileImportFormat, FileImportOptions, FileImportResult } from './index';
|
|
11
|
+
import type { FileImportFormat, FileImportOptions, FileImportResult } from './index.js';
|
|
12
12
|
/** Worker input message. */
|
|
13
13
|
export interface ImportWorkerInput {
|
|
14
14
|
type: 'import';
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* - Send { type: 'import', content, format, options } message
|
|
9
9
|
* - Receive { type: 'result', result } or { type: 'progress', progress } messages
|
|
10
10
|
*/
|
|
11
|
-
import { importFile } from './index';
|
|
11
|
+
import { importFile } from './index.js';
|
|
12
12
|
/* ================================================================
|
|
13
13
|
WORKER MESSAGE HANDLER
|
|
14
14
|
================================================================ */
|
package/dist/import/index.d.ts
CHANGED
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @module @nice2dev/spatial-core/import
|
|
11
11
|
*/
|
|
12
|
-
import type { FloorPlanDocument } from '../floor-plan';
|
|
13
|
-
import type { Point2D } from '../grid';
|
|
12
|
+
import type { FloorPlanDocument } from '../floor-plan/index.js';
|
|
13
|
+
import type { Point2D } from '../grid/index.js';
|
|
14
14
|
/** Import format. */
|
|
15
15
|
export type FileImportFormat = 'dxf' | 'svg' | 'geojson' | 'ifc';
|
|
16
16
|
/** Import options. */
|
|
@@ -107,4 +107,4 @@ export declare function detectFileImportFormat(filename: string, content?: strin
|
|
|
107
107
|
* Import from file (browser File API).
|
|
108
108
|
*/
|
|
109
109
|
export declare function importFromBrowserFile(file: File, options?: Partial<FileImportOptions>): Promise<FileImportResult>;
|
|
110
|
-
export { importFileInWorker, importFileAsync, isWorkerSupported, terminateImportWorker, createImportWorker, type WorkerImportOptions, } from './workerImport';
|
|
110
|
+
export { importFileInWorker, importFileAsync, isWorkerSupported, terminateImportWorker, createImportWorker, type WorkerImportOptions, } from './workerImport.js';
|
package/dist/import/index.js
CHANGED
|
@@ -1088,4 +1088,4 @@ function assembleDocument(walls, zones, objects, layersFound, docInfo) {
|
|
|
1088
1088
|
/* ================================================================
|
|
1089
1089
|
WEB WORKER IMPORT (re-exported)
|
|
1090
1090
|
================================================================ */
|
|
1091
|
-
export { importFileInWorker, importFileAsync, isWorkerSupported, terminateImportWorker, createImportWorker, } from './workerImport';
|
|
1091
|
+
export { importFileInWorker, importFileAsync, isWorkerSupported, terminateImportWorker, createImportWorker, } from './workerImport.js';
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* }
|
|
15
15
|
* ```
|
|
16
16
|
*/
|
|
17
|
-
import type { FileImportFormat, FileImportOptions, FileImportResult } from './index';
|
|
17
|
+
import type { FileImportFormat, FileImportOptions, FileImportResult } from './index.js';
|
|
18
18
|
/** Options for worker-based import. */
|
|
19
19
|
export interface WorkerImportOptions extends Partial<FileImportOptions> {
|
|
20
20
|
/** Progress callback (0-100). */
|
|
@@ -191,7 +191,7 @@ export function terminateImportWorker() {
|
|
|
191
191
|
*/
|
|
192
192
|
export async function importFileAsync(content, format, options = {}) {
|
|
193
193
|
// Import the sync function dynamically to avoid circular deps
|
|
194
|
-
const { importFile } = await import('./index');
|
|
194
|
+
const { importFile } = await import('./index.js');
|
|
195
195
|
if (isWorkerSupported()) {
|
|
196
196
|
try {
|
|
197
197
|
return await importFileInWorker(content, format, options);
|
package/dist/index.d.ts
CHANGED
|
@@ -11,18 +11,18 @@
|
|
|
11
11
|
*
|
|
12
12
|
* @module @nice2dev/spatial-core
|
|
13
13
|
*/
|
|
14
|
-
export * from './grid/index';
|
|
15
|
-
export * from './objects/index';
|
|
16
|
-
export * from './floor-plan/index';
|
|
17
|
-
export { convertLength, convertArea, degToRad, radToDeg, distance3D, manhattanDistance2D, manhattanDistance3D, polylineLength, polygonPerimeter, angleBetweenPoints, angleAtVertex, angleBetweenVectors, normalizeAngle, snapAngle, polygonArea, rectangleArea, circleArea, triangleArea, midpoint2D, midpoint3D, polygonCentroid, lerp2D, lerp3D, projectPointOnLine, pointToLineDistance, formatLength, formatArea, formatAngle, autoFormatLength, autoFormatArea, type UnitSystem, type LengthUnit, type AreaUnit, type AngleUnit, type MeasurementResult, } from './measurement/index';
|
|
18
|
-
export * from './serialization/index';
|
|
19
|
-
export * from './export/index';
|
|
20
|
-
export * from './topology/index';
|
|
21
|
-
export * from './import/index';
|
|
22
|
-
export * from './virtualization/index';
|
|
23
|
-
export * from './unified/index';
|
|
24
|
-
export * from './transitions/index';
|
|
25
|
-
export * from './cad/index';
|
|
26
|
-
export * from './bim/index';
|
|
27
|
-
export * from './interior/index';
|
|
28
|
-
export * from './ecad/index';
|
|
14
|
+
export * from './grid/index.js';
|
|
15
|
+
export * from './objects/index.js';
|
|
16
|
+
export * from './floor-plan/index.js';
|
|
17
|
+
export { convertLength, convertArea, degToRad, radToDeg, distance3D, manhattanDistance2D, manhattanDistance3D, polylineLength, polygonPerimeter, angleBetweenPoints, angleAtVertex, angleBetweenVectors, normalizeAngle, snapAngle, polygonArea, rectangleArea, circleArea, triangleArea, midpoint2D, midpoint3D, polygonCentroid, lerp2D, lerp3D, projectPointOnLine, pointToLineDistance, formatLength, formatArea, formatAngle, autoFormatLength, autoFormatArea, type UnitSystem, type LengthUnit, type AreaUnit, type AngleUnit, type MeasurementResult, } from './measurement/index.js';
|
|
18
|
+
export * from './serialization/index.js';
|
|
19
|
+
export * from './export/index.js';
|
|
20
|
+
export * from './topology/index.js';
|
|
21
|
+
export * from './import/index.js';
|
|
22
|
+
export * from './virtualization/index.js';
|
|
23
|
+
export * from './unified/index.js';
|
|
24
|
+
export * from './transitions/index.js';
|
|
25
|
+
export * from './cad/index.js';
|
|
26
|
+
export * from './bim/index.js';
|
|
27
|
+
export * from './interior/index.js';
|
|
28
|
+
export * from './ecad/index.js';
|
package/dist/index.js
CHANGED
|
@@ -14,15 +14,15 @@
|
|
|
14
14
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
15
15
|
// Grid System
|
|
16
16
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
17
|
-
export * from './grid/index';
|
|
17
|
+
export * from './grid/index.js';
|
|
18
18
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
19
19
|
// Spatial Objects
|
|
20
20
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
21
|
-
export * from './objects/index';
|
|
21
|
+
export * from './objects/index.js';
|
|
22
22
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
23
23
|
// Floor Plan Model
|
|
24
24
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
25
|
-
export * from './floor-plan/index';
|
|
25
|
+
export * from './floor-plan/index.js';
|
|
26
26
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
27
27
|
// Measurement Utilities (excluding distance2D which is in grid)
|
|
28
28
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
@@ -38,48 +38,48 @@ polygonArea, rectangleArea, circleArea, triangleArea,
|
|
|
38
38
|
// Points
|
|
39
39
|
midpoint2D, midpoint3D, polygonCentroid, lerp2D, lerp3D, projectPointOnLine, pointToLineDistance,
|
|
40
40
|
// Formatting
|
|
41
|
-
formatLength, formatArea, formatAngle, autoFormatLength, autoFormatArea, } from './measurement/index';
|
|
41
|
+
formatLength, formatArea, formatAngle, autoFormatLength, autoFormatArea, } from './measurement/index.js';
|
|
42
42
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
43
43
|
// Serialization
|
|
44
44
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
45
|
-
export * from './serialization/index';
|
|
45
|
+
export * from './serialization/index.js';
|
|
46
46
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
47
47
|
// Export (to various formats: NSP, SVG, DXF, PNG, PDF)
|
|
48
48
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
49
|
-
export * from './export/index';
|
|
49
|
+
export * from './export/index.js';
|
|
50
50
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
51
51
|
// Topology Layer (network connections, cable routing, coverage)
|
|
52
52
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
53
|
-
export * from './topology/index';
|
|
53
|
+
export * from './topology/index.js';
|
|
54
54
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
55
55
|
// Import (from DXF, SVG, GeoJSON, IFC)
|
|
56
56
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
57
|
-
export * from './import/index';
|
|
57
|
+
export * from './import/index.js';
|
|
58
58
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
59
59
|
// Virtualization (QuadTree, viewport culling for 1000+ objects)
|
|
60
60
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
61
|
-
export * from './virtualization/index';
|
|
61
|
+
export * from './virtualization/index.js';
|
|
62
62
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
63
63
|
// Unified 2D↔3D System (Shared Object Model, References, Materials, Layers)
|
|
64
64
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
65
|
-
export * from './unified/index';
|
|
65
|
+
export * from './unified/index.js';
|
|
66
66
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
67
67
|
// Editor Transitions (Quick Switch, Split View, Cross-Editor Undo, Bookmarks)
|
|
68
68
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
69
|
-
export * from './transitions/index';
|
|
69
|
+
export * from './transitions/index.js';
|
|
70
70
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
71
71
|
// Professional CAD (Parametric Constraints, Boolean Ops, Assembly, FEA)
|
|
72
72
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
73
|
-
export * from './cad/index';
|
|
73
|
+
export * from './cad/index.js';
|
|
74
74
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
75
75
|
// BIM / AEC (IFC, Revit, MEP, Clash Detection, 4D/5D, Digital Twin)
|
|
76
76
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
77
|
-
export * from './bim/index';
|
|
77
|
+
export * from './bim/index.js';
|
|
78
78
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
79
79
|
// Interior Design (Furniture, Lighting, Materials, Styles, Budget)
|
|
80
80
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
81
|
-
export * from './interior/index';
|
|
81
|
+
export * from './interior/index.js';
|
|
82
82
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
83
83
|
// Electrical & Electronics CAD (Schematic, PCB, SPICE, Harness, Panel, SLD)
|
|
84
84
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
85
|
-
export * from './ecad/index';
|
|
85
|
+
export * from './ecad/index.js';
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @module @nice2dev/spatial-core/measurement
|
|
9
9
|
*/
|
|
10
|
-
import type { Point2D, Point3D } from '../grid/index';
|
|
10
|
+
import type { Point2D, Point3D } from '../grid/index.js';
|
|
11
11
|
/** Unit system. */
|
|
12
12
|
export type UnitSystem = 'metric' | 'imperial';
|
|
13
13
|
/** Length unit. */
|
package/dist/objects/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @module @nice2dev/spatial-core/objects
|
|
10
10
|
*/
|
|
11
|
-
import type { Point2D, Point3D, BoundingBox } from '../grid/index';
|
|
11
|
+
import type { Point2D, Point3D, BoundingBox } from '../grid/index.js';
|
|
12
12
|
/** Transform in 2D space. */
|
|
13
13
|
export interface Transform2D {
|
|
14
14
|
position: Point2D;
|
|
@@ -255,6 +255,7 @@ export interface CatalogItem {
|
|
|
255
255
|
name: string;
|
|
256
256
|
category: ObjectCategory;
|
|
257
257
|
type: string;
|
|
258
|
+
/** NiceIcon name (e.g. `lightbulb`, `camera`). */
|
|
258
259
|
icon?: string;
|
|
259
260
|
thumbnail?: string;
|
|
260
261
|
description?: string;
|
package/dist/objects/index.js
CHANGED
|
@@ -16,7 +16,7 @@ export const OBJECT_CATALOG = [
|
|
|
16
16
|
name: 'Smart Bulb',
|
|
17
17
|
category: 'smart-home',
|
|
18
18
|
type: 'light',
|
|
19
|
-
icon: '
|
|
19
|
+
icon: 'lightbulb',
|
|
20
20
|
tags: ['lighting', 'bulb'],
|
|
21
21
|
},
|
|
22
22
|
{
|
|
@@ -24,7 +24,7 @@ export const OBJECT_CATALOG = [
|
|
|
24
24
|
name: 'Dimmer Switch',
|
|
25
25
|
category: 'smart-home',
|
|
26
26
|
type: 'light-dimmer',
|
|
27
|
-
icon: '
|
|
27
|
+
icon: 'lightbulb',
|
|
28
28
|
tags: ['lighting', 'switch'],
|
|
29
29
|
},
|
|
30
30
|
{
|
|
@@ -32,7 +32,7 @@ export const OBJECT_CATALOG = [
|
|
|
32
32
|
name: 'RGB Light',
|
|
33
33
|
category: 'smart-home',
|
|
34
34
|
type: 'light-rgb',
|
|
35
|
-
icon: '
|
|
35
|
+
icon: 'lightbulb',
|
|
36
36
|
tags: ['lighting', 'color'],
|
|
37
37
|
},
|
|
38
38
|
{
|
|
@@ -40,7 +40,7 @@ export const OBJECT_CATALOG = [
|
|
|
40
40
|
name: 'LED Strip',
|
|
41
41
|
category: 'smart-home',
|
|
42
42
|
type: 'light-strip',
|
|
43
|
-
icon: '
|
|
43
|
+
icon: 'lightbulb',
|
|
44
44
|
tags: ['lighting', 'strip'],
|
|
45
45
|
},
|
|
46
46
|
// Smart Home - Climate
|
|
@@ -49,7 +49,7 @@ export const OBJECT_CATALOG = [
|
|
|
49
49
|
name: 'Thermostat',
|
|
50
50
|
category: 'smart-home',
|
|
51
51
|
type: 'thermostat',
|
|
52
|
-
icon: '
|
|
52
|
+
icon: 'thermometer',
|
|
53
53
|
tags: ['climate', 'temperature'],
|
|
54
54
|
},
|
|
55
55
|
{
|
|
@@ -57,7 +57,7 @@ export const OBJECT_CATALOG = [
|
|
|
57
57
|
name: 'HVAC Unit',
|
|
58
58
|
category: 'smart-home',
|
|
59
59
|
type: 'hvac',
|
|
60
|
-
icon: '
|
|
60
|
+
icon: 'thermometer',
|
|
61
61
|
tags: ['climate', 'cooling', 'heating'],
|
|
62
62
|
},
|
|
63
63
|
{
|
|
@@ -65,7 +65,7 @@ export const OBJECT_CATALOG = [
|
|
|
65
65
|
name: 'Smart Fan',
|
|
66
66
|
category: 'smart-home',
|
|
67
67
|
type: 'fan',
|
|
68
|
-
icon: '
|
|
68
|
+
icon: 'wifi',
|
|
69
69
|
tags: ['climate', 'fan'],
|
|
70
70
|
},
|
|
71
71
|
// Smart Home - Security
|
|
@@ -74,7 +74,7 @@ export const OBJECT_CATALOG = [
|
|
|
74
74
|
name: 'Security Camera',
|
|
75
75
|
category: 'smart-home',
|
|
76
76
|
type: 'camera',
|
|
77
|
-
icon: '
|
|
77
|
+
icon: 'camera',
|
|
78
78
|
tags: ['security', 'camera'],
|
|
79
79
|
},
|
|
80
80
|
{
|
|
@@ -82,7 +82,7 @@ export const OBJECT_CATALOG = [
|
|
|
82
82
|
name: 'Video Doorbell',
|
|
83
83
|
category: 'smart-home',
|
|
84
84
|
type: 'camera-doorbell',
|
|
85
|
-
icon: '
|
|
85
|
+
icon: 'bell',
|
|
86
86
|
tags: ['security', 'doorbell'],
|
|
87
87
|
},
|
|
88
88
|
{
|
|
@@ -90,7 +90,7 @@ export const OBJECT_CATALOG = [
|
|
|
90
90
|
name: 'Smart Lock',
|
|
91
91
|
category: 'smart-home',
|
|
92
92
|
type: 'lock',
|
|
93
|
-
icon: '
|
|
93
|
+
icon: 'lock',
|
|
94
94
|
tags: ['security', 'lock'],
|
|
95
95
|
},
|
|
96
96
|
{
|
|
@@ -98,7 +98,7 @@ export const OBJECT_CATALOG = [
|
|
|
98
98
|
name: 'Motion Sensor',
|
|
99
99
|
category: 'smart-home',
|
|
100
100
|
type: 'sensor-motion',
|
|
101
|
-
icon: '
|
|
101
|
+
icon: 'eye',
|
|
102
102
|
tags: ['security', 'sensor'],
|
|
103
103
|
},
|
|
104
104
|
{
|
|
@@ -106,7 +106,7 @@ export const OBJECT_CATALOG = [
|
|
|
106
106
|
name: 'Door Sensor',
|
|
107
107
|
category: 'smart-home',
|
|
108
108
|
type: 'sensor-door',
|
|
109
|
-
icon: '
|
|
109
|
+
icon: 'door',
|
|
110
110
|
tags: ['security', 'sensor'],
|
|
111
111
|
},
|
|
112
112
|
// Smart Home - Audio/Video
|
|
@@ -115,7 +115,7 @@ export const OBJECT_CATALOG = [
|
|
|
115
115
|
name: 'Smart Speaker',
|
|
116
116
|
category: 'smart-home',
|
|
117
117
|
type: 'speaker',
|
|
118
|
-
icon: '
|
|
118
|
+
icon: 'wifi',
|
|
119
119
|
tags: ['audio', 'speaker'],
|
|
120
120
|
},
|
|
121
121
|
{
|
|
@@ -123,7 +123,7 @@ export const OBJECT_CATALOG = [
|
|
|
123
123
|
name: 'Voice Assistant',
|
|
124
124
|
category: 'smart-home',
|
|
125
125
|
type: 'voice-assistant',
|
|
126
|
-
icon: '
|
|
126
|
+
icon: 'mic',
|
|
127
127
|
tags: ['audio', 'assistant'],
|
|
128
128
|
},
|
|
129
129
|
{
|
|
@@ -131,7 +131,7 @@ export const OBJECT_CATALOG = [
|
|
|
131
131
|
name: 'Smart TV',
|
|
132
132
|
category: 'smart-home',
|
|
133
133
|
type: 'tv',
|
|
134
|
-
icon: '
|
|
134
|
+
icon: 'monitor',
|
|
135
135
|
tags: ['video', 'tv'],
|
|
136
136
|
},
|
|
137
137
|
// Furniture - Seating
|
|
@@ -264,7 +264,7 @@ export const OBJECT_CATALOG = [
|
|
|
264
264
|
name: 'Router',
|
|
265
265
|
category: 'network',
|
|
266
266
|
type: 'router',
|
|
267
|
-
icon: '
|
|
267
|
+
icon: 'wifi',
|
|
268
268
|
tags: ['network', 'router'],
|
|
269
269
|
},
|
|
270
270
|
{
|
|
@@ -272,7 +272,7 @@ export const OBJECT_CATALOG = [
|
|
|
272
272
|
name: '24-Port Switch',
|
|
273
273
|
category: 'network',
|
|
274
274
|
type: 'switch',
|
|
275
|
-
icon: '
|
|
275
|
+
icon: 'plug',
|
|
276
276
|
tags: ['network', 'switch'],
|
|
277
277
|
},
|
|
278
278
|
{
|
|
@@ -280,7 +280,7 @@ export const OBJECT_CATALOG = [
|
|
|
280
280
|
name: '48-Port Switch',
|
|
281
281
|
category: 'network',
|
|
282
282
|
type: 'switch',
|
|
283
|
-
icon: '
|
|
283
|
+
icon: 'plug',
|
|
284
284
|
tags: ['network', 'switch'],
|
|
285
285
|
},
|
|
286
286
|
{
|
|
@@ -288,7 +288,7 @@ export const OBJECT_CATALOG = [
|
|
|
288
288
|
name: 'Firewall',
|
|
289
289
|
category: 'network',
|
|
290
290
|
type: 'firewall',
|
|
291
|
-
icon: '
|
|
291
|
+
icon: 'lock',
|
|
292
292
|
tags: ['network', 'security'],
|
|
293
293
|
},
|
|
294
294
|
{
|
|
@@ -296,7 +296,7 @@ export const OBJECT_CATALOG = [
|
|
|
296
296
|
name: 'WiFi Access Point',
|
|
297
297
|
category: 'network',
|
|
298
298
|
type: 'access-point',
|
|
299
|
-
icon: '
|
|
299
|
+
icon: 'wifi',
|
|
300
300
|
tags: ['network', 'wifi'],
|
|
301
301
|
},
|
|
302
302
|
{
|
|
@@ -304,7 +304,7 @@ export const OBJECT_CATALOG = [
|
|
|
304
304
|
name: 'Server',
|
|
305
305
|
category: 'network',
|
|
306
306
|
type: 'server',
|
|
307
|
-
icon: '
|
|
307
|
+
icon: 'monitor',
|
|
308
308
|
tags: ['network', 'server'],
|
|
309
309
|
},
|
|
310
310
|
{
|
|
@@ -312,7 +312,7 @@ export const OBJECT_CATALOG = [
|
|
|
312
312
|
name: 'NAS Storage',
|
|
313
313
|
category: 'network',
|
|
314
314
|
type: 'nas',
|
|
315
|
-
icon: '
|
|
315
|
+
icon: 'database',
|
|
316
316
|
tags: ['network', 'storage'],
|
|
317
317
|
},
|
|
318
318
|
// Infrastructure
|
|
@@ -321,7 +321,7 @@ export const OBJECT_CATALOG = [
|
|
|
321
321
|
name: '42U Rack',
|
|
322
322
|
category: 'infrastructure',
|
|
323
323
|
type: 'rack-42u',
|
|
324
|
-
icon: '
|
|
324
|
+
icon: 'server',
|
|
325
325
|
defaultSize: { x: 0.6, y: 1.0, z: 2.0 },
|
|
326
326
|
tags: ['datacenter', 'rack'],
|
|
327
327
|
},
|
|
@@ -330,7 +330,7 @@ export const OBJECT_CATALOG = [
|
|
|
330
330
|
name: '24U Rack',
|
|
331
331
|
category: 'infrastructure',
|
|
332
332
|
type: 'rack-24u',
|
|
333
|
-
icon: '
|
|
333
|
+
icon: 'server',
|
|
334
334
|
defaultSize: { x: 0.6, y: 1.0, z: 1.2 },
|
|
335
335
|
tags: ['datacenter', 'rack'],
|
|
336
336
|
},
|
|
@@ -339,7 +339,7 @@ export const OBJECT_CATALOG = [
|
|
|
339
339
|
name: 'UPS',
|
|
340
340
|
category: 'infrastructure',
|
|
341
341
|
type: 'ups-floor',
|
|
342
|
-
icon: '
|
|
342
|
+
icon: 'zap',
|
|
343
343
|
tags: ['datacenter', 'power'],
|
|
344
344
|
},
|
|
345
345
|
{
|
|
@@ -347,7 +347,7 @@ export const OBJECT_CATALOG = [
|
|
|
347
347
|
name: 'PDU',
|
|
348
348
|
category: 'infrastructure',
|
|
349
349
|
type: 'pdu-vertical',
|
|
350
|
-
icon: '
|
|
350
|
+
icon: 'zap',
|
|
351
351
|
tags: ['datacenter', 'power'],
|
|
352
352
|
},
|
|
353
353
|
{
|
|
@@ -355,7 +355,7 @@ export const OBJECT_CATALOG = [
|
|
|
355
355
|
name: 'CRAC Unit',
|
|
356
356
|
category: 'infrastructure',
|
|
357
357
|
type: 'cooling-crac',
|
|
358
|
-
icon: '
|
|
358
|
+
icon: 'thermometer',
|
|
359
359
|
tags: ['datacenter', 'cooling'],
|
|
360
360
|
},
|
|
361
361
|
// Building Elements
|
|
@@ -364,7 +364,7 @@ export const OBJECT_CATALOG = [
|
|
|
364
364
|
name: 'Wall',
|
|
365
365
|
category: 'building',
|
|
366
366
|
type: 'wall',
|
|
367
|
-
icon: '
|
|
367
|
+
icon: 'square',
|
|
368
368
|
tags: ['building', 'wall'],
|
|
369
369
|
},
|
|
370
370
|
{
|
|
@@ -372,7 +372,7 @@ export const OBJECT_CATALOG = [
|
|
|
372
372
|
name: 'Door',
|
|
373
373
|
category: 'building',
|
|
374
374
|
type: 'door',
|
|
375
|
-
icon: '
|
|
375
|
+
icon: 'door',
|
|
376
376
|
tags: ['building', 'door'],
|
|
377
377
|
},
|
|
378
378
|
{
|
|
@@ -380,7 +380,7 @@ export const OBJECT_CATALOG = [
|
|
|
380
380
|
name: 'Window',
|
|
381
381
|
category: 'building',
|
|
382
382
|
type: 'window',
|
|
383
|
-
icon: '
|
|
383
|
+
icon: 'window',
|
|
384
384
|
tags: ['building', 'window'],
|
|
385
385
|
},
|
|
386
386
|
{
|
|
@@ -388,7 +388,7 @@ export const OBJECT_CATALOG = [
|
|
|
388
388
|
name: 'Staircase',
|
|
389
389
|
category: 'building',
|
|
390
390
|
type: 'stair',
|
|
391
|
-
icon: '
|
|
391
|
+
icon: 'stairs',
|
|
392
392
|
tags: ['building', 'stair'],
|
|
393
393
|
},
|
|
394
394
|
// Game Objects
|
|
@@ -397,7 +397,7 @@ export const OBJECT_CATALOG = [
|
|
|
397
397
|
name: 'Spawn Point',
|
|
398
398
|
category: 'game',
|
|
399
399
|
type: 'spawn-point',
|
|
400
|
-
icon: '
|
|
400
|
+
icon: 'target',
|
|
401
401
|
tags: ['game', 'spawn'],
|
|
402
402
|
},
|
|
403
403
|
{
|
|
@@ -405,7 +405,7 @@ export const OBJECT_CATALOG = [
|
|
|
405
405
|
name: 'Checkpoint',
|
|
406
406
|
category: 'game',
|
|
407
407
|
type: 'checkpoint',
|
|
408
|
-
icon: '
|
|
408
|
+
icon: 'target',
|
|
409
409
|
tags: ['game', 'checkpoint'],
|
|
410
410
|
},
|
|
411
411
|
{
|
|
@@ -413,7 +413,7 @@ export const OBJECT_CATALOG = [
|
|
|
413
413
|
name: 'Trigger Zone',
|
|
414
414
|
category: 'game',
|
|
415
415
|
type: 'trigger-zone',
|
|
416
|
-
icon: '
|
|
416
|
+
icon: 'zap',
|
|
417
417
|
tags: ['game', 'trigger'],
|
|
418
418
|
},
|
|
419
419
|
{
|
|
@@ -421,7 +421,7 @@ export const OBJECT_CATALOG = [
|
|
|
421
421
|
name: 'Item Pickup',
|
|
422
422
|
category: 'game',
|
|
423
423
|
type: 'item-pickup',
|
|
424
|
-
icon: '
|
|
424
|
+
icon: 'box',
|
|
425
425
|
tags: ['game', 'item'],
|
|
426
426
|
},
|
|
427
427
|
{
|
|
@@ -429,7 +429,7 @@ export const OBJECT_CATALOG = [
|
|
|
429
429
|
name: 'Enemy Spawner',
|
|
430
430
|
category: 'game',
|
|
431
431
|
type: 'enemy-spawner',
|
|
432
|
-
icon: '
|
|
432
|
+
icon: 'gamepad',
|
|
433
433
|
tags: ['game', 'enemy'],
|
|
434
434
|
},
|
|
435
435
|
];
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @module @nice2dev/spatial-core/serialization
|
|
12
12
|
*/
|
|
13
|
-
import type { FloorPlanDocument, Floor } from '../floor-plan/index';
|
|
13
|
+
import type { FloorPlanDocument, Floor } from '../floor-plan/index.js';
|
|
14
14
|
/** Serialization options. */
|
|
15
15
|
export interface SerializationOptions {
|
|
16
16
|
/** Pretty print JSON (default: false). */
|
package/dist/topology/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @module @nice2dev/spatial-core/topology
|
|
12
12
|
*/
|
|
13
|
-
import type { Point2D, BoundingBox } from '../grid';
|
|
13
|
+
import type { Point2D, BoundingBox } from '../grid/index.js';
|
|
14
14
|
/** Connection medium type. */
|
|
15
15
|
export type ConnectionMedium = 'ethernet-cat5' | 'ethernet-cat6' | 'ethernet-cat6a' | 'ethernet-cat7' | 'fiber-single' | 'fiber-multi' | 'coax' | 'power-line' | 'wifi-2.4ghz' | 'wifi-5ghz' | 'wifi-6ghz' | 'bluetooth' | 'zigbee' | 'z-wave' | 'thread' | 'matter' | 'lora' | 'cellular-4g' | 'cellular-5g' | 'serial' | 'usb' | 'hdmi' | 'displayport' | 'custom';
|
|
16
16
|
/** Connection status. */
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*
|
|
15
15
|
* @module @nice2dev/spatial-core/transitions
|
|
16
16
|
*/
|
|
17
|
-
import type { Point2D, Point3D } from '../grid/index';
|
|
17
|
+
import type { Point2D, Point3D } from '../grid/index.js';
|
|
18
18
|
export type ActiveEditor = '2d' | '3d' | 'split';
|
|
19
19
|
export interface EditorTransitionState {
|
|
20
20
|
/** Currently active editor */
|
package/dist/unified/index.d.ts
CHANGED
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
*
|
|
15
15
|
* @module @nice2dev/spatial-core/unified
|
|
16
16
|
*/
|
|
17
|
-
import type { Point2D, Point3D } from '../grid/index';
|
|
18
|
-
import type { SpatialObject, Transform2D, Transform3D } from '../objects/index';
|
|
17
|
+
import type { Point2D, Point3D } from '../grid/index.js';
|
|
18
|
+
import type { SpatialObject, Transform2D, Transform3D } from '../objects/index.js';
|
|
19
19
|
/** SpatialObject3D extends the base SpatialObject with full 3D support. */
|
|
20
20
|
export interface SpatialObject3D extends Omit<SpatialObject, 'transform'> {
|
|
21
21
|
transform2D: Transform2D;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Calculates visible bounds and filters objects for rendering optimization.
|
|
5
5
|
*/
|
|
6
|
-
import type { Bounds, QuadTree, QuadTreeItem } from './QuadTree';
|
|
6
|
+
import type { Bounds, QuadTree, QuadTreeItem } from './QuadTree.js';
|
|
7
7
|
/** Viewport state with pan/zoom */
|
|
8
8
|
export interface ViewportState {
|
|
9
9
|
/** Current zoom level (1 = 100%) */
|
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* Provides spatial indexing (QuadTree) and viewport culling utilities
|
|
5
5
|
* for rendering optimization with 1000+ objects.
|
|
6
6
|
*/
|
|
7
|
-
export { QuadTree, createFloorPlanQuadTree, type Bounds, type QuadTreeItem
|
|
8
|
-
export { calculateVisibleBounds, isInViewport, filterVisibleItems, queryVisibleFromQuadTree, shouldUseVirtualRendering, calculateRenderStats, createQuadTreeUpdater, type ViewportState, type ContainerSize, } from './ViewportCulling';
|
|
7
|
+
export { QuadTree, createFloorPlanQuadTree, type Bounds, type QuadTreeItem } from './QuadTree.js';
|
|
8
|
+
export { calculateVisibleBounds, isInViewport, filterVisibleItems, queryVisibleFromQuadTree, shouldUseVirtualRendering, calculateRenderStats, createQuadTreeUpdater, type ViewportState, type ContainerSize, } from './ViewportCulling.js';
|