SceneUtils.js 1.2 KB

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