Edgeshelper - partial

it works well on cube and plane

by ebeit303

HTML

<script src="http://mrdoob.github.com/three.js/build/three.min.js"></script>
<script src="http://mrdoob.github.com/three.js/examples/js/controls/TrackballControls.js"></script>

JavaScript

var scene = new THREE.Scene(); 
var light = new THREE.PointLight(0xffffff, 5, 100);
scene.add(light);
var light = new THREE.DirectionalLight(0xffffff, 10000);
light.position.set(100,-100,0);
scene.add(light);
var light = new THREE.DirectionalLight(0xffffff, 10000);
light.position.set(-100,100,0);
scene.add(light);
var camera = new THREE.PerspectiveCamera(45, window.innerWidth/window.innerHeight, 1, 100000); 
var renderer = new THREE.WebGLRenderer(); 

renderer.setSize(window.innerWidth, window.innerHeight); 
renderer.setClearColor(0xffffff, 0); // bg color
document.body.appendChild(renderer.domElement); // displays canvas

camera.position.z = 13; // move away to see coord center
camera.position.y = 0;

controls = new THREE.TrackballControls(camera, renderer.domElement);
//controls.noRotate = true;

var geometry = new THREE.PlaneGeometry(10, 10, 10,10);

var material = new THREE.MeshLambertMaterial({color:0xff0000,opacity:0.2,transparent:true,overdraw:0.5});

for (var i = 0; i < 1; i ++) {
var mesh = new THREE.Mesh(geometry, material);

mesh.position.x = i*20;
mesh.position.y = 0;//Math.random()*20-(1*i);
mesh.position.z = 0//-59;//Math.random()*20 - 100;
mesh.rotation.x = Math.random();
mesh.rotation.y = Math.random();
scene.add(mesh);

//var edges = new THREE.WireframeHelper( mesh, 0xffffff);
//edges.material.linewidth = 1;
//scene.add(edges);
    var edg = mesh.clone();
    var faces = edg.geometry.faces;
    var vertices= edg.geometry.vertices;
    var edgGeometry = new THREE.Geometry();
    var facesIndices = ["a","b","c","d"];    
    
    faces.forEach(function(f){
        if(f instanceof THREE.Face3){
            var v1 = vertices[f[facesIndices[0]]];
            var v2 = vertices[f[facesIndices[1]]];
            var v3 = vertices[f[facesIndices[2]]];
            
            var d1 = v1.distanceTo(v2);
            var d2 = v1.distanceTo(v3);
            var d3 = v3.distanceTo(v2);
            
            if( (d1 > d2)&&(d1 > d3)){            
           ...