SceneUtils.js 786 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { Matrix4 } from '../math/Matrix4.js';
  2. import { Mesh } from '../objects/Mesh.js';
  3. import { Group } from '../objects/Group.js';
  4. /**
  5. * @author alteredq / http://alteredqualia.com/
  6. */
  7. var SceneUtils = {
  8. createMultiMaterialObject: function ( geometry, materials ) {
  9. var group = new Group();
  10. for ( var i = 0, l = materials.length; i < l; i ++ ) {
  11. group.add( new Mesh( geometry, materials[ i ] ) );
  12. }
  13. return group;
  14. },
  15. detach: function ( child, parent, scene ) {
  16. child.applyMatrix( parent.matrixWorld );
  17. parent.remove( child );
  18. scene.add( child );
  19. },
  20. attach: function ( child, scene, parent ) {
  21. child.applyMatrix( new Matrix4().getInverse( parent.matrixWorld ) );
  22. scene.remove( child );
  23. parent.add( child );
  24. }
  25. };
  26. export { SceneUtils };