48 lines
846 B
JavaScript
48 lines
846 B
JavaScript
import { Matrix4 } from '../math/Matrix4';
|
|
import { Mesh } from '../objects/Mesh';
|
|
import { Group } from '../objects/Group';
|
|
|
|
/**
|
|
* @author alteredq / http://alteredqualia.com/
|
|
*/
|
|
|
|
var SceneUtils = {
|
|
|
|
createMultiMaterialObject: function ( geometry, materials ) {
|
|
|
|
var group = new Group();
|
|
|
|
for ( var i = 0, l = materials.length; i < l; i ++ ) {
|
|
|
|
group.add( new Mesh( geometry, materials[ i ] ) );
|
|
|
|
}
|
|
|
|
return group;
|
|
|
|
},
|
|
|
|
detach: function ( child, parent, scene ) {
|
|
|
|
child.applyMatrix( parent.matrixWorld );
|
|
parent.remove( child );
|
|
scene.add( child );
|
|
|
|
},
|
|
|
|
attach: function ( child, scene, parent ) {
|
|
|
|
var matrixWorldInverse = new Matrix4();
|
|
matrixWorldInverse.getInverse( parent.matrixWorld );
|
|
child.applyMatrix( matrixWorldInverse );
|
|
|
|
scene.remove( child );
|
|
parent.add( child );
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
export { SceneUtils };
|