@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.
Files changed (88) hide show
  1. package/dist/bundle/index.js +33146 -1
  2. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js +432 -1
  3. package/dist/cjs/node_modules/@2112-lab/pathfinder/dist/index.esm.js +1448 -1
  4. package/dist/cjs/node_modules/three/examples/jsm/controls/OrbitControls.js +1853 -1
  5. package/dist/cjs/node_modules/three/examples/jsm/exporters/GLTFExporter.js +3537 -1
  6. package/dist/cjs/node_modules/three/examples/jsm/exporters/OBJExporter.js +305 -1
  7. package/dist/cjs/node_modules/three/examples/jsm/exporters/PLYExporter.js +542 -1
  8. package/dist/cjs/node_modules/three/examples/jsm/exporters/STLExporter.js +218 -1
  9. package/dist/cjs/node_modules/three/examples/jsm/loaders/DRACOLoader.js +683 -1
  10. package/dist/cjs/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4811 -1
  11. package/dist/cjs/node_modules/three/examples/jsm/loaders/RGBELoader.js +480 -1
  12. package/dist/cjs/node_modules/three/examples/jsm/renderers/CSS2DRenderer.js +309 -1
  13. package/dist/cjs/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +120 -1
  14. package/dist/cjs/src/analysis/analysis.js +560 -1
  15. package/dist/cjs/src/analysis/testing.js +958 -1
  16. package/dist/cjs/src/core/centralPlant.js +1149 -1
  17. package/dist/cjs/src/core/debugLogger.js +175 -1
  18. package/dist/cjs/src/core/mathUtils.js +574 -1
  19. package/dist/cjs/src/core/nameUtils.js +93 -1
  20. package/dist/cjs/src/data/export.js +716 -1
  21. package/dist/cjs/src/data/import.js +380 -1
  22. package/dist/cjs/src/data/numerics.js +522 -1
  23. package/dist/cjs/src/helpers/sceneHelper.js +572 -1
  24. package/dist/cjs/src/index.js +69 -1
  25. package/dist/cjs/src/managers/components/animationManager.js +123 -1
  26. package/dist/cjs/src/managers/components/componentManager.js +332 -1
  27. package/dist/cjs/src/managers/components/pathfindingManager.js +1441 -1
  28. package/dist/cjs/src/managers/controls/TransformControls.js +1063 -1
  29. package/dist/cjs/src/managers/controls/cameraControlsManager.js +79 -1
  30. package/dist/cjs/src/managers/controls/dragDropManager.js +1026 -1
  31. package/dist/cjs/src/managers/controls/keyboardControlsManager.js +395 -1
  32. package/dist/cjs/src/managers/controls/transformControlsManager.js +1807 -1
  33. package/dist/cjs/src/managers/environment/environmentManager.js +714 -1
  34. package/dist/cjs/src/managers/environment/textureConfig.js +229 -1
  35. package/dist/cjs/src/managers/scene/sceneExportManager.js +264 -1
  36. package/dist/cjs/src/managers/scene/sceneInitializationManager.js +346 -1
  37. package/dist/cjs/src/managers/scene/sceneOperationsManager.js +1509 -1
  38. package/dist/cjs/src/managers/scene/sceneTooltipsManager.js +661 -1
  39. package/dist/cjs/src/managers/system/disposalManager.js +444 -1
  40. package/dist/cjs/src/managers/system/hotReloadManager.js +291 -1
  41. package/dist/cjs/src/managers/system/performanceMonitor.js +863 -1
  42. package/dist/cjs/src/rendering/modelPreloader.js +369 -1
  43. package/dist/cjs/src/rendering/rendering2D.js +631 -1
  44. package/dist/cjs/src/rendering/rendering3D.js +685 -1
  45. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +396 -1
  46. package/dist/esm/node_modules/@2112-lab/pathfinder/dist/index.esm.js +1444 -1
  47. package/dist/esm/node_modules/three/examples/jsm/controls/OrbitControls.js +1849 -1
  48. package/dist/esm/node_modules/three/examples/jsm/exporters/GLTFExporter.js +3533 -1
  49. package/dist/esm/node_modules/three/examples/jsm/exporters/OBJExporter.js +301 -1
  50. package/dist/esm/node_modules/three/examples/jsm/exporters/PLYExporter.js +538 -1
  51. package/dist/esm/node_modules/three/examples/jsm/exporters/STLExporter.js +214 -1
  52. package/dist/esm/node_modules/three/examples/jsm/loaders/DRACOLoader.js +679 -1
  53. package/dist/esm/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4807 -1
  54. package/dist/esm/node_modules/three/examples/jsm/loaders/RGBELoader.js +476 -1
  55. package/dist/esm/node_modules/three/examples/jsm/renderers/CSS2DRenderer.js +304 -1
  56. package/dist/esm/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +116 -1
  57. package/dist/esm/src/analysis/analysis.js +536 -1
  58. package/dist/esm/src/analysis/testing.js +954 -1
  59. package/dist/esm/src/core/centralPlant.js +1144 -1
  60. package/dist/esm/src/core/debugLogger.js +167 -1
  61. package/dist/esm/src/core/mathUtils.js +570 -1
  62. package/dist/esm/src/core/nameUtils.js +87 -1
  63. package/dist/esm/src/data/export.js +712 -1
  64. package/dist/esm/src/data/import.js +356 -1
  65. package/dist/esm/src/data/numerics.js +518 -1
  66. package/dist/esm/src/helpers/sceneHelper.js +547 -1
  67. package/dist/esm/src/index.js +35 -1
  68. package/dist/esm/src/managers/components/animationManager.js +119 -1
  69. package/dist/esm/src/managers/components/componentManager.js +328 -1
  70. package/dist/esm/src/managers/components/pathfindingManager.js +1417 -1
  71. package/dist/esm/src/managers/controls/TransformControls.js +1057 -1
  72. package/dist/esm/src/managers/controls/cameraControlsManager.js +75 -1
  73. package/dist/esm/src/managers/controls/dragDropManager.js +1002 -1
  74. package/dist/esm/src/managers/controls/keyboardControlsManager.js +371 -1
  75. package/dist/esm/src/managers/controls/transformControlsManager.js +1782 -1
  76. package/dist/esm/src/managers/environment/environmentManager.js +690 -1
  77. package/dist/esm/src/managers/environment/textureConfig.js +202 -1
  78. package/dist/esm/src/managers/scene/sceneExportManager.js +260 -1
  79. package/dist/esm/src/managers/scene/sceneInitializationManager.js +322 -1
  80. package/dist/esm/src/managers/scene/sceneOperationsManager.js +1485 -1
  81. package/dist/esm/src/managers/scene/sceneTooltipsManager.js +637 -1
  82. package/dist/esm/src/managers/system/disposalManager.js +440 -1
  83. package/dist/esm/src/managers/system/hotReloadManager.js +287 -1
  84. package/dist/esm/src/managers/system/performanceMonitor.js +858 -1
  85. package/dist/esm/src/rendering/modelPreloader.js +364 -1
  86. package/dist/esm/src/rendering/rendering2D.js +627 -1
  87. package/dist/esm/src/rendering/rendering3D.js +661 -1
  88. package/package.json +1 -1
