|
@@ -19,8 +19,7 @@ THREE.FaceNormalsHelper = function ( object, size, hex, linewidth ) {
|
|
|
|
|
|
for ( var i = 0, l = faces.length; i < l; i ++ ) {
|
|
|
|
|
|
- geometry.vertices.push( new THREE.Vector3() );
|
|
|
- geometry.vertices.push( new THREE.Vector3() );
|
|
|
+ geometry.vertices.push( new THREE.Vector3(), new THREE.Vector3() );
|
|
|
|
|
|
}
|
|
|
|
|
@@ -36,41 +35,40 @@ THREE.FaceNormalsHelper = function ( object, size, hex, linewidth ) {
|
|
|
|
|
|
THREE.FaceNormalsHelper.prototype = Object.create( THREE.Line.prototype );
|
|
|
|
|
|
-THREE.FaceNormalsHelper.prototype.update = ( function ( object ) {
|
|
|
+THREE.FaceNormalsHelper.prototype.update = function () {
|
|
|
|
|
|
- var v1 = new THREE.Vector3();
|
|
|
+ var vertices = this.geometry.vertices;
|
|
|
|
|
|
- return function ( object ) {
|
|
|
+ var object = this.object;
|
|
|
+ var objectVertices = object.geometry.vertices;
|
|
|
+ var objectFaces = object.geometry.faces;
|
|
|
+ var objectWorldMatrix = object.matrixWorld;
|
|
|
|
|
|
- this.object.updateMatrixWorld( true );
|
|
|
+ object.updateMatrixWorld( true );
|
|
|
|
|
|
- this.normalMatrix.getNormalMatrix( this.object.matrixWorld );
|
|
|
+ this.normalMatrix.getNormalMatrix( objectWorldMatrix );
|
|
|
|
|
|
- var vertices = this.geometry.vertices;
|
|
|
+ for ( var i = 0, i2 = 0, l = objectFaces.length; i < l; i ++, i2 += 2 ) {
|
|
|
|
|
|
- var faces = this.object.geometry.faces;
|
|
|
+ var face = objectFaces[ i ];
|
|
|
|
|
|
- var worldMatrix = this.object.matrixWorld;
|
|
|
+ vertices[ i2 ].copy( objectVertices[ face.a ] )
|
|
|
+ .add( objectVertices[ face.b ] )
|
|
|
+ .add( objectVertices[ face.c ] )
|
|
|
+ .divideScalar( 3 )
|
|
|
+ .applyMatrix4( objectWorldMatrix );
|
|
|
|
|
|
- for ( var i = 0, l = faces.length; i < l; i ++ ) {
|
|
|
+ vertices[ i2 + 1 ].copy( face.normal )
|
|
|
+ .applyMatrix3( this.normalMatrix )
|
|
|
+ .normalize()
|
|
|
+ .multiplyScalar( this.size )
|
|
|
+ .add( vertices[ i2 ] );
|
|
|
|
|
|
- var face = faces[ i ];
|
|
|
-
|
|
|
- v1.copy( face.normal ).applyMatrix3( this.normalMatrix ).normalize().multiplyScalar( this.size );
|
|
|
-
|
|
|
- var idx = 2 * i;
|
|
|
-
|
|
|
- vertices[ idx ].copy( face.centroid ).applyMatrix4( worldMatrix );
|
|
|
-
|
|
|
- vertices[ idx + 1 ].addVectors( vertices[ idx ], v1 );
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- this.geometry.verticesNeedUpdate = true;
|
|
|
+ }
|
|
|
|
|
|
- return this;
|
|
|
+ this.geometry.verticesNeedUpdate = true;
|
|
|
|
|
|
- }
|
|
|
+ return this;
|
|
|
|
|
|
-}());
|
|
|
+};
|
|
|
|