@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.
Files changed (54) hide show
  1. package/README.md +0 -0
  2. package/dist/bundle/index.js +14259 -0
  3. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js +353 -0
  4. package/dist/cjs/node_modules/three/examples/jsm/controls/OrbitControls.js +1292 -0
  5. package/dist/cjs/node_modules/three/examples/jsm/controls/TransformControls.js +1543 -0
  6. package/dist/cjs/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4374 -0
  7. package/dist/cjs/node_modules/three/examples/jsm/loaders/RGBELoader.js +465 -0
  8. package/dist/cjs/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +117 -0
  9. package/dist/cjs/src/ConnectionManager.js +114 -0
  10. package/dist/cjs/src/Pathfinder.js +88 -0
  11. package/dist/cjs/src/animationManager.js +121 -0
  12. package/dist/cjs/src/componentManager.js +151 -0
  13. package/dist/cjs/src/debugLogger.js +176 -0
  14. package/dist/cjs/src/disposalManager.js +185 -0
  15. package/dist/cjs/src/environmentManager.js +1015 -0
  16. package/dist/cjs/src/hotReloadManager.js +252 -0
  17. package/dist/cjs/src/index.js +126 -0
  18. package/dist/cjs/src/keyboardControlsManager.js +206 -0
  19. package/dist/cjs/src/modelPreloader.js +360 -0
  20. package/dist/cjs/src/nameUtils.js +106 -0
  21. package/dist/cjs/src/pathfindingManager.js +321 -0
  22. package/dist/cjs/src/performanceMonitor.js +718 -0
  23. package/dist/cjs/src/sceneExportManager.js +292 -0
  24. package/dist/cjs/src/sceneInitializationManager.js +540 -0
  25. package/dist/cjs/src/sceneOperationsManager.js +560 -0
  26. package/dist/cjs/src/textureConfig.js +195 -0
  27. package/dist/cjs/src/transformControlsManager.js +851 -0
  28. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +328 -0
  29. package/dist/esm/node_modules/three/examples/jsm/controls/OrbitControls.js +1287 -0
  30. package/dist/esm/node_modules/three/examples/jsm/controls/TransformControls.js +1537 -0
  31. package/dist/esm/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4370 -0
  32. package/dist/esm/node_modules/three/examples/jsm/loaders/RGBELoader.js +461 -0
  33. package/dist/esm/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +113 -0
  34. package/dist/esm/src/ConnectionManager.js +110 -0
  35. package/dist/esm/src/Pathfinder.js +84 -0
  36. package/dist/esm/src/animationManager.js +112 -0
  37. package/dist/esm/src/componentManager.js +123 -0
  38. package/dist/esm/src/debugLogger.js +167 -0
  39. package/dist/esm/src/disposalManager.js +155 -0
  40. package/dist/esm/src/environmentManager.js +989 -0
  41. package/dist/esm/src/hotReloadManager.js +244 -0
  42. package/dist/esm/src/index.js +117 -0
  43. package/dist/esm/src/keyboardControlsManager.js +196 -0
  44. package/dist/esm/src/modelPreloader.js +337 -0
  45. package/dist/esm/src/nameUtils.js +99 -0
  46. package/dist/esm/src/pathfindingManager.js +295 -0
  47. package/dist/esm/src/performanceMonitor.js +712 -0
  48. package/dist/esm/src/sceneExportManager.js +286 -0
  49. package/dist/esm/src/sceneInitializationManager.js +513 -0
  50. package/dist/esm/src/sceneOperationsManager.js +536 -0
  51. package/dist/esm/src/textureConfig.js +168 -0
  52. package/dist/esm/src/transformControlsManager.js +827 -0
  53. package/dist/index.d.ts +259 -0
  54. package/package.json +53 -0
@@ -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
+ }