@@ -1 +1,309 @@
1
- "use strict";Object.defineProperty(exports,"t",{value:!0});var t=require("three");class n extends t.Object3D{constructor(n=document.createElement("div")){super(),this.isCSS2DObject=!0,this.element=n,this.element.style.position="absolute",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.center=new t.Vector2(.5,.5),this.addEventListener("removed",function(){this.traverse(function(t){t.element instanceof t.element.ownerDocument.defaultView.Element&&null!==t.element.parentNode&&t.element.remove()})})}copy(t,n){return super.copy(t,n),this.element=t.element.cloneNode(!0),this.center=t.center,this}}const e=new t.Vector3,s=new t.Matrix4,o=new t.Matrix4,i=new t.Vector3,r=new t.Vector3;exports.CSS2DObject=n,exports.CSS2DRenderer=class{constructor(t={}){const n=this;let c,u,h,f;const a={objects:new WeakMap},l=void 0!==t.element?t.element:document.createElement("div");function d(t){t.isCSS2DObject&&(t.element.style.display="none");for(let n=0,e=t.children.length;n<e;n++)d(t.children[n])}function p(t,s,i){if(!1!==t.visible){if(t.isCSS2DObject){e.setFromMatrixPosition(t.matrixWorld),e.applyMatrix4(o);const r=e.z>=-1&&e.z<=1&&!0===t.layers.test(i.layers),c=t.element;c.style.display=!0===r?"":"none",!0===r&&(t.onBeforeRender(n,s,i),c.style.transform="translate("+-100*t.center.x+"%,"+-100*t.center.y+"%)translate("+(e.x*h+h)+"px,"+(-e.y*f+f)+"px)",c.parentNode!==l&&l.appendChild(c),t.onAfterRender(n,s,i));const u={distanceToCameraSquared:w(i,t)};a.objects.set(t,u)}for(let n=0,e=t.children.length;n<e;n++)p(t.children[n],s,i)}else d(t)}function w(t,n){return i.setFromMatrixPosition(t.matrixWorld),r.setFromMatrixPosition(n.matrixWorld),i.distanceToSquared(r)}l.style.overflow="hidden",this.domElement=l,this.getSize=function(){return{width:c,height:u}},this.render=function(t,n){!0===t.matrixWorldAutoUpdate&&t.updateMatrixWorld(),null===n.parent&&!0===n.matrixWorldAutoUpdate&&n.updateMatrixWorld(),s.copy(n.matrixWorldInverse),o.multiplyMatrices(n.projectionMatrix,s),p(t,t,n),function(t){const n=function(t){const n=[];return t.traverseVisible(function(t){t.isCSS2DObject&&n.push(t)}),n}(t).sort(function(t,n){if(t.renderOrder!==n.renderOrder)return n.renderOrder-t.renderOrder;return a.objects.get(t).distanceToCameraSquared-a.objects.get(n).distanceToCameraSquared}),e=n.length;for(let t=0,s=n.length;t<s;t++)n[t].element.style.zIndex=e-t}(t)},this.setSize=function(t,n){c=t,u=n,h=c/2,f=u/2,l.style.width=t+"px",l.style.height=n+"px"}}};
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var THREE = require('three');
6
+
7
+ /**
8
+ * The only type of 3D object that is supported by {@link CSS2DRenderer}.
9
+ *
10
+ * @augments Object3D
11
+ * @three_import import { CSS2DObject } from 'three/addons/renderers/CSS2DRenderer.js';
12
+ */
13
+ class CSS2DObject extends THREE.Object3D {
14
+
15
+ /**
16
+ * Constructs a new CSS2D object.
17
+ *
18
+ * @param {DOMElement} [element] - The DOM element.
19
+ */
20
+ constructor( element = document.createElement( 'div' ) ) {
21
+
22
+ super();
23
+
24
+ /**
25
+ * This flag can be used for type testing.
26
+ *
27
+ * @type {boolean}
28
+ * @readonly
29
+ * @default true
30
+ */
31
+ this.isCSS2DObject = true;
32
+
33
+ /**
34
+ * The DOM element which defines the appearance of this 3D object.
35
+ *
36
+ * @type {DOMElement}
37
+ * @readonly
38
+ * @default true
39
+ */
40
+ this.element = element;
41
+
42
+ this.element.style.position = 'absolute';
43
+ this.element.style.userSelect = 'none';
44
+
45
+ this.element.setAttribute( 'draggable', false );
46
+
47
+ /**
48
+ * The 3D objects center point.
49
+ * `( 0, 0 )` is the lower left, `( 1, 1 )` is the top right.
50
+ *
51
+ * @type {Vector2}
52
+ * @default (0.5,0.5)
53
+ */
54
+ this.center = new THREE.Vector2( 0.5, 0.5 );
55
+
56
+ this.addEventListener( 'removed', function () {
57
+
58
+ this.traverse( function ( object ) {
59
+
60
+ if (
61
+ object.element instanceof object.element.ownerDocument.defaultView.Element &&
62
+ object.element.parentNode !== null
63
+ ) {
64
+
65
+ object.element.remove();
66
+
67
+ }
68
+
69
+ } );
70
+
71
+ } );
72
+
73
+ }
74
+
75
+ copy( source, recursive ) {
76
+
77
+ super.copy( source, recursive );
78
+
79
+ this.element = source.element.cloneNode( true );
80
+
81
+ this.center = source.center;
82
+
83
+ return this;
84
+
85
+ }
86
+
87
+ }
88
+
89
+ //
90
+
91
+ const _vector = new THREE.Vector3();
92
+ const _viewMatrix = new THREE.Matrix4();
93
+ const _viewProjectionMatrix = new THREE.Matrix4();
94
+ const _a = new THREE.Vector3();
95
+ const _b = new THREE.Vector3();
96
+
97
+ /**
98
+ * This renderer is a simplified version of {@link CSS3DRenderer}. The only transformation that is
99
+ * supported is translation.
100
+ *
101
+ * The renderer is very useful if you want to combine HTML based labels with 3D objects. Here too,
102
+ * the respective DOM elements are wrapped into an instance of {@link CSS2DObject} and added to the
103
+ * scene graph. All other types of renderable 3D objects (like meshes or point clouds) are ignored.
104
+ *
105
+ * `CSS2DRenderer` only supports 100% browser and display zoom.
106
+ *
107
+ * @three_import import { CSS2DRenderer } from 'three/addons/renderers/CSS2DRenderer.js';
108
+ */
109
+ class CSS2DRenderer {
110
+
111
+ /**
112
+ * Constructs a new CSS2D renderer.
113
+ *
114
+ * @param {CSS2DRenderer~Parameters} [parameters] - The parameters.
115
+ */
116
+ constructor( parameters = {} ) {
117
+
118
+ const _this = this;
119
+
120
+ let _width, _height;
121
+ let _widthHalf, _heightHalf;
122
+
123
+ const cache = {
124
+ objects: new WeakMap()
125
+ };
126
+
127
+ const domElement = parameters.element !== undefined ? parameters.element : document.createElement( 'div' );
128
+
129
+ domElement.style.overflow = 'hidden';
130
+
131
+ /**
132
+ * The DOM where the renderer appends its child-elements.
133
+ *
134
+ * @type {DOMElement}
135
+ */
136
+ this.domElement = domElement;
137
+
138
+ /**
139
+ * Returns an object containing the width and height of the renderer.
140
+ *
141
+ * @return {{width:number,height:number}} The size of the renderer.
142
+ */
143
+ this.getSize = function () {
144
+
145
+ return {
146
+ width: _width,
147
+ height: _height
148
+ };
149
+
150
+ };
151
+
152
+ /**
153
+ * Renders the given scene using the given camera.
154
+ *
155
+ * @param {Object3D} scene - A scene or any other type of 3D object.
156
+ * @param {Camera} camera - The camera.
157
+ */
158
+ this.render = function ( scene, camera ) {
159
+
160
+ if ( scene.matrixWorldAutoUpdate === true ) scene.updateMatrixWorld();
161
+ if ( camera.parent === null && camera.matrixWorldAutoUpdate === true ) camera.updateMatrixWorld();
162
+
163
+ _viewMatrix.copy( camera.matrixWorldInverse );
164
+ _viewProjectionMatrix.multiplyMatrices( camera.projectionMatrix, _viewMatrix );
165
+
166
+ renderObject( scene, scene, camera );
167
+ zOrder( scene );
168
+
169
+ };
170
+
171
+ /**
172
+ * Resizes the renderer to the given width and height.
173
+ *
174
+ * @param {number} width - The width of the renderer.
175
+ * @param {number} height - The height of the renderer.
176
+ */
177
+ this.setSize = function ( width, height ) {
178
+
179
+ _width = width;
180
+ _height = height;
181
+
182
+ _widthHalf = _width / 2;
183
+ _heightHalf = _height / 2;
184
+
185
+ domElement.style.width = width + 'px';
186
+ domElement.style.height = height + 'px';
187
+
188
+ };
189
+
190
+ function hideObject( object ) {
191
+
192
+ if ( object.isCSS2DObject ) object.element.style.display = 'none';
193
+
194
+ for ( let i = 0, l = object.children.length; i < l; i ++ ) {
195
+
196
+ hideObject( object.children[ i ] );
197
+
198
+ }
199
+
200
+ }
201
+
202
+ function renderObject( object, scene, camera ) {
203
+
204
+ if ( object.visible === false ) {
205
+
206
+ hideObject( object );
207
+
208
+ return;
209
+
210
+ }
211
+
212
+ if ( object.isCSS2DObject ) {
213
+
214
+ _vector.setFromMatrixPosition( object.matrixWorld );
215
+ _vector.applyMatrix4( _viewProjectionMatrix );
216
+
217
+ const visible = ( _vector.z >= - 1 && _vector.z <= 1 ) && ( object.layers.test( camera.layers ) === true );
218
+
219
+ const element = object.element;
220
+ element.style.display = visible === true ? '' : 'none';
221
+
222
+ if ( visible === true ) {
223
+
224
+ object.onBeforeRender( _this, scene, camera );
225
+
226
+ element.style.transform = 'translate(' + ( - 100 * object.center.x ) + '%,' + ( - 100 * object.center.y ) + '%)' + 'translate(' + ( _vector.x * _widthHalf + _widthHalf ) + 'px,' + ( - _vector.y * _heightHalf + _heightHalf ) + 'px)';
227
+
228
+ if ( element.parentNode !== domElement ) {
229
+
230
+ domElement.appendChild( element );
231
+
232
+ }
233
+
234
+ object.onAfterRender( _this, scene, camera );
235
+
236
+ }
237
+
238
+ const objectData = {
239
+ distanceToCameraSquared: getDistanceToSquared( camera, object )
240
+ };
241
+
242
+ cache.objects.set( object, objectData );
243
+
244
+ }
245
+
246
+ for ( let i = 0, l = object.children.length; i < l; i ++ ) {
247
+
248
+ renderObject( object.children[ i ], scene, camera );
249
+
250
+ }
251
+
252
+ }
253
+
254
+ function getDistanceToSquared( object1, object2 ) {
255
+
256
+ _a.setFromMatrixPosition( object1.matrixWorld );
257
+ _b.setFromMatrixPosition( object2.matrixWorld );
258
+
259
+ return _a.distanceToSquared( _b );
260
+
261
+ }
262
+
263
+ function filterAndFlatten( scene ) {
264
+
265
+ const result = [];
266
+
267
+ scene.traverseVisible( function ( object ) {
268
+
269
+ if ( object.isCSS2DObject ) result.push( object );
270
+
271
+ } );
272
+
273
+ return result;
274
+
275
+ }
276
+
277
+ function zOrder( scene ) {
278
+
279
+ const sorted = filterAndFlatten( scene ).sort( function ( a, b ) {
280
+
281
+ if ( a.renderOrder !== b.renderOrder ) {
282
+
283
+ return b.renderOrder - a.renderOrder;
284
+
285
+ }
286
+
287
+ const distanceA = cache.objects.get( a ).distanceToCameraSquared;
288
+ const distanceB = cache.objects.get( b ).distanceToCameraSquared;
289
+
290
+ return distanceA - distanceB;
291
+
292
+ } );
293
+
294
+ const zMax = sorted.length;
295
+
296
+ for ( let i = 0, l = sorted.length; i < l; i ++ ) {
297
+
298
+ sorted[ i ].element.style.zIndex = zMax - i;
299
+
300
+ }
301
+
302
+ }
303
+
304
+ }
305
+
306
+ }
307
+
308
+ exports.CSS2DObject = CSS2DObject;
309
+ exports.CSS2DRenderer = CSS2DRenderer;
@@ -1 +1,120 @@
1
- "use strict";Object.defineProperty(exports,"t",{value:!0});var e=require("three");exports.toTrianglesDrawMode=function(t,r){if(r===e.TrianglesDrawMode)return t;if(r===e.TriangleFanDrawMode||r===e.TriangleStripDrawMode){let o=t.getIndex();if(null===o){const e=[],r=t.getAttribute("position");if(void 0===r)return t;for(let t=0;t<r.count;t++)e.push(t);t.setIndex(e),o=t.getIndex()}const i=o.count-2,n=[];if(r===e.TriangleFanDrawMode)for(let e=1;e<=i;e++)n.push(o.getX(0)),n.push(o.getX(e)),n.push(o.getX(e+1));else for(let e=0;e<i;e++)e%2==0?(n.push(o.getX(e)),n.push(o.getX(e+1)),n.push(o.getX(e+2))):(n.push(o.getX(e+2)),n.push(o.getX(e+1)),n.push(o.getX(e)));n.length;const s=t.clone();return s.setIndex(n),s.clearGroups(),s}return t};
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var THREE = require('three');
6
+
7
+ /**
8
+ * Returns a new indexed geometry based on `TrianglesDrawMode` draw mode.
9
+ * This mode corresponds to the `gl.TRIANGLES` primitive in WebGL.
10
+ *
11
+ * @param {BufferGeometry} geometry - The geometry to convert.
12
+ * @param {number} drawMode - The current draw mode.
13
+ * @return {BufferGeometry} The new geometry using `TrianglesDrawMode`.
14
+ */
15
+ function toTrianglesDrawMode( geometry, drawMode ) {
16
+
17
+ if ( drawMode === THREE.TrianglesDrawMode ) {
18
+
19
+ console.warn( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles.' );
20
+ return geometry;
21
+
22
+ }
23
+
24
+ if ( drawMode === THREE.TriangleFanDrawMode || drawMode === THREE.TriangleStripDrawMode ) {
25
+
26
+ let index = geometry.getIndex();
27
+
28
+ // generate index if not present
29
+
30
+ if ( index === null ) {
31
+
32
+ const indices = [];
33
+
34
+ const position = geometry.getAttribute( 'position' );
35
+
36
+ if ( position !== undefined ) {
37
+
38
+ for ( let i = 0; i < position.count; i ++ ) {
39
+
40
+ indices.push( i );
41
+
42
+ }
43
+
44
+ geometry.setIndex( indices );
45
+ index = geometry.getIndex();
46
+
47
+ } else {
48
+
49
+ console.error( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible.' );
50
+ return geometry;
51
+
52
+ }
53
+
54
+ }
55
+
56
+ //
57
+
58
+ const numberOfTriangles = index.count - 2;
59
+ const newIndices = [];
60
+
61
+ if ( drawMode === THREE.TriangleFanDrawMode ) {
62
+
63
+ // gl.TRIANGLE_FAN
64
+
65
+ for ( let i = 1; i <= numberOfTriangles; i ++ ) {
66
+
67
+ newIndices.push( index.getX( 0 ) );
68
+ newIndices.push( index.getX( i ) );
69
+ newIndices.push( index.getX( i + 1 ) );
70
+
71
+ }
72
+
73
+ } else {
74
+
75
+ // gl.TRIANGLE_STRIP
76
+
77
+ for ( let i = 0; i < numberOfTriangles; i ++ ) {
78
+
79
+ if ( i % 2 === 0 ) {
80
+
81
+ newIndices.push( index.getX( i ) );
82
+ newIndices.push( index.getX( i + 1 ) );
83
+ newIndices.push( index.getX( i + 2 ) );
84
+
85
+ } else {
86
+
87
+ newIndices.push( index.getX( i + 2 ) );
88
+ newIndices.push( index.getX( i + 1 ) );
89
+ newIndices.push( index.getX( i ) );
90
+
91
+ }
92
+
93
+ }
94
+
95
+ }
96
+
97
+ if ( ( newIndices.length / 3 ) !== numberOfTriangles ) {
98
+
99
+ console.error( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.' );
100
+
101
+ }
102
+
103
+ // build final geometry
104
+
105
+ const newGeometry = geometry.clone();
106
+ newGeometry.setIndex( newIndices );
107
+ newGeometry.clearGroups();
108
+
109
+ return newGeometry;
110
+
111
+ } else {
112
+
113
+ console.error( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:', drawMode );
114
+ return geometry;
115
+
116
+ }
117
+
118
+ }
119
+
120
+ exports.toTrianglesDrawMode = toTrianglesDrawMode;