@pascal-app/core 0.1.3
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/events/bus.d.ts +42 -0
- package/dist/events/bus.d.ts.map +1 -0
- package/dist/events/bus.js +13 -0
- package/dist/hooks/scene-registry/scene-registry.d.ts +18 -0
- package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -0
- package/dist/hooks/scene-registry/scene-registry.js +35 -0
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +90 -0
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -0
- package/dist/hooks/spatial-grid/spatial-grid-manager.js +466 -0
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +4 -0
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -0
- package/dist/hooks/spatial-grid/spatial-grid-sync.js +115 -0
- package/dist/hooks/spatial-grid/spatial-grid.d.ts +23 -0
- package/dist/hooks/spatial-grid/spatial-grid.d.ts.map +1 -0
- package/dist/hooks/spatial-grid/spatial-grid.js +115 -0
- package/dist/hooks/spatial-grid/use-spatial-query.d.ts +16 -0
- package/dist/hooks/spatial-grid/use-spatial-query.d.ts.map +1 -0
- package/dist/hooks/spatial-grid/use-spatial-query.js +14 -0
- package/dist/hooks/spatial-grid/wall-spatial-grid.d.ts +47 -0
- package/dist/hooks/spatial-grid/wall-spatial-grid.d.ts.map +1 -0
- package/dist/hooks/spatial-grid/wall-spatial-grid.js +113 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/lib/asset-storage.d.ts +11 -0
- package/dist/lib/asset-storage.d.ts.map +1 -0
- package/dist/lib/asset-storage.js +48 -0
- package/dist/lib/space-detection.d.ts +34 -0
- package/dist/lib/space-detection.d.ts.map +1 -0
- package/dist/lib/space-detection.js +499 -0
- package/dist/schema/base.d.ts +30 -0
- package/dist/schema/base.d.ts.map +1 -0
- package/dist/schema/base.js +25 -0
- package/dist/schema/camera.d.ts +13 -0
- package/dist/schema/camera.d.ts.map +1 -0
- package/dist/schema/camera.js +9 -0
- package/dist/schema/index.d.ts +17 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +18 -0
- package/dist/schema/nodes/building.d.ts +25 -0
- package/dist/schema/nodes/building.d.ts.map +1 -0
- package/dist/schema/nodes/building.js +16 -0
- package/dist/schema/nodes/ceiling.d.ts +25 -0
- package/dist/schema/nodes/ceiling.d.ts.map +1 -0
- package/dist/schema/nodes/ceiling.js +16 -0
- package/dist/schema/nodes/guide.d.ts +27 -0
- package/dist/schema/nodes/guide.d.ts.map +1 -0
- package/dist/schema/nodes/guide.js +11 -0
- package/dist/schema/nodes/item.d.ts +65 -0
- package/dist/schema/nodes/item.d.ts.map +1 -0
- package/dist/schema/nodes/item.js +38 -0
- package/dist/schema/nodes/level.d.ts +24 -0
- package/dist/schema/nodes/level.d.ts.map +1 -0
- package/dist/schema/nodes/level.js +21 -0
- package/dist/schema/nodes/roof.d.ts +28 -0
- package/dist/schema/nodes/roof.d.ts.map +1 -0
- package/dist/schema/nodes/roof.js +28 -0
- package/dist/schema/nodes/scan.d.ts +27 -0
- package/dist/schema/nodes/scan.d.ts.map +1 -0
- package/dist/schema/nodes/scan.js +11 -0
- package/dist/schema/nodes/site.d.ts +90 -0
- package/dist/schema/nodes/site.d.ts.map +1 -0
- package/dist/schema/nodes/site.js +39 -0
- package/dist/schema/nodes/slab.d.ts +24 -0
- package/dist/schema/nodes/slab.d.ts.map +1 -0
- package/dist/schema/nodes/slab.js +15 -0
- package/dist/schema/nodes/wall.d.ts +37 -0
- package/dist/schema/nodes/wall.d.ts.map +1 -0
- package/dist/schema/nodes/wall.js +30 -0
- package/dist/schema/nodes/zone.d.ts +24 -0
- package/dist/schema/nodes/zone.d.ts.map +1 -0
- package/dist/schema/nodes/zone.js +22 -0
- package/dist/schema/types.d.ts +339 -0
- package/dist/schema/types.d.ts.map +1 -0
- package/dist/schema/types.js +25 -0
- package/dist/store/actions/node-actions.d.ts +12 -0
- package/dist/store/actions/node-actions.d.ts.map +1 -0
- package/dist/store/actions/node-actions.js +121 -0
- package/dist/store/use-scene.d.ts +31 -0
- package/dist/store/use-scene.d.ts.map +1 -0
- package/dist/store/use-scene.js +127 -0
- package/dist/systems/ceiling/ceiling-system.d.ts +8 -0
- package/dist/systems/ceiling/ceiling-system.d.ts.map +1 -0
- package/dist/systems/ceiling/ceiling-system.js +65 -0
- package/dist/systems/item/item-system.d.ts +2 -0
- package/dist/systems/item/item-system.d.ts.map +1 -0
- package/dist/systems/item/item-system.js +43 -0
- package/dist/systems/roof/roof-system.d.ts +8 -0
- package/dist/systems/roof/roof-system.d.ts.map +1 -0
- package/dist/systems/roof/roof-system.js +254 -0
- package/dist/systems/slab/slab-system.d.ts +8 -0
- package/dist/systems/slab/slab-system.d.ts.map +1 -0
- package/dist/systems/slab/slab-system.js +117 -0
- package/dist/systems/wall/wall-mitering.d.ts +32 -0
- package/dist/systems/wall/wall-mitering.d.ts.map +1 -0
- package/dist/systems/wall/wall-mitering.js +214 -0
- package/dist/systems/wall/wall-system.d.ts +12 -0
- package/dist/systems/wall/wall-system.d.ts.map +1 -0
- package/dist/systems/wall/wall-system.js +286 -0
- package/dist/utils/types.d.ts +6 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +7 -0
- package/package.json +58 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { ThreeEvent } from '@react-three/fiber';
|
|
2
|
+
import type { BuildingNode, CeilingNode, ItemNode, LevelNode, RoofNode, SlabNode, WallNode, ZoneNode } from '../schema';
|
|
3
|
+
import type { AnyNode } from '../schema/types';
|
|
4
|
+
export interface GridEvent {
|
|
5
|
+
position: [number, number, number];
|
|
6
|
+
nativeEvent: ThreeEvent<PointerEvent>;
|
|
7
|
+
}
|
|
8
|
+
export interface NodeEvent<T extends AnyNode = AnyNode> {
|
|
9
|
+
node: T;
|
|
10
|
+
position: [number, number, number];
|
|
11
|
+
localPosition: [number, number, number];
|
|
12
|
+
normal?: [number, number, number];
|
|
13
|
+
stopPropagation: () => void;
|
|
14
|
+
nativeEvent: ThreeEvent<PointerEvent>;
|
|
15
|
+
}
|
|
16
|
+
export type WallEvent = NodeEvent<WallNode>;
|
|
17
|
+
export type ItemEvent = NodeEvent<ItemNode>;
|
|
18
|
+
export type BuildingEvent = NodeEvent<BuildingNode>;
|
|
19
|
+
export type LevelEvent = NodeEvent<LevelNode>;
|
|
20
|
+
export type ZoneEvent = NodeEvent<ZoneNode>;
|
|
21
|
+
export type SlabEvent = NodeEvent<SlabNode>;
|
|
22
|
+
export type CeilingEvent = NodeEvent<CeilingNode>;
|
|
23
|
+
export type RoofEvent = NodeEvent<RoofNode>;
|
|
24
|
+
export declare const eventSuffixes: readonly ["click", "move", "enter", "leave", "pointerdown", "pointerup", "context-menu", "double-click"];
|
|
25
|
+
export type EventSuffix = (typeof eventSuffixes)[number];
|
|
26
|
+
type NodeEvents<T extends string, E> = {
|
|
27
|
+
[K in `${T}:${EventSuffix}`]: E;
|
|
28
|
+
};
|
|
29
|
+
type GridEvents = {
|
|
30
|
+
[K in `grid:${EventSuffix}`]: GridEvent;
|
|
31
|
+
};
|
|
32
|
+
export interface CameraControlEvent {
|
|
33
|
+
nodeId: AnyNode['id'];
|
|
34
|
+
}
|
|
35
|
+
type CameraControlEvents = {
|
|
36
|
+
'camera-controls:view': CameraControlEvent;
|
|
37
|
+
'camera-controls:capture': CameraControlEvent;
|
|
38
|
+
};
|
|
39
|
+
type EditorEvents = GridEvents & NodeEvents<'wall', WallEvent> & NodeEvents<'item', ItemEvent> & NodeEvents<'building', BuildingEvent> & NodeEvents<'level', LevelEvent> & NodeEvents<'zone', ZoneEvent> & NodeEvents<'slab', SlabEvent> & NodeEvents<'ceiling', CeilingEvent> & NodeEvents<'roof', RoofEvent> & CameraControlEvents;
|
|
40
|
+
export declare const emitter: import("mitt").Emitter<EditorEvents>;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=bus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bus.d.ts","sourceRoot":"","sources":["../../src/events/bus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACvH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAG9C,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,WAAW,EAAE,UAAU,CAAC,YAAY,CAAC,CAAA;CACtC;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO;IACpD,IAAI,EAAE,CAAC,CAAA;IACP,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,WAAW,EAAE,UAAU,CAAC,YAAY,CAAC,CAAA;CACtC;AAED,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAC3C,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAC3C,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;AACnD,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,CAAA;AAC7C,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAC3C,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAC3C,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;AACjD,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAG3C,eAAO,MAAM,aAAa,0GAShB,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAExD,KAAK,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI;KACpC,CAAC,IAAI,GAAG,CAAC,IAAI,WAAW,EAAE,GAAG,CAAC;CAChC,CAAA;AAED,KAAK,UAAU,GAAG;KACf,CAAC,IAAI,QAAQ,WAAW,EAAE,GAAG,SAAS;CACxC,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AAED,KAAK,mBAAmB,GAAG;IACzB,sBAAsB,EAAE,kBAAkB,CAAA;IAC1C,yBAAyB,EAAE,kBAAkB,CAAA;CAC9C,CAAA;AAED,KAAK,YAAY,GAAG,UAAU,GAC5B,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,GAC7B,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,GAC7B,UAAU,CAAC,UAAU,EAAE,aAAa,CAAC,GACrC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,GAC/B,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,GAC7B,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,GAC7B,UAAU,CAAC,SAAS,EAAE,YAAY,CAAC,GACnC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,GAC7B,mBAAmB,CAAA;AAErB,eAAO,MAAM,OAAO,sCAAuB,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import mitt from 'mitt';
|
|
2
|
+
// Event suffixes - exported for use in hooks
|
|
3
|
+
export const eventSuffixes = [
|
|
4
|
+
'click',
|
|
5
|
+
'move',
|
|
6
|
+
'enter',
|
|
7
|
+
'leave',
|
|
8
|
+
'pointerdown',
|
|
9
|
+
'pointerup',
|
|
10
|
+
'context-menu',
|
|
11
|
+
'double-click',
|
|
12
|
+
];
|
|
13
|
+
export const emitter = mitt();
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type * as THREE from "three";
|
|
2
|
+
export declare const sceneRegistry: {
|
|
3
|
+
nodes: Map<string, THREE.Object3D<THREE.Object3DEventMap>>;
|
|
4
|
+
byType: {
|
|
5
|
+
building: Set<string>;
|
|
6
|
+
ceiling: Set<string>;
|
|
7
|
+
level: Set<string>;
|
|
8
|
+
wall: Set<string>;
|
|
9
|
+
item: Set<string>;
|
|
10
|
+
slab: Set<string>;
|
|
11
|
+
zone: Set<string>;
|
|
12
|
+
roof: Set<string>;
|
|
13
|
+
scan: Set<string>;
|
|
14
|
+
guide: Set<string>;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export declare function useRegistry(id: string, type: keyof typeof sceneRegistry.byType, ref: React.RefObject<THREE.Object3D>): void;
|
|
18
|
+
//# sourceMappingURL=scene-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-registry.d.ts","sourceRoot":"","sources":["../../../src/hooks/scene-registry/scene-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;CAkBzB,CAAC;AAEF,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,OAAO,aAAa,CAAC,MAAM,EACvC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,QAkBrC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { useLayoutEffect } from "react";
|
|
2
|
+
export const sceneRegistry = {
|
|
3
|
+
// Master lookup: ID -> Object3D
|
|
4
|
+
nodes: new Map(),
|
|
5
|
+
// Categorized lookups: Type -> Set of IDs
|
|
6
|
+
// Using a Set is faster for adding/deleting than an Array
|
|
7
|
+
byType: {
|
|
8
|
+
building: new Set(),
|
|
9
|
+
ceiling: new Set(),
|
|
10
|
+
level: new Set(),
|
|
11
|
+
wall: new Set(),
|
|
12
|
+
item: new Set(),
|
|
13
|
+
slab: new Set(),
|
|
14
|
+
zone: new Set(),
|
|
15
|
+
roof: new Set(),
|
|
16
|
+
scan: new Set(),
|
|
17
|
+
guide: new Set(),
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
export function useRegistry(id, type, ref) {
|
|
21
|
+
useLayoutEffect(() => {
|
|
22
|
+
const obj = ref.current;
|
|
23
|
+
if (!obj)
|
|
24
|
+
return;
|
|
25
|
+
// 1. Add to master map
|
|
26
|
+
sceneRegistry.nodes.set(id, obj);
|
|
27
|
+
// 2. Add to type-specific set
|
|
28
|
+
sceneRegistry.byType[type].add(id);
|
|
29
|
+
// 4. Cleanup when component unmounts
|
|
30
|
+
return () => {
|
|
31
|
+
sceneRegistry.nodes.delete(id);
|
|
32
|
+
sceneRegistry.byType[type].delete(id);
|
|
33
|
+
};
|
|
34
|
+
}, [id, type, ref]);
|
|
35
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { AnyNode } from '../../schema';
|
|
2
|
+
/**
|
|
3
|
+
* Point-in-polygon test using ray casting algorithm.
|
|
4
|
+
*/
|
|
5
|
+
export declare function pointInPolygon(px: number, pz: number, polygon: Array<[number, number]>): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Test if an item's footprint overlaps with a polygon.
|
|
8
|
+
* Checks: any item corner inside polygon, or any polygon vertex inside item AABB, or edges intersect.
|
|
9
|
+
*/
|
|
10
|
+
export declare function itemOverlapsPolygon(position: [number, number, number], dimensions: [number, number, number], rotation: [number, number, number], polygon: Array<[number, number]>, inset?: number): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Test if a wall segment overlaps with a polygon.
|
|
13
|
+
* A wall is considered to overlap if:
|
|
14
|
+
* - Its midpoint is inside the polygon (wall crosses through)
|
|
15
|
+
* - At least one endpoint is inside (wall partially or fully in slab)
|
|
16
|
+
* - It's collinear with and overlaps a polygon edge (wall on slab boundary)
|
|
17
|
+
*
|
|
18
|
+
* Note: A wall with just one endpoint touching the edge but the rest outside
|
|
19
|
+
* is NOT considered overlapping (adjacent only).
|
|
20
|
+
*/
|
|
21
|
+
export declare function wallOverlapsPolygon(start: [number, number], end: [number, number], polygon: Array<[number, number]>): boolean;
|
|
22
|
+
export declare class SpatialGridManager {
|
|
23
|
+
private cellSize;
|
|
24
|
+
private floorGrids;
|
|
25
|
+
private wallGrids;
|
|
26
|
+
private walls;
|
|
27
|
+
private slabsByLevel;
|
|
28
|
+
private ceilingGrids;
|
|
29
|
+
private ceilings;
|
|
30
|
+
private itemCeilingMap;
|
|
31
|
+
constructor(cellSize?: number);
|
|
32
|
+
private getFloorGrid;
|
|
33
|
+
private getWallGrid;
|
|
34
|
+
private getWallLength;
|
|
35
|
+
private getWallHeight;
|
|
36
|
+
private getCeilingGrid;
|
|
37
|
+
private getSlabMap;
|
|
38
|
+
handleNodeCreated(node: AnyNode, levelId: string): void;
|
|
39
|
+
handleNodeUpdated(node: AnyNode, levelId: string): void;
|
|
40
|
+
handleNodeDeleted(nodeId: string, nodeType: string, levelId: string): string[];
|
|
41
|
+
canPlaceOnFloor(levelId: string, position: [number, number, number], dimensions: [number, number, number], rotation: [number, number, number], ignoreIds?: string[]): {
|
|
42
|
+
valid: boolean;
|
|
43
|
+
conflictIds: string[];
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Check if an item can be placed on a wall
|
|
47
|
+
* @param levelId - the level containing the wall
|
|
48
|
+
* @param wallId - the wall to check
|
|
49
|
+
* @param localX - X position in wall-local space (distance from wall start)
|
|
50
|
+
* @param localY - Y position (height from floor)
|
|
51
|
+
* @param dimensions - item dimensions [width, height, depth]
|
|
52
|
+
* @param attachType - 'wall' (needs both sides) or 'wall-side' (needs one side)
|
|
53
|
+
* @param side - which side for 'wall-side' items
|
|
54
|
+
* @param ignoreIds - item IDs to ignore in collision check
|
|
55
|
+
*/
|
|
56
|
+
canPlaceOnWall(levelId: string, wallId: string, localX: number, localY: number, dimensions: [number, number, number], attachType?: 'wall' | 'wall-side', side?: 'front' | 'back', ignoreIds?: string[]): {
|
|
57
|
+
valid: boolean;
|
|
58
|
+
conflictIds: string[];
|
|
59
|
+
};
|
|
60
|
+
getWallForItem(levelId: string, itemId: string): string | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* Get the total slab elevation at a given (x, z) position on a level.
|
|
63
|
+
* Returns the highest slab elevation if the point is inside any slab polygon, otherwise 0.
|
|
64
|
+
*/
|
|
65
|
+
getSlabElevationAt(levelId: string, x: number, z: number): number;
|
|
66
|
+
/**
|
|
67
|
+
* Get the slab elevation for an item using its full footprint (bounding box).
|
|
68
|
+
* Checks if any part of the item's rotated footprint overlaps with any slab polygon.
|
|
69
|
+
* Returns the highest overlapping slab elevation, or 0 if none.
|
|
70
|
+
*/
|
|
71
|
+
getSlabElevationForItem(levelId: string, position: [number, number, number], dimensions: [number, number, number], rotation: [number, number, number]): number;
|
|
72
|
+
/**
|
|
73
|
+
* Get the slab elevation for a wall by checking if it overlaps with any slab polygon.
|
|
74
|
+
* Uses wallOverlapsPolygon which handles edge cases (points on boundary, collinear segments).
|
|
75
|
+
* Returns the highest slab elevation found, or 0 if none.
|
|
76
|
+
*/
|
|
77
|
+
getSlabElevationForWall(levelId: string, start: [number, number], end: [number, number]): number;
|
|
78
|
+
/**
|
|
79
|
+
* Check if an item can be placed on a ceiling.
|
|
80
|
+
* Validates that the footprint is within the ceiling polygon and doesn't overlap other ceiling items.
|
|
81
|
+
*/
|
|
82
|
+
canPlaceOnCeiling(ceilingId: string, position: [number, number, number], dimensions: [number, number, number], rotation: [number, number, number], ignoreIds?: string[]): {
|
|
83
|
+
valid: boolean;
|
|
84
|
+
conflictIds: string[];
|
|
85
|
+
};
|
|
86
|
+
clearLevel(levelId: string): void;
|
|
87
|
+
clear(): void;
|
|
88
|
+
}
|
|
89
|
+
export declare const spatialGridManager: SpatialGridManager;
|
|
90
|
+
//# sourceMappingURL=spatial-grid-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spatial-grid-manager.d.ts","sourceRoot":"","sources":["../../../src/hooks/spatial-grid/spatial-grid-manager.ts"],"names":[],"mappings":"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"}
|