Преглед изворни кода

Reformated Object3D.js.
Messing with Cube example (exploring rotations).

Mr.doob пре 14 година
родитељ
комит
45de9955c5
2 измењених фајлова са 127 додато и 75 уклоњено
  1. 77 1
      examples/canvas_geometry_cube.html
  2. 50 74
      src/core/Object3D.js

+ 77 - 1
examples/canvas_geometry_cube.html

@@ -15,9 +15,85 @@
 	</head>
 	<body>
 
-		<script type="text/javascript" src="../build/Three.js"></script>
+		<!-- <script type="text/javascript" src="../build/Three.js"></script> -->
+
+		<script type="text/javascript" src="../src/Three.js"></script>
+		<script type="text/javascript" src="../src/core/Color.js"></script>
+		<script type="text/javascript" src="../src/core/Vector2.js"></script>
+		<script type="text/javascript" src="../src/core/Vector3.js"></script>
+		<script type="text/javascript" src="../src/core/Vector4.js"></script>
+		<script type="text/javascript" src="../src/core/Ray.js"></script>
+		<script type="text/javascript" src="../src/core/Rectangle.js"></script>
+		<script type="text/javascript" src="../src/core/Matrix3.js"></script>
+		<script type="text/javascript" src="../src/core/Matrix4.js"></script>
+		<script type="text/javascript" src="../src/core/Object3D.js"></script>
+		<script type="text/javascript" src="../src/core/Quaternion.js"></script>
+		<script type="text/javascript" src="../src/core/Vertex.js"></script>
+		<script type="text/javascript" src="../src/core/Face3.js"></script>
+		<script type="text/javascript" src="../src/core/Face4.js"></script>
+		<script type="text/javascript" src="../src/core/UV.js"></script>
+		<script type="text/javascript" src="../src/core/Geometry.js"></script>
+		<script type="text/javascript" src="../src/animation/AnimationHandler.js"></script>
+		<script type="text/javascript" src="../src/animation/Animation.js"></script>
+		<script type="text/javascript" src="../src/cameras/Camera.js"></script>
+		<script type="text/javascript" src="../src/lights/Light.js"></script>
+		<script type="text/javascript" src="../src/lights/AmbientLight.js"></script>
+		<script type="text/javascript" src="../src/lights/DirectionalLight.js"></script>
+		<script type="text/javascript" src="../src/lights/PointLight.js"></script>
+		<script type="text/javascript" src="../src/materials/Material.js"></script>
+		<script type="text/javascript" src="../src/materials/LineBasicMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/MeshBasicMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/MeshLambertMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/MeshPhongMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/MeshDepthMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/MeshNormalMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/MeshFaceMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/MeshShaderMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/ParticleBasicMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/ParticleCircleMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/ParticleDOMMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/Texture.js"></script>
+		<script type="text/javascript" src="../src/materials/RenderTarget.js"></script>
+		<script type="text/javascript" src="../src/materials/Uniforms.js"></script>
+		<script type="text/javascript" src="../src/materials/mappings/CubeReflectionMapping.js"></script>
+		<script type="text/javascript" src="../src/materials/mappings/CubeRefractionMapping.js"></script>
+		<script type="text/javascript" src="../src/materials/mappings/LatitudeReflectionMapping.js"></script>
+		<script type="text/javascript" src="../src/materials/mappings/LatitudeRefractionMapping.js"></script>
+		<script type="text/javascript" src="../src/materials/mappings/SphericalReflectionMapping.js"></script>
+		<script type="text/javascript" src="../src/materials/mappings/SphericalRefractionMapping.js"></script>
+		<script type="text/javascript" src="../src/materials/mappings/UVMapping.js"></script>
+		<script type="text/javascript" src="../src/objects/Particle.js"></script>
+		<script type="text/javascript" src="../src/objects/ParticleSystem.js"></script>
+		<script type="text/javascript" src="../src/objects/Line.js"></script>
+		<script type="text/javascript" src="../src/objects/Mesh.js"></script>
+		<script type="text/javascript" src="../src/objects/Bone.js"></script>
+		<script type="text/javascript" src="../src/objects/SkinnedMesh.js"></script>
+		<script type="text/javascript" src="../src/objects/Ribbon.js"></script>
+		<script type="text/javascript" src="../src/scenes/Scene.js"></script>
+		<script type="text/javascript" src="../src/scenes/Fog.js"></script>
+		<script type="text/javascript" src="../src/scenes/FogExp2.js"></script>
+		<script type="text/javascript" src="../src/renderers/Projector.js"></script>
+		<script type="text/javascript" src="../src/renderers/DOMRenderer.js"></script>
+		<script type="text/javascript" src="../src/renderers/CanvasRenderer.js"></script>
+		<script type="text/javascript" src="../src/renderers/SVGRenderer.js"></script>
+		<script type="text/javascript" src="../src/renderers/WebGLRenderer.js"></script>
+		<script type="text/javascript" src="../src/renderers/renderables/RenderableObject.js"></script>
+		<script type="text/javascript" src="../src/renderers/renderables/RenderableFace3.js"></script>
+		<script type="text/javascript" src="../src/renderers/renderables/RenderableParticle.js"></script>
+		<script type="text/javascript" src="../src/renderers/renderables/RenderableLine.js"></script>
+		<script type="text/javascript" src="../src/extras/GeometryUtils.js"></script>
+		<script type="text/javascript" src="../src/extras/ImageUtils.js"></script>
+		<script type="text/javascript" src="../src/extras/SceneUtils.js"></script>
+		<script type="text/javascript" src="../src/extras/ShaderUtils.js"></script>
 		<script type="text/javascript" src="../src/extras/primitives/Cube.js"></script>
+		<script type="text/javascript" src="../src/extras/primitives/Cylinder.js"></script>
 		<script type="text/javascript" src="../src/extras/primitives/Plane.js"></script>
+		<script type="text/javascript" src="../src/extras/primitives/Sphere.js"></script>
+		<script type="text/javascript" src="../src/extras/primitives/Torus.js"></script>
+		<script type="text/javascript" src="../src/extras/primitives/Icosahedron.js"></script>
+		<script type="text/javascript" src="../src/extras/primitives/LathedObject.js"></script>
+		<script type="text/javascript" src="../src/extras/objects/MarchingCubes.js"></script>
+		<script type="text/javascript" src="../src/extras/io/Loader.js"></script>
 
 		<script type="text/javascript" src="js/RequestAnimationFrame.js"></script>
 		<script type="text/javascript" src="js/Stats.js"></script>

+ 50 - 74
src/core/Object3D.js

@@ -34,129 +34,105 @@ THREE.Object3D = function() {
 };
 
 
-/*
- * Update
- */
-
-THREE.Object3D.prototype.update = function( parentGlobalMatrix, forceUpdate, camera ) {
-
-	// visible and auto update?
-
-	if( this.visible ) {
-
-		// update local
-
-		if( this.matrixAutoUpdate )
-			forceUpdate |= this.updateMatrix();
-
-
-		// update global
+THREE.Object3D.prototype = {
 
-		if( forceUpdate || this.matrixNeedsUpdate ) {
+	update: function ( parentGlobalMatrix, forceUpdate, camera ) {
 
-			if( parentGlobalMatrix ) {
-				
-				this.globalMatrix.multiply( parentGlobalMatrix, this.localMatrix );
+		if ( this.visible ) {
 
-			} else {
+			if ( this.matrixAutoUpdate ) {
 
-				this.globalMatrix.copy( this.localMatrix );
+				forceUpdate |= this.updateMatrix();
 
 			}
 
-			this.matrixNeedsUpdate = false;
-			forceUpdate              = true;
-
-		}
+			// update global
 
+			if ( forceUpdate || this.matrixNeedsUpdate ) {
 
-		// update children
+				if ( parentGlobalMatrix ) {
 
-		var i, l = this.children.length;
+					this.globalMatrix.multiply( parentGlobalMatrix, this.localMatrix );
 
-		for( i = 0; i < l; i++ ) {
+				} else {
 
-			this.children[ i ].update( this.globalMatrix, forceUpdate, camera );
+					this.globalMatrix.copy( this.localMatrix );
 
-		}
+				}
 
-	}
+				this.matrixNeedsUpdate = false;
+				forceUpdate              = true;
 
-};
+			}
 
 
-/*
- * Update Matrix
- */
+			// update children
 
-THREE.Object3D.prototype.updateMatrix = function() {
+			var i, l = this.children.length;
 
-	// update position
+			for ( i = 0; i < l; i++ ) {
 
-	this.localMatrix.setPosition( this.position );
+				this.children[ i ].update( this.globalMatrix, forceUpdate, camera );
 
-	// update quaternion
+			}
 
-	if( this.useQuaternion )  {
+		}
 
-		this.localMatrix.setRotationFromQuaternion( this.quaternion );
+	},
 
-	// update rotation
 
-	} else {
+	updateMatrix: function () {
 
-		this.localMatrix.setRotationFromEuler( this.rotation );
+		this.localMatrix.setPosition( this.position );
 
-	}
+		if ( this.useQuaternion )  {
 
-	// update scale
+			this.localMatrix.setRotationFromQuaternion( this.quaternion );
 
-	if( this.scale.x !== 1 || this.scale.y !== 1 || this.scale.z !== 1 ) {
+		} else {
 
-		this.localMatrix.scale( this.scale );
-		this.boundRadiusScale = Math.max( this.scale.x, Math.max( this.scale.y, this.scale.z ) );
+			this.localMatrix.setRotationFromEuler( this.rotation );
 
-	}
+		}
 
-	return true;
+		if ( this.scale.x !== 1 || this.scale.y !== 1 || this.scale.z !== 1 ) {
 
-};
+			this.localMatrix.scale( this.scale );
+			this.boundRadiusScale = Math.max( this.scale.x, Math.max( this.scale.y, this.scale.z ) );
 
+		}
 
-/*
- * AddChild
- */
+		return true;
 
-THREE.Object3D.prototype.addChild = function( child ) {
+	},
 
-	if( this.children.indexOf( child ) === -1 ) {
+	addChild: function ( child ) {
 
-		if( child.parent !== undefined )
-			child.parent.removeChild( child );
+		if ( this.children.indexOf( child ) === -1 ) {
 
-		child.parent = this;
-		this.children.push( child );
+			if( child.parent !== undefined )
+				child.parent.removeChild( child );
 
-	}
+			child.parent = this;
+			this.children.push( child );
 
-};
+		}
 
+	},
 
-/*
- * RemoveChild
- */
+	removeChild: function ( child ) {
 
-THREE.Object3D.prototype.removeChild = function( child ) {
+		var childIndex = this.children.indexOf( child );
 
-	var childIndex = this.children.indexOf( child );
+		if ( childIndex !== -1 )	{
 
-	if( childIndex !== -1 )	{
+			this.children.splice( childIndex, 1 );
+			child.parent = undefined;
 
-		this.children.splice( childIndex, 1 );
-		child.parent = undefined;
+		}
 
 	}
 
-};
+}
 
 THREE.Object3DCounter = { value: 0 };