Find flipped normals/faces
by spacorum
HTML
<script src="https://rawgit.com/mrdoob/three.js/master/build/three.min.js"></script>
<script src="https://cdn.rawgit.com/mrdoob/stats.js/r17/build/stats.min.js"></script>
<script src="https://cdn.coursesaver.com/three.js-74/examples/js/loaders/STLLoader.js"></script>
CSS
body {
padding: 0;
margin: 0;
}
canvas {
display: block;
}
JavaScript
var methodToCheck = 8; // from 1 to 7
var camera, scene, renderer, mesh, geometry, faces, vertices, helper, material, stats;
init();
animate();
function init() {
// Renderer.
renderer = new THREE.WebGLRenderer();
//renderer.setPixelRatio(window.devicePixelRatio);
renderer.setSize(window.innerWidth, window.innerHeight);
// Add renderer to page
document.body.appendChild(renderer.domElement);
// Create camera.
camera = new THREE.PerspectiveCamera(70, window.innerWidth / window.innerHeight, 1, 1000);
camera.position.z = 50;
// Create scene.
scene = new THREE.Scene();
var stlRaw = "solid Exported from Blender-2.78 (sub 0)" + "\r\n" +
"facet normal -0.689357 0.239556 0.683666" + "\r\n" +
"outer loop" + "\r\n" +
"vertex 4.110747 8.884416 8.943341" + "\r\n" +
"vertex -9.156454 10.404820 -4.967039" + "\r\n" +
"vertex -2.674324 -3.728718 6.521428" + "\r\n" +
"endloop" + "\r\n" +
"endfacet" + "\r\n" +
"facet normal 0.058537 -0.516160 -0.854489" + "\r\n" +
"outer loop" + "\r\n" +
"vertex 10.980591 -10.847810 0.647471" + "\r\n" +
"vertex -3.088435 -11.275005 -0.058279" + "\r\n" +
"vertex -9.323990 -3.192161 -5.367946" + "\r\n" +
"endloop" + "\r\n" +
"endfacet" + "\r\n" +
"facet normal 0.826043 0.343961 -0.446479" + "\r\n" +
"outer loop" + "\r\n" +
"vertex -9.323990 -3.192161 -5.367946" + "\r\n" +
"vertex -2.674324 -3.728718 6.521428" + "\r\n" +
"vertex -3.088435 -11.275005 -0.058279" + "\r\n" +
"endloop" + "\r\n" +
"endfacet" + "\r\n" +
"facet normal 0.237720 -0.304959 0.922220" + "\r\n" +
"outer loop" + "\r\n" +
"vertex 10.980591 -10.847810 0.647471" + "\r\n" +
"vertex 4.110747 8.884416 8.943341" + "\r\n" +
"vertex -2.674324 -3.728718 6.521428" + "\r\n" +
"endloop" + "\r\n" +
"endfacet" + "\r\n" +
"facet normal -0.038375 -0.996642 -0.072333" + "\r\n" +
"outer loop" + "\r\n" +
"vertex 9.151857 9.754453 -5.718973" + "\r\n" +
"vertex 4.110747 8.884416...