Guest User

Untitled

a guest
Dec 11th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function merge(geometry, object) {
  2.     if (geometry.xParts === undefined)
  3.         geometry.xParts = new Array();
  4.    
  5.     // Id of the next push'd element is the current
  6.     // length of the array.
  7.     var id = geometry.xParts.length;
  8.    
  9.     // Storing informations about the mesh, and its
  10.     // offset inside the object.
  11.     geometry.xParts.push({
  12.         vertices: [geometry.vertices.length, object.vertices.length],
  13.         faces:    [geometry.faces.length,    object.vertices.length],
  14.         uvs:      [geometry.uvs.length,      object.vertices.length]
  15.     });
  16.    
  17.     // Now that everything has been saved, we can make
  18.     // the merge.
  19.     THREE.GeometryUtils.merge(geometry, object);
  20.    
  21.     return id;
  22. }
  23.  
  24. function remove(geometry, id) {
  25.     if (geometry.xParts === undefined)
  26.         return ;
  27.     if (geometry.xParts.length >= id)
  28.         return ;
  29.     if (geometry.xParts[id] === null)
  30.         return ;
  31.    
  32.     // We must not be able to remove same mesh twice
  33.     // But we can't just splice it, or all others ids will
  34.     // be invalids.
  35.     var part = geometry.xParts[id];
  36.     geometry.xParts[id] = null;
  37.    
  38.     // Removing mesh informations
  39.     geometry.vertices.slice(part.vertices[0], part.vertices[1]);
  40.     geometry.faces.slice(part.faces[0], part.faces[1]);
  41.     geometry.uvs.slice(part.uvs[0], part.uvs[1]);
  42.    
  43.     // Updating index of next geometry parts
  44.     for (var t = id; t < geometry.xParts.length; ++t) {
  45.         var temp = geometry.xParts[t];
  46.         temp.vertices[0] -= part.vertices[1];
  47.         temp.faces[0] -= part.faces[1];
  48.         temp.uvs[0] -= part.uvs[1];
  49.     }
  50. }
Add Comment
Please, Sign In to add comment