2
0

SceneUtils.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import {
  2. Group,
  3. Mesh
  4. } from '../../../build/three.module.js';
  5. var SceneUtils = {
  6. createMeshesFromInstancedMesh: function ( instancedMesh ) {
  7. var group = new Group();
  8. var count = instancedMesh.count;
  9. var geometry = instancedMesh.geometry;
  10. var material = instancedMesh.material;
  11. for ( var i = 0; i < count; i ++ ) {
  12. var mesh = new Mesh( geometry, material );
  13. instancedMesh.getMatrixAt( i, mesh.matrix );
  14. mesh.matrix.decompose( mesh.position, mesh.quaternion, mesh.scale );
  15. group.add( mesh );
  16. }
  17. group.copy( instancedMesh );
  18. group.updateMatrixWorld(); // ensure correct world matrices of meshes
  19. return group;
  20. },
  21. createMultiMaterialObject: function ( geometry, materials ) {
  22. var group = new Group();
  23. for ( var i = 0, l = materials.length; i < l; i ++ ) {
  24. group.add( new Mesh( geometry, materials[ i ] ) );
  25. }
  26. return group;
  27. },
  28. detach: function ( child, parent, scene ) {
  29. console.warn( 'THREE.SceneUtils: detach() has been deprecated. Use scene.attach( child ) instead.' );
  30. scene.attach( child );
  31. },
  32. attach: function ( child, scene, parent ) {
  33. console.warn( 'THREE.SceneUtils: attach() has been deprecated. Use parent.attach( child ) instead.' );
  34. parent.attach( child );
  35. }
  36. };
  37. export { SceneUtils };