Skip to content

Instantly share code, notes, and snippets.

@Ni55aN
Created December 24, 2017 11:19
Show Gist options
  • Save Ni55aN/4c3f438058b043c951a66eec0f2ba0b6 to your computer and use it in GitHub Desktop.
Save Ni55aN/4c3f438058b043c951a66eec0f2ba0b6 to your computer and use it in GitHub Desktop.
function optimizeGeometry(geometry) {
var saveVerts = [];
geometry.vertices.forEach((vert, i) => {
var present = geometry.faces.some(face => {
return face[0] === i || face[1] === i || face[2] === i
});
if (present)
saveVerts.push(i);
});
geometry.faces.forEach((face, i) => { // replace indices
face[0] = saveVerts.indexOf(face[0]);
face[1] = saveVerts.indexOf(face[1]);
face[2] = saveVerts.indexOf(face[2]);
})
geometry.vertices = geometry.vertices.filter((vert, i) => { // save only used vertices
return saveVerts.indexOf(i) !== -1;
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment