Bläddra i källkod

Editor: Added SkeletonHelpers.

Mr.doob 11 år sedan
förälder
incheckning
457c5408e1
3 ändrade filer med 40 tillägg och 0 borttagningar
  1. 4 0
      editor/js/Editor.js
  2. 24 0
      editor/js/Sidebar.Material.js
  3. 12 0
      editor/js/Viewport.js

+ 4 - 0
editor/js/Editor.js

@@ -198,6 +198,10 @@ Editor.prototype = {
 
 				helper = new THREE.HemisphereLightHelper( object, 10 );
 
+			} else if ( object instanceof THREE.SkinnedMesh ) {
+
+				helper = new THREE.SkeletonHelper( object );
+
 			} else {
 
 				// no helper for this object type

+ 24 - 0
editor/js/Sidebar.Material.js

@@ -147,6 +147,17 @@ Sidebar.Material = function ( editor ) {
 	container.add( materialVertexColorsRow );
 
 
+	// skinning
+
+	var materialSkinningRow = new UI.Panel();
+	var materialSkinning = new UI.Checkbox( false ).onChange( update );
+
+	materialSkinningRow.add( new UI.Text( 'Skinning' ).setWidth( '90px' ) );
+	materialSkinningRow.add( materialSkinning );
+
+	container.add( materialSkinningRow );
+
+
 	// map
 
 	var materialMapRow = new UI.Panel();
@@ -370,6 +381,12 @@ Sidebar.Material = function ( editor ) {
 
 			}
 
+			if ( material.skinning !== undefined ) {
+
+				material.skinning = materialSkinning.getValue();
+
+			}
+
 			if ( material.map !== undefined ) {
 
 				var mapEnabled = materialMapEnabled.getValue() === true;
@@ -558,6 +575,7 @@ Sidebar.Material = function ( editor ) {
 			'specular': materialSpecularRow,
 			'shininess': materialShininessRow,
 			'vertexColors': materialVertexColorsRow,
+			'skinning': materialSkinningRow,
 			'map': materialMapRow,
 			'lightMap': materialLightMapRow,
 			'bumpMap': materialBumpMapRow,
@@ -641,6 +659,12 @@ Sidebar.Material = function ( editor ) {
 
 			}
 
+			if ( material.skinning !== undefined ) {
+
+				materialSkinning.setValue( material.skinning );
+
+			}
+
 			if ( material.map !== undefined ) {
 
 				materialMapEnabled.setValue( material.map !== null );

+ 12 - 0
editor/js/Viewport.js

@@ -570,6 +570,18 @@ var Viewport = function ( editor ) {
 
 			THREE.AnimationHandler.update( 0.016 );
 
+			for ( var i = 0, l = sceneHelpers.children.length; i < l; i ++ ) {
+
+				var helper = sceneHelpers.children[ i ];
+
+				if ( helper instanceof THREE.SkeletonHelper ) {
+
+					helper.update();
+
+				}
+
+			}
+
 			render();
 
 		}