@2112-lab/central-plant 0.1.0
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/README.md +0 -0
- package/dist/bundle/index.js +14259 -0
- package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js +353 -0
- package/dist/cjs/node_modules/three/examples/jsm/controls/OrbitControls.js +1292 -0
- package/dist/cjs/node_modules/three/examples/jsm/controls/TransformControls.js +1543 -0
- package/dist/cjs/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4374 -0
- package/dist/cjs/node_modules/three/examples/jsm/loaders/RGBELoader.js +465 -0
- package/dist/cjs/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +117 -0
- package/dist/cjs/src/ConnectionManager.js +114 -0
- package/dist/cjs/src/Pathfinder.js +88 -0
- package/dist/cjs/src/animationManager.js +121 -0
- package/dist/cjs/src/componentManager.js +151 -0
- package/dist/cjs/src/debugLogger.js +176 -0
- package/dist/cjs/src/disposalManager.js +185 -0
- package/dist/cjs/src/environmentManager.js +1015 -0
- package/dist/cjs/src/hotReloadManager.js +252 -0
- package/dist/cjs/src/index.js +126 -0
- package/dist/cjs/src/keyboardControlsManager.js +206 -0
- package/dist/cjs/src/modelPreloader.js +360 -0
- package/dist/cjs/src/nameUtils.js +106 -0
- package/dist/cjs/src/pathfindingManager.js +321 -0
- package/dist/cjs/src/performanceMonitor.js +718 -0
- package/dist/cjs/src/sceneExportManager.js +292 -0
- package/dist/cjs/src/sceneInitializationManager.js +540 -0
- package/dist/cjs/src/sceneOperationsManager.js +560 -0
- package/dist/cjs/src/textureConfig.js +195 -0
- package/dist/cjs/src/transformControlsManager.js +851 -0
- package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +328 -0
- package/dist/esm/node_modules/three/examples/jsm/controls/OrbitControls.js +1287 -0
- package/dist/esm/node_modules/three/examples/jsm/controls/TransformControls.js +1537 -0
- package/dist/esm/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4370 -0
- package/dist/esm/node_modules/three/examples/jsm/loaders/RGBELoader.js +461 -0
- package/dist/esm/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +113 -0
- package/dist/esm/src/ConnectionManager.js +110 -0
- package/dist/esm/src/Pathfinder.js +84 -0
- package/dist/esm/src/animationManager.js +112 -0
- package/dist/esm/src/componentManager.js +123 -0
- package/dist/esm/src/debugLogger.js +167 -0
- package/dist/esm/src/disposalManager.js +155 -0
- package/dist/esm/src/environmentManager.js +989 -0
- package/dist/esm/src/hotReloadManager.js +244 -0
- package/dist/esm/src/index.js +117 -0
- package/dist/esm/src/keyboardControlsManager.js +196 -0
- package/dist/esm/src/modelPreloader.js +337 -0
- package/dist/esm/src/nameUtils.js +99 -0
- package/dist/esm/src/pathfindingManager.js +295 -0
- package/dist/esm/src/performanceMonitor.js +712 -0
- package/dist/esm/src/sceneExportManager.js +286 -0
- package/dist/esm/src/sceneInitializationManager.js +513 -0
- package/dist/esm/src/sceneOperationsManager.js +536 -0
- package/dist/esm/src/textureConfig.js +168 -0
- package/dist/esm/src/transformControlsManager.js +827 -0
- package/dist/index.d.ts +259 -0
- package/package.json +53 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
// Type definitions for central-plant-utils
|
|
2
|
+
// Project: https://github.com/your-username/central-plant-utils
|
|
3
|
+
// Definitions by: Central Plant Team
|
|
4
|
+
|
|
5
|
+
import * as THREE from 'three';
|
|
6
|
+
|
|
7
|
+
// Common types
|
|
8
|
+
export interface CentralPlantComponent {
|
|
9
|
+
scene?: THREE.Scene;
|
|
10
|
+
renderer?: THREE.WebGLRenderer;
|
|
11
|
+
camera?: THREE.Camera;
|
|
12
|
+
controls?: any;
|
|
13
|
+
textureLoader?: THREE.TextureLoader;
|
|
14
|
+
transformManager?: any;
|
|
15
|
+
currentSceneData?: any;
|
|
16
|
+
selectedObjectForTransform?: THREE.Object3D;
|
|
17
|
+
pathfindingManager?: any;
|
|
18
|
+
modelPreloader?: any;
|
|
19
|
+
[key: string]: any;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// ==============================
|
|
23
|
+
// Debug Logger
|
|
24
|
+
// ==============================
|
|
25
|
+
export interface Logger {
|
|
26
|
+
info(message: string, ...args: any[]): void;
|
|
27
|
+
warn(message: string, ...args: any[]): void;
|
|
28
|
+
error(message: string, ...args: any[]): void;
|
|
29
|
+
success(message: string, ...args: any[]): void;
|
|
30
|
+
debug(message: string, ...args: any[]): void;
|
|
31
|
+
trace(message: string, ...args: any[]): void;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export const logger: Logger;
|
|
35
|
+
export const transformLogger: Logger;
|
|
36
|
+
export const pathfinderLogger: Logger;
|
|
37
|
+
export const modelLogger: Logger;
|
|
38
|
+
|
|
39
|
+
// ==============================
|
|
40
|
+
// Name Utils
|
|
41
|
+
// ==============================
|
|
42
|
+
export function generateUuidFromName(name: string): string;
|
|
43
|
+
export function getHardcodedUuid(object: any): string;
|
|
44
|
+
export function findObjectByHardcodedUuid(root: THREE.Object3D, uuid: string): THREE.Object3D | null;
|
|
45
|
+
|
|
46
|
+
// ==============================
|
|
47
|
+
// Model Preloader
|
|
48
|
+
// ==============================
|
|
49
|
+
export interface CacheStats {
|
|
50
|
+
totalModels: number;
|
|
51
|
+
memoryUsage: number;
|
|
52
|
+
cached: string[];
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export interface ModelPreloader {
|
|
56
|
+
preloadAllModels(componentDictionary: Record<string, string>): Promise<void>;
|
|
57
|
+
preloadModel(modelKey: string, modelUrl: string): Promise<THREE.Object3D>;
|
|
58
|
+
getModel(modelKey: string): THREE.Object3D | null;
|
|
59
|
+
clearCache(): void;
|
|
60
|
+
getCacheStats(): CacheStats;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export const modelPreloader: ModelPreloader;
|
|
64
|
+
|
|
65
|
+
// ==============================
|
|
66
|
+
// Pathfinding Manager
|
|
67
|
+
// ==============================
|
|
68
|
+
export class PathfindingManager {
|
|
69
|
+
constructor(component: CentralPlantComponent);
|
|
70
|
+
getPathfinderVersionInfo(): Promise<{ version: string; detectionMethod: string; timestamp: string }>;
|
|
71
|
+
logPathfinderVersion(context?: string): Promise<void>;
|
|
72
|
+
getPathColor(index: number): string;
|
|
73
|
+
initializePathfinder(data: any, crosscubeTextureSet: any): Promise<THREE.Object3D[]>;
|
|
74
|
+
removeAllPaths(): void;
|
|
75
|
+
createPipeMaterial(crosscubeTextureSet: any, pathIndex: number): THREE.Material;
|
|
76
|
+
createPipePaths(paths: any[], crosscubeTextureSet: any): THREE.Object3D[];
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export function getPathfindingManager(component?: CentralPlantComponent): PathfindingManager;
|
|
80
|
+
|
|
81
|
+
// ==============================
|
|
82
|
+
// Hot Reload Manager
|
|
83
|
+
// ==============================
|
|
84
|
+
export class HotReloadManager {
|
|
85
|
+
constructor(componentInstance: any);
|
|
86
|
+
setupHotReloadHandling(): void;
|
|
87
|
+
cleanupHotReloadHandlers(): void;
|
|
88
|
+
trackTimeout(timeoutId: number): number;
|
|
89
|
+
trackInterval(intervalId: number): number;
|
|
90
|
+
clearTrackedTimeout(timeoutId: number): boolean;
|
|
91
|
+
clearTrackedInterval(intervalId: number): boolean;
|
|
92
|
+
clearAllTrackedTimers(): void;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export function handleHotReload(instanceId: string, cleanupMethod: () => void): void;
|
|
96
|
+
export function isHotReloading(): boolean;
|
|
97
|
+
export function cleanupForHotReload(instanceId: string): void;
|
|
98
|
+
|
|
99
|
+
// ==============================
|
|
100
|
+
// Environment Manager
|
|
101
|
+
// ==============================
|
|
102
|
+
export class EnvironmentManager {
|
|
103
|
+
constructor(component: CentralPlantComponent);
|
|
104
|
+
createSkybox(): Promise<void>;
|
|
105
|
+
setupLighting(): void;
|
|
106
|
+
createGround(): THREE.Mesh | null;
|
|
107
|
+
createWalls(): THREE.Mesh[];
|
|
108
|
+
setFog(color?: number, density?: number): void;
|
|
109
|
+
initializeEnvironment(): Promise<void>;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export function getEnvironmentManager(component?: CentralPlantComponent): EnvironmentManager;
|
|
113
|
+
export function initializeEnvironment(component: CentralPlantComponent): Promise<EnvironmentManager>;
|
|
114
|
+
|
|
115
|
+
// ==============================
|
|
116
|
+
// Texture Config
|
|
117
|
+
// ==============================
|
|
118
|
+
export interface TextureSet {
|
|
119
|
+
path: string;
|
|
120
|
+
files: Record<string, string>;
|
|
121
|
+
repeat?: { x: number; y: number };
|
|
122
|
+
materialProps?: Record<string, any>;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export const TEXTURE_SETS: Record<string, TextureSet>;
|
|
126
|
+
|
|
127
|
+
export function createTexture(
|
|
128
|
+
textureLoader: THREE.TextureLoader,
|
|
129
|
+
url: string,
|
|
130
|
+
repeat?: { x: number; y: number }
|
|
131
|
+
): THREE.Texture | null;
|
|
132
|
+
|
|
133
|
+
export function loadTextureSetAndCreateMaterial(
|
|
134
|
+
component: CentralPlantComponent,
|
|
135
|
+
textureSetName: string
|
|
136
|
+
): Promise<THREE.Material>;
|
|
137
|
+
|
|
138
|
+
// ==============================
|
|
139
|
+
// Scene Export Manager
|
|
140
|
+
// ==============================
|
|
141
|
+
export class SceneExportManager {
|
|
142
|
+
constructor(componentInstance: CentralPlantComponent);
|
|
143
|
+
exportSceneData(): any | null;
|
|
144
|
+
downloadSceneExport(filename?: string | null): boolean;
|
|
145
|
+
exportSceneDataAsString(pretty?: boolean): string | null;
|
|
146
|
+
getExportMetadata(): {
|
|
147
|
+
totalObjects: number;
|
|
148
|
+
hasCurrentSceneData: boolean;
|
|
149
|
+
connectionsCount: number;
|
|
150
|
+
exportTimestamp: string;
|
|
151
|
+
} | null;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
export function getSceneExportManager(component?: CentralPlantComponent): SceneExportManager;
|
|
155
|
+
|
|
156
|
+
// ==============================
|
|
157
|
+
// Scene Operations Manager
|
|
158
|
+
// ==============================
|
|
159
|
+
export class SceneOperationsManager {
|
|
160
|
+
constructor(component: CentralPlantComponent);
|
|
161
|
+
clearSceneObjects(): void;
|
|
162
|
+
ensureTransformControlsAttached(attachToSelected?: boolean): void;
|
|
163
|
+
deselectObject(): void;
|
|
164
|
+
loadSceneData(sceneData: any | string): boolean;
|
|
165
|
+
findObjectByName(name: string): THREE.Object3D | null;
|
|
166
|
+
findObjectByUuid(uuid: string): THREE.Object3D | null;
|
|
167
|
+
removeObject(object: THREE.Object3D): boolean;
|
|
168
|
+
duplicateObject(sourceObject: THREE.Object3D, options?: {
|
|
169
|
+
positionOffset?: THREE.Vector3
|
|
170
|
+
}): THREE.Object3D | null;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
export function getSceneOperationsManager(component?: CentralPlantComponent): SceneOperationsManager;
|
|
174
|
+
|
|
175
|
+
// ==============================
|
|
176
|
+
// Transform Controls Manager
|
|
177
|
+
// ==============================
|
|
178
|
+
export interface TransformControlsConfig {
|
|
179
|
+
size?: number;
|
|
180
|
+
enabled?: boolean;
|
|
181
|
+
showX?: boolean;
|
|
182
|
+
showY?: boolean;
|
|
183
|
+
showZ?: boolean;
|
|
184
|
+
snap?: number | null;
|
|
185
|
+
translationSnap?: number | null;
|
|
186
|
+
rotationSnap?: number | null;
|
|
187
|
+
scaleSnap?: number | null;
|
|
188
|
+
showBoundingBox?: boolean;
|
|
189
|
+
boundingBoxColor?: number;
|
|
190
|
+
useBoundingBoxSelection?: boolean;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
export interface TransformCallbacks {
|
|
194
|
+
onObjectSelect?: (object: THREE.Object3D | null, selected: boolean) => void;
|
|
195
|
+
onTransformStart?: (object: THREE.Object3D, transform: any) => void;
|
|
196
|
+
onTransform?: (object: THREE.Object3D, currentTransform: any, initialTransform: any) => void;
|
|
197
|
+
onTransformEnd?: (object: THREE.Object3D, finalTransform: any, initialTransform: any) => void;
|
|
198
|
+
onModeChange?: (mode: 'translate' | 'rotate' | 'scale') => void;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
export class TransformControlsManager {
|
|
202
|
+
constructor(scene: THREE.Scene, camera: THREE.Camera, renderer: THREE.WebGLRenderer, orbitControls?: any);
|
|
203
|
+
init(): Promise<void>;
|
|
204
|
+
on(callbacks: TransformCallbacks): void;
|
|
205
|
+
createTransformControls(): void;
|
|
206
|
+
setupEventListeners(): void;
|
|
207
|
+
setupKeyboardControls(): void;
|
|
208
|
+
removeEventListeners(): void;
|
|
209
|
+
selectObject(object: THREE.Object3D): THREE.Object3D | null;
|
|
210
|
+
deselectObject(): THREE.Object3D | null;
|
|
211
|
+
setMode(mode: 'translate' | 'rotate' | 'scale'): void;
|
|
212
|
+
toggleSpace(): void;
|
|
213
|
+
toggleVisibility(): void;
|
|
214
|
+
setEnabled(enabled: boolean): void;
|
|
215
|
+
updateAxisVisibility(): void;
|
|
216
|
+
showBoundingBox(object: THREE.Object3D): void;
|
|
217
|
+
hideBoundingBox(): void;
|
|
218
|
+
updateBoundingBox(): void;
|
|
219
|
+
captureObjectTransform(object: THREE.Object3D): any | null;
|
|
220
|
+
setSnapValues(options: {
|
|
221
|
+
translation?: number;
|
|
222
|
+
rotation?: number;
|
|
223
|
+
scale?: number;
|
|
224
|
+
}): void;
|
|
225
|
+
setSize(size: number): void;
|
|
226
|
+
dispose(): void;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
export function getTransformControlsManager(
|
|
230
|
+
scene: THREE.Scene,
|
|
231
|
+
camera: THREE.Camera,
|
|
232
|
+
renderer: THREE.WebGLRenderer,
|
|
233
|
+
orbitControls?: any
|
|
234
|
+
): TransformControlsManager;
|
|
235
|
+
|
|
236
|
+
// ==============================
|
|
237
|
+
// Main Module
|
|
238
|
+
// ==============================
|
|
239
|
+
export interface CentralPlantUtils {
|
|
240
|
+
animation: any;
|
|
241
|
+
component: any;
|
|
242
|
+
debug: typeof import('./debugLogger');
|
|
243
|
+
disposal: any;
|
|
244
|
+
environment: typeof import('./environmentManager');
|
|
245
|
+
hotReload: typeof import('./hotReloadManager');
|
|
246
|
+
keyboardControls: any;
|
|
247
|
+
modelPreloader: typeof import('./modelPreloader');
|
|
248
|
+
name: typeof import('./nameUtils');
|
|
249
|
+
pathfinding: typeof import('./pathfindingManager');
|
|
250
|
+
performance: any;
|
|
251
|
+
sceneExport: any;
|
|
252
|
+
sceneInitialization: any;
|
|
253
|
+
sceneOperations: any;
|
|
254
|
+
texture: typeof import('./textureConfig');
|
|
255
|
+
transformControls: any;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
declare const CentralPlantUtils: CentralPlantUtils;
|
|
259
|
+
export default CentralPlantUtils;
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{ "name": "@2112-lab/central-plant",
|
|
2
|
+
"version": "0.1.0",
|
|
3
|
+
"description": "Utility modules for the Central Plant Application",
|
|
4
|
+
"main": "dist/bundle/index.js",
|
|
5
|
+
"module": "dist/esm/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"publishConfig": {
|
|
8
|
+
"access": "public"
|
|
9
|
+
},
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"import": "./dist/esm/index.js",
|
|
13
|
+
"require": "./dist/cjs/index.js"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "rollup -c && npm run build:types",
|
|
21
|
+
"build:types": "node -e \"require('fs').copyFileSync('src/index.d.ts', 'dist/index.d.ts')\"",
|
|
22
|
+
"dev": "rollup -c -w",
|
|
23
|
+
"prepublishOnly": "npm run build"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"central-plant",
|
|
27
|
+
"three.js",
|
|
28
|
+
"utilities",
|
|
29
|
+
"3d"
|
|
30
|
+
],
|
|
31
|
+
"author": "CentralPlant Team",
|
|
32
|
+
"license": "MIT",
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"three": "^0.150.0",
|
|
35
|
+
"@2112-lab/pathfinder": "^1.0.15"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@babel/core": "^7.23.3",
|
|
39
|
+
"@babel/preset-env": "^7.23.3",
|
|
40
|
+
"@rollup/plugin-babel": "^6.0.4",
|
|
41
|
+
"@rollup/plugin-commonjs": "^25.0.7",
|
|
42
|
+
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
43
|
+
"rollup": "^2.79.1",
|
|
44
|
+
"rollup-plugin-terser": "^7.0.2",
|
|
45
|
+
"typescript": "^5.0.0",
|
|
46
|
+
"rollup-plugin-typescript2": "^0.34.0",
|
|
47
|
+
"tslib": "^2.5.0",
|
|
48
|
+
"@types/three": "^0.150.0"
|
|
49
|
+
},
|
|
50
|
+
"peerDependencies": {
|
|
51
|
+
"three": ">=0.137.0"
|
|
52
|
+
}
|
|
53
|
+
}
|