webvr js meetup initial commit
This commit is contained in:
75
node_modules/three/examples/js/exporters/STLExporter.js
generated
vendored
Normal file
75
node_modules/three/examples/js/exporters/STLExporter.js
generated
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
/**
|
||||
* @author kovacsv / http://kovacsv.hu/
|
||||
* @author mrdoob / http://mrdoob.com/
|
||||
*/
|
||||
|
||||
THREE.STLExporter = function () {};
|
||||
|
||||
THREE.STLExporter.prototype = {
|
||||
|
||||
constructor: THREE.STLExporter,
|
||||
|
||||
parse: ( function () {
|
||||
|
||||
var vector = new THREE.Vector3();
|
||||
var normalMatrixWorld = new THREE.Matrix3();
|
||||
|
||||
return function parse( scene ) {
|
||||
|
||||
var output = '';
|
||||
|
||||
output += 'solid exported\n';
|
||||
|
||||
scene.traverse( function ( object ) {
|
||||
|
||||
if ( object instanceof THREE.Mesh ) {
|
||||
|
||||
var geometry = object.geometry;
|
||||
var matrixWorld = object.matrixWorld;
|
||||
|
||||
if ( geometry instanceof THREE.Geometry ) {
|
||||
|
||||
var vertices = geometry.vertices;
|
||||
var faces = geometry.faces;
|
||||
|
||||
normalMatrixWorld.getNormalMatrix( matrixWorld );
|
||||
|
||||
for ( var i = 0, l = faces.length; i < l; i ++ ) {
|
||||
|
||||
var face = faces[ i ];
|
||||
|
||||
vector.copy( face.normal ).applyMatrix3( normalMatrixWorld ).normalize();
|
||||
|
||||
output += '\tfacet normal ' + vector.x + ' ' + vector.y + ' ' + vector.z + '\n';
|
||||
output += '\t\touter loop\n';
|
||||
|
||||
var indices = [ face.a, face.b, face.c ];
|
||||
|
||||
for ( var j = 0; j < 3; j ++ ) {
|
||||
|
||||
vector.copy( vertices[ indices[ j ] ] ).applyMatrix4( matrixWorld );
|
||||
|
||||
output += '\t\t\tvertex ' + vector.x + ' ' + vector.y + ' ' + vector.z + '\n';
|
||||
|
||||
}
|
||||
|
||||
output += '\t\tendloop\n';
|
||||
output += '\tendfacet\n';
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} );
|
||||
|
||||
output += 'endsolid exported\n';
|
||||
|
||||
return output;
|
||||
|
||||
};
|
||||
|
||||
}() )
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user