ExplodeModifier.js 721 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /**
  2. * Make all faces use unique vertices
  3. * so that each face can be separated from others
  4. */
  5. var ExplodeModifier = function () {
  6. };
  7. ExplodeModifier.prototype.modify = function ( geometry ) {
  8. var vertices = [];
  9. for ( var i = 0, il = geometry.faces.length; i < il; i ++ ) {
  10. var n = vertices.length;
  11. var face = geometry.faces[ i ];
  12. var a = face.a;
  13. var b = face.b;
  14. var c = face.c;
  15. var va = geometry.vertices[ a ];
  16. var vb = geometry.vertices[ b ];
  17. var vc = geometry.vertices[ c ];
  18. vertices.push( va.clone() );
  19. vertices.push( vb.clone() );
  20. vertices.push( vc.clone() );
  21. face.a = n;
  22. face.b = n + 1;
  23. face.c = n + 2;
  24. }
  25. geometry.vertices = vertices;
  26. };
  27. export { ExplodeModifier };