@2112-lab/central-plant 0.1.4 → 0.1.6
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/bundle/index.js +33146 -1
- package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js +432 -1
- package/dist/cjs/node_modules/@2112-lab/pathfinder/dist/index.esm.js +1448 -1
- package/dist/cjs/node_modules/three/examples/jsm/controls/OrbitControls.js +1853 -1
- package/dist/cjs/node_modules/three/examples/jsm/exporters/GLTFExporter.js +3537 -1
- package/dist/cjs/node_modules/three/examples/jsm/exporters/OBJExporter.js +305 -1
- package/dist/cjs/node_modules/three/examples/jsm/exporters/PLYExporter.js +542 -1
- package/dist/cjs/node_modules/three/examples/jsm/exporters/STLExporter.js +218 -1
- package/dist/cjs/node_modules/three/examples/jsm/loaders/DRACOLoader.js +683 -1
- package/dist/cjs/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4811 -1
- package/dist/cjs/node_modules/three/examples/jsm/loaders/RGBELoader.js +480 -1
- package/dist/cjs/node_modules/three/examples/jsm/renderers/CSS2DRenderer.js +309 -1
- package/dist/cjs/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +120 -1
- package/dist/cjs/src/analysis/analysis.js +560 -1
- package/dist/cjs/src/analysis/testing.js +958 -1
- package/dist/cjs/src/core/centralPlant.js +1149 -1
- package/dist/cjs/src/core/debugLogger.js +175 -1
- package/dist/cjs/src/core/mathUtils.js +574 -1
- package/dist/cjs/src/core/nameUtils.js +93 -1
- package/dist/cjs/src/data/export.js +716 -1
- package/dist/cjs/src/data/import.js +380 -1
- package/dist/cjs/src/data/numerics.js +522 -1
- package/dist/cjs/src/helpers/sceneHelper.js +572 -1
- package/dist/cjs/src/index.js +69 -1
- package/dist/cjs/src/managers/components/animationManager.js +123 -1
- package/dist/cjs/src/managers/components/componentManager.js +332 -1
- package/dist/cjs/src/managers/components/pathfindingManager.js +1441 -1
- package/dist/cjs/src/managers/controls/TransformControls.js +1063 -1
- package/dist/cjs/src/managers/controls/cameraControlsManager.js +79 -1
- package/dist/cjs/src/managers/controls/dragDropManager.js +1026 -1
- package/dist/cjs/src/managers/controls/keyboardControlsManager.js +395 -1
- package/dist/cjs/src/managers/controls/transformControlsManager.js +1807 -1
- package/dist/cjs/src/managers/environment/environmentManager.js +714 -1
- package/dist/cjs/src/managers/environment/textureConfig.js +229 -1
- package/dist/cjs/src/managers/scene/sceneExportManager.js +264 -1
- package/dist/cjs/src/managers/scene/sceneInitializationManager.js +346 -1
- package/dist/cjs/src/managers/scene/sceneOperationsManager.js +1509 -1
- package/dist/cjs/src/managers/scene/sceneTooltipsManager.js +661 -1
- package/dist/cjs/src/managers/system/disposalManager.js +444 -1
- package/dist/cjs/src/managers/system/hotReloadManager.js +291 -1
- package/dist/cjs/src/managers/system/performanceMonitor.js +863 -1
- package/dist/cjs/src/rendering/modelPreloader.js +369 -1
- package/dist/cjs/src/rendering/rendering2D.js +631 -1
- package/dist/cjs/src/rendering/rendering3D.js +685 -1
- package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +396 -1
- package/dist/esm/node_modules/@2112-lab/pathfinder/dist/index.esm.js +1444 -1
- package/dist/esm/node_modules/three/examples/jsm/controls/OrbitControls.js +1849 -1
- package/dist/esm/node_modules/three/examples/jsm/exporters/GLTFExporter.js +3533 -1
- package/dist/esm/node_modules/three/examples/jsm/exporters/OBJExporter.js +301 -1
- package/dist/esm/node_modules/three/examples/jsm/exporters/PLYExporter.js +538 -1
- package/dist/esm/node_modules/three/examples/jsm/exporters/STLExporter.js +214 -1
- package/dist/esm/node_modules/three/examples/jsm/loaders/DRACOLoader.js +679 -1
- package/dist/esm/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4807 -1
- package/dist/esm/node_modules/three/examples/jsm/loaders/RGBELoader.js +476 -1
- package/dist/esm/node_modules/three/examples/jsm/renderers/CSS2DRenderer.js +304 -1
- package/dist/esm/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +116 -1
- package/dist/esm/src/analysis/analysis.js +536 -1
- package/dist/esm/src/analysis/testing.js +954 -1
- package/dist/esm/src/core/centralPlant.js +1144 -1
- package/dist/esm/src/core/debugLogger.js +167 -1
- package/dist/esm/src/core/mathUtils.js +570 -1
- package/dist/esm/src/core/nameUtils.js +87 -1
- package/dist/esm/src/data/export.js +712 -1
- package/dist/esm/src/data/import.js +356 -1
- package/dist/esm/src/data/numerics.js +518 -1
- package/dist/esm/src/helpers/sceneHelper.js +547 -1
- package/dist/esm/src/index.js +35 -1
- package/dist/esm/src/managers/components/animationManager.js +119 -1
- package/dist/esm/src/managers/components/componentManager.js +328 -1
- package/dist/esm/src/managers/components/pathfindingManager.js +1417 -1
- package/dist/esm/src/managers/controls/TransformControls.js +1057 -1
- package/dist/esm/src/managers/controls/cameraControlsManager.js +75 -1
- package/dist/esm/src/managers/controls/dragDropManager.js +1002 -1
- package/dist/esm/src/managers/controls/keyboardControlsManager.js +371 -1
- package/dist/esm/src/managers/controls/transformControlsManager.js +1782 -1
- package/dist/esm/src/managers/environment/environmentManager.js +690 -1
- package/dist/esm/src/managers/environment/textureConfig.js +202 -1
- package/dist/esm/src/managers/scene/sceneExportManager.js +260 -1
- package/dist/esm/src/managers/scene/sceneInitializationManager.js +322 -1
- package/dist/esm/src/managers/scene/sceneOperationsManager.js +1485 -1
- package/dist/esm/src/managers/scene/sceneTooltipsManager.js +637 -1
- package/dist/esm/src/managers/system/disposalManager.js +440 -1
- package/dist/esm/src/managers/system/hotReloadManager.js +287 -1
- package/dist/esm/src/managers/system/performanceMonitor.js +858 -1
- package/dist/esm/src/rendering/modelPreloader.js +364 -1
- package/dist/esm/src/rendering/rendering2D.js +627 -1
- package/dist/esm/src/rendering/rendering3D.js +661 -1
- package/package.json +1 -1
|
@@ -1 +1,305 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var THREE = require('three');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* An exporter for OBJ.
|
|
9
|
+
*
|
|
10
|
+
* `OBJExporter` is not able to export material data into MTL files so only geometry data are supported.
|
|
11
|
+
*
|
|
12
|
+
* ```js
|
|
13
|
+
* const exporter = new OBJExporter();
|
|
14
|
+
* const data = exporter.parse( scene );
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @three_import import { OBJExporter } from 'three/addons/exporters/OBJExporter.js';
|
|
18
|
+
*/
|
|
19
|
+
class OBJExporter {
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Parses the given 3D object and generates the OBJ output.
|
|
23
|
+
*
|
|
24
|
+
* If the 3D object is composed of multiple children and geometry, they are merged into a single mesh in the file.
|
|
25
|
+
*
|
|
26
|
+
* @param {Object3D} object - The 3D object to export.
|
|
27
|
+
* @return {string} The exported OBJ.
|
|
28
|
+
*/
|
|
29
|
+
parse( object ) {
|
|
30
|
+
|
|
31
|
+
let output = '';
|
|
32
|
+
|
|
33
|
+
let indexVertex = 0;
|
|
34
|
+
let indexVertexUvs = 0;
|
|
35
|
+
let indexNormals = 0;
|
|
36
|
+
|
|
37
|
+
const vertex = new THREE.Vector3();
|
|
38
|
+
const color = new THREE.Color();
|
|
39
|
+
const normal = new THREE.Vector3();
|
|
40
|
+
const uv = new THREE.Vector2();
|
|
41
|
+
|
|
42
|
+
const face = [];
|
|
43
|
+
|
|
44
|
+
function parseMesh( mesh ) {
|
|
45
|
+
|
|
46
|
+
let nbVertex = 0;
|
|
47
|
+
let nbNormals = 0;
|
|
48
|
+
let nbVertexUvs = 0;
|
|
49
|
+
|
|
50
|
+
const geometry = mesh.geometry;
|
|
51
|
+
|
|
52
|
+
const normalMatrixWorld = new THREE.Matrix3();
|
|
53
|
+
|
|
54
|
+
// shortcuts
|
|
55
|
+
const vertices = geometry.getAttribute( 'position' );
|
|
56
|
+
const normals = geometry.getAttribute( 'normal' );
|
|
57
|
+
const uvs = geometry.getAttribute( 'uv' );
|
|
58
|
+
const indices = geometry.getIndex();
|
|
59
|
+
|
|
60
|
+
// name of the mesh object
|
|
61
|
+
output += 'o ' + mesh.name + '\n';
|
|
62
|
+
|
|
63
|
+
// name of the mesh material
|
|
64
|
+
if ( mesh.material && mesh.material.name ) {
|
|
65
|
+
|
|
66
|
+
output += 'usemtl ' + mesh.material.name + '\n';
|
|
67
|
+
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// vertices
|
|
71
|
+
|
|
72
|
+
if ( vertices !== undefined ) {
|
|
73
|
+
|
|
74
|
+
for ( let i = 0, l = vertices.count; i < l; i ++, nbVertex ++ ) {
|
|
75
|
+
|
|
76
|
+
vertex.fromBufferAttribute( vertices, i );
|
|
77
|
+
|
|
78
|
+
// transform the vertex to world space
|
|
79
|
+
vertex.applyMatrix4( mesh.matrixWorld );
|
|
80
|
+
|
|
81
|
+
// transform the vertex to export format
|
|
82
|
+
output += 'v ' + vertex.x + ' ' + vertex.y + ' ' + vertex.z + '\n';
|
|
83
|
+
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// uvs
|
|
89
|
+
|
|
90
|
+
if ( uvs !== undefined ) {
|
|
91
|
+
|
|
92
|
+
for ( let i = 0, l = uvs.count; i < l; i ++, nbVertexUvs ++ ) {
|
|
93
|
+
|
|
94
|
+
uv.fromBufferAttribute( uvs, i );
|
|
95
|
+
|
|
96
|
+
// transform the uv to export format
|
|
97
|
+
output += 'vt ' + uv.x + ' ' + uv.y + '\n';
|
|
98
|
+
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// normals
|
|
104
|
+
|
|
105
|
+
if ( normals !== undefined ) {
|
|
106
|
+
|
|
107
|
+
normalMatrixWorld.getNormalMatrix( mesh.matrixWorld );
|
|
108
|
+
|
|
109
|
+
for ( let i = 0, l = normals.count; i < l; i ++, nbNormals ++ ) {
|
|
110
|
+
|
|
111
|
+
normal.fromBufferAttribute( normals, i );
|
|
112
|
+
|
|
113
|
+
// transform the normal to world space
|
|
114
|
+
normal.applyMatrix3( normalMatrixWorld ).normalize();
|
|
115
|
+
|
|
116
|
+
// transform the normal to export format
|
|
117
|
+
output += 'vn ' + normal.x + ' ' + normal.y + ' ' + normal.z + '\n';
|
|
118
|
+
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// faces
|
|
124
|
+
|
|
125
|
+
if ( indices !== null ) {
|
|
126
|
+
|
|
127
|
+
for ( let i = 0, l = indices.count; i < l; i += 3 ) {
|
|
128
|
+
|
|
129
|
+
for ( let m = 0; m < 3; m ++ ) {
|
|
130
|
+
|
|
131
|
+
const j = indices.getX( i + m ) + 1;
|
|
132
|
+
|
|
133
|
+
face[ m ] = ( indexVertex + j ) + ( normals || uvs ? '/' + ( uvs ? ( indexVertexUvs + j ) : '' ) + ( normals ? '/' + ( indexNormals + j ) : '' ) : '' );
|
|
134
|
+
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// transform the face to export format
|
|
138
|
+
output += 'f ' + face.join( ' ' ) + '\n';
|
|
139
|
+
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
} else {
|
|
143
|
+
|
|
144
|
+
for ( let i = 0, l = vertices.count; i < l; i += 3 ) {
|
|
145
|
+
|
|
146
|
+
for ( let m = 0; m < 3; m ++ ) {
|
|
147
|
+
|
|
148
|
+
const j = i + m + 1;
|
|
149
|
+
|
|
150
|
+
face[ m ] = ( indexVertex + j ) + ( normals || uvs ? '/' + ( uvs ? ( indexVertexUvs + j ) : '' ) + ( normals ? '/' + ( indexNormals + j ) : '' ) : '' );
|
|
151
|
+
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// transform the face to export format
|
|
155
|
+
output += 'f ' + face.join( ' ' ) + '\n';
|
|
156
|
+
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// update index
|
|
162
|
+
indexVertex += nbVertex;
|
|
163
|
+
indexVertexUvs += nbVertexUvs;
|
|
164
|
+
indexNormals += nbNormals;
|
|
165
|
+
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
function parseLine( line ) {
|
|
169
|
+
|
|
170
|
+
let nbVertex = 0;
|
|
171
|
+
|
|
172
|
+
const geometry = line.geometry;
|
|
173
|
+
const type = line.type;
|
|
174
|
+
|
|
175
|
+
// shortcuts
|
|
176
|
+
const vertices = geometry.getAttribute( 'position' );
|
|
177
|
+
|
|
178
|
+
// name of the line object
|
|
179
|
+
output += 'o ' + line.name + '\n';
|
|
180
|
+
|
|
181
|
+
if ( vertices !== undefined ) {
|
|
182
|
+
|
|
183
|
+
for ( let i = 0, l = vertices.count; i < l; i ++, nbVertex ++ ) {
|
|
184
|
+
|
|
185
|
+
vertex.fromBufferAttribute( vertices, i );
|
|
186
|
+
|
|
187
|
+
// transform the vertex to world space
|
|
188
|
+
vertex.applyMatrix4( line.matrixWorld );
|
|
189
|
+
|
|
190
|
+
// transform the vertex to export format
|
|
191
|
+
output += 'v ' + vertex.x + ' ' + vertex.y + ' ' + vertex.z + '\n';
|
|
192
|
+
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
if ( type === 'Line' ) {
|
|
198
|
+
|
|
199
|
+
output += 'l ';
|
|
200
|
+
|
|
201
|
+
for ( let j = 1, l = vertices.count; j <= l; j ++ ) {
|
|
202
|
+
|
|
203
|
+
output += ( indexVertex + j ) + ' ';
|
|
204
|
+
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
output += '\n';
|
|
208
|
+
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
if ( type === 'LineSegments' ) {
|
|
212
|
+
|
|
213
|
+
for ( let j = 1, k = j + 1, l = vertices.count; j < l; j += 2, k = j + 1 ) {
|
|
214
|
+
|
|
215
|
+
output += 'l ' + ( indexVertex + j ) + ' ' + ( indexVertex + k ) + '\n';
|
|
216
|
+
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// update index
|
|
222
|
+
indexVertex += nbVertex;
|
|
223
|
+
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
function parsePoints( points ) {
|
|
227
|
+
|
|
228
|
+
let nbVertex = 0;
|
|
229
|
+
|
|
230
|
+
const geometry = points.geometry;
|
|
231
|
+
|
|
232
|
+
const vertices = geometry.getAttribute( 'position' );
|
|
233
|
+
const colors = geometry.getAttribute( 'color' );
|
|
234
|
+
|
|
235
|
+
output += 'o ' + points.name + '\n';
|
|
236
|
+
|
|
237
|
+
if ( vertices !== undefined ) {
|
|
238
|
+
|
|
239
|
+
for ( let i = 0, l = vertices.count; i < l; i ++, nbVertex ++ ) {
|
|
240
|
+
|
|
241
|
+
vertex.fromBufferAttribute( vertices, i );
|
|
242
|
+
vertex.applyMatrix4( points.matrixWorld );
|
|
243
|
+
|
|
244
|
+
output += 'v ' + vertex.x + ' ' + vertex.y + ' ' + vertex.z;
|
|
245
|
+
|
|
246
|
+
if ( colors !== undefined ) {
|
|
247
|
+
|
|
248
|
+
color.fromBufferAttribute( colors, i );
|
|
249
|
+
|
|
250
|
+
THREE.ColorManagement.workingToColorSpace( color, THREE.SRGBColorSpace );
|
|
251
|
+
|
|
252
|
+
output += ' ' + color.r + ' ' + color.g + ' ' + color.b;
|
|
253
|
+
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
output += '\n';
|
|
257
|
+
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
output += 'p ';
|
|
261
|
+
|
|
262
|
+
for ( let j = 1, l = vertices.count; j <= l; j ++ ) {
|
|
263
|
+
|
|
264
|
+
output += ( indexVertex + j ) + ' ';
|
|
265
|
+
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
output += '\n';
|
|
269
|
+
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// update index
|
|
273
|
+
indexVertex += nbVertex;
|
|
274
|
+
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
object.traverse( function ( child ) {
|
|
278
|
+
|
|
279
|
+
if ( child.isMesh === true ) {
|
|
280
|
+
|
|
281
|
+
parseMesh( child );
|
|
282
|
+
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
if ( child.isLine === true ) {
|
|
286
|
+
|
|
287
|
+
parseLine( child );
|
|
288
|
+
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
if ( child.isPoints === true ) {
|
|
292
|
+
|
|
293
|
+
parsePoints( child );
|
|
294
|
+
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
} );
|
|
298
|
+
|
|
299
|
+
return output;
|
|
300
|
+
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
exports.OBJExporter = OBJExporter;
|