SceneUtils.js 725 B

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