Ver Fonte

GUI: Handle STL files.

Mr.doob há 13 anos atrás
pai
commit
a2c33129e0
3 ficheiros alterados com 34 adições e 21 exclusões
  1. 4 4
      examples/js/loaders/OBJLoader.js
  2. 1 0
      examples/js/loaders/STLLoader.js
  3. 29 17
      gui/index.html

+ 4 - 4
examples/js/loaders/OBJLoader.js

@@ -141,7 +141,7 @@ THREE.OBJLoader.prototype = {
 				// ["f 1 2 3", "1", "2", "3", undefined]
 
 				if ( result[ 4 ] === undefined ) {
-			
+
 					geometry.faces.push( face3(
 						parseInt( result[ 1 ] ) - 1,
 						parseInt( result[ 2 ] ) - 1,
@@ -170,7 +170,7 @@ THREE.OBJLoader.prototype = {
 				// ["f 1/1 2/2 3/3", " 1/1", "1", "1", " 2/2", "2", "2", " 3/3", "3", "3", undefined, undefined, undefined]
 
 				if ( result[ 10 ] === undefined ) {
-			
+
 					geometry.faces.push( face3(
 						parseInt( result[ 2 ] ) - 1,
 						parseInt( result[ 5 ] ) - 1,
@@ -212,7 +212,7 @@ THREE.OBJLoader.prototype = {
 				// ["f 1/1/1 2/2/2 3/3/3", " 1/1/1", "1", "1", "1", " 2/2/2", "2", "2", "2", " 3/3/3", "3", "3", "3", undefined, undefined, undefined, undefined]
 
 				if ( result[ 13 ] === undefined ) {
-			
+
 					geometry.faces.push( face3(
 						parseInt( result[ 2 ] ) - 1,
 						parseInt( result[ 6 ] ) - 1,
@@ -266,7 +266,7 @@ THREE.OBJLoader.prototype = {
 				// ["f 1//1 2//2 3//3", " 1//1", "1", "1", " 2//2", "2", "2", " 3//3", "3", "3", undefined, undefined, undefined]
 
 				if ( result[ 10 ] === undefined ) {
-			
+
 					geometry.faces.push( face3(
 						parseInt( result[ 2 ] ) - 1,
 						parseInt( result[ 5 ] ) - 1,

+ 1 - 0
examples/js/loaders/STLLoader.js

@@ -93,6 +93,7 @@ THREE.STLLoader.prototype = {
 		}
 
 		geometry.computeCentroids();
+		geometry.computeBoundingSphere();
 
 		return geometry;
 

+ 29 - 17
gui/index.html

@@ -19,23 +19,24 @@
 	</head>
 	<body>
 
-		<script type="text/javascript" src="../build/three.min.js"></script>
-		<script type="text/javascript" src="../examples/js/loaders/ColladaLoader.js"></script>
-		<script type="text/javascript" src="../examples/js/loaders/OBJLoader.js"></script>
-		<script type="text/javascript" src="../examples/js/loaders/UTF8Loader.js"></script>
-		<script type="text/javascript" src="../examples/js/loaders/VTKLoader.js"></script>
-
-		<script type="text/javascript" src="js/libs/signals.min.js"></script>
-
-		<script type="text/javascript" src="js/UI.js"></script>
-		<script type="text/javascript" src="js/ui/Menubar.js"></script>
-		<script type="text/javascript" src="js/ui/Viewport.js"></script>
-		<script type="text/javascript" src="js/ui/Sidebar.js"></script>
-		<script type="text/javascript" src="js/ui/Sidebar.Outliner.js"></script>
-		<script type="text/javascript" src="js/ui/Sidebar.Properties.js"></script>
-		<script type="text/javascript" src="js/ui/Sidebar.Properties.Object3D.js"></script>
-		<script type="text/javascript" src="js/ui/Sidebar.Properties.Geometry.js"></script>
-		<script type="text/javascript" src="js/ui/Sidebar.Properties.Material.js"></script>
+		<script src="../build/three.min.js"></script>
+		<script src="../examples/js/loaders/ColladaLoader.js"></script>
+		<script src="../examples/js/loaders/OBJLoader.js"></script>
+		<script src="../examples/js/loaders/STLLoader.js"></script>
+		<script src="../examples/js/loaders/UTF8Loader.js"></script>
+		<script src="../examples/js/loaders/VTKLoader.js"></script>
+
+		<script src="js/libs/signals.min.js"></script>
+
+		<script src="js/UI.js"></script>
+		<script src="js/ui/Menubar.js"></script>
+		<script src="js/ui/Viewport.js"></script>
+		<script src="js/ui/Sidebar.js"></script>
+		<script src="js/ui/Sidebar.Outliner.js"></script>
+		<script src="js/ui/Sidebar.Properties.js"></script>
+		<script src="js/ui/Sidebar.Properties.Object3D.js"></script>
+		<script src="js/ui/Sidebar.Properties.Geometry.js"></script>
+		<script src="js/ui/Sidebar.Properties.Material.js"></script>
 
 		<script>
 
@@ -124,6 +125,17 @@
 
 							break;
 
+						case 'stl':
+
+							var geometry = new THREE.STLLoader().parse( contents );
+
+							var mesh = new THREE.Mesh( geometry );
+
+							signals.objectAdded.dispatch( mesh );
+							signals.objectSelected.dispatch( mesh );
+
+							break;
+
 						case 'utf8':
 
 							// TODO