فهرست منبع

Updated builds.

Mr.doob 11 سال پیش
والد
کامیت
0b57d4be49
2فایلهای تغییر یافته به همراه411 افزوده شده و 357 حذف شده
  1. 83 29
      build/three.js
  2. 328 328
      build/three.min.js

+ 83 - 29
build/three.js

@@ -8069,6 +8069,20 @@ THREE.Projector = function () {
 
 		};
 
+		var handleLine = function ( a, b ) {
+
+			_line = getNextLineInPool();
+
+			_line.id = object.id;
+			_line.v1.copy( _vertexPool[ a ] );
+			_line.v2.copy( _vertexPool[ b ] );
+
+			_line.material = object.material;
+
+			_renderData.elements.push( _line );
+
+		};
+
 		var handleTriangle = function ( a, b, c ) {
 
 			var v1 = _vertexPool[ a ];
@@ -8097,6 +8111,7 @@ THREE.Projector = function () {
 			projectVertex: projectVertex,
 			checkTriangleVisibility: checkTriangleVisibility,
 			handleVertex: handleVertex,
+			handleLine: handleLine,
 			handleTriangle: handleTriangle
 		}
 
@@ -8130,6 +8145,7 @@ THREE.Projector = function () {
 		for ( var o = 0, ol = _renderData.objects.length; o < ol; o ++ ) {
 
 			object = _renderData.objects[ o ].object;
+			geometry = object.geometry;
 
 			renderState.setObject( object );
 
@@ -8139,8 +8155,6 @@ THREE.Projector = function () {
 
 			if ( object instanceof THREE.Mesh ) {
 
-				geometry = object.geometry;
-
 				if ( geometry instanceof THREE.BufferGeometry ) {
 
 					var attributes = geometry.attributes;
@@ -8332,52 +8346,92 @@ THREE.Projector = function () {
 
 			} else if ( object instanceof THREE.Line ) {
 
-				_modelViewProjectionMatrix.multiplyMatrices( _viewProjectionMatrix, _modelMatrix );
+				if ( geometry instanceof THREE.BufferGeometry ) {
+
+					var attributes = geometry.attributes;
+
+					if ( attributes.position !== undefined ) {
+
+						var positions = attributes.position.array;
+
+						for ( var i = 0, l = positions.length; i < l; i += 3 ) {
+
+							renderState.handleVertex( positions[ i ], positions[ i + 1 ], positions[ i + 2 ] );
+
+						}
+
+						if ( attributes.index !== undefined ) {
+
+							var indices = attributes.index.array;
+
+							for ( var i = 0, l = indices.length; i < l; i += 2 ) {
+
+								renderState.handleLine( indices[ i ], indices[ i + 1 ] );
+
+							}
+
+						} else {
+
+							for ( var i = 0, l = ( positions.length / 3 ) - 1; i < l; i ++ ) {
+
+								renderState.handleLine( i, i + 1 );
+
+							}
+
+						}
 
-				vertices = object.geometry.vertices;
+					}
 
-				v1 = getNextVertexInPool();
-				v1.positionScreen.copy( vertices[ 0 ] ).applyMatrix4( _modelViewProjectionMatrix );
+				} else if ( geometry instanceof THREE.Geometry ) {
 
-				// Handle LineStrip and LinePieces
-				var step = object.type === THREE.LinePieces ? 2 : 1;
+					_modelViewProjectionMatrix.multiplyMatrices( _viewProjectionMatrix, _modelMatrix );
 
-				for ( v = 1, vl = vertices.length; v < vl; v ++ ) {
+					vertices = object.geometry.vertices;
 
 					v1 = getNextVertexInPool();
-					v1.positionScreen.copy( vertices[ v ] ).applyMatrix4( _modelViewProjectionMatrix );
+					v1.positionScreen.copy( vertices[ 0 ] ).applyMatrix4( _modelViewProjectionMatrix );
 
-					if ( ( v + 1 ) % step > 0 ) continue;
+					// Handle LineStrip and LinePieces
+					var step = object.type === THREE.LinePieces ? 2 : 1;
 
-					v2 = _vertexPool[ _vertexCount - 2 ];
+					for ( v = 1, vl = vertices.length; v < vl; v ++ ) {
 
-					_clippedVertex1PositionScreen.copy( v1.positionScreen );
-					_clippedVertex2PositionScreen.copy( v2.positionScreen );
+						v1 = getNextVertexInPool();
+						v1.positionScreen.copy( vertices[ v ] ).applyMatrix4( _modelViewProjectionMatrix );
 
-					if ( clipLine( _clippedVertex1PositionScreen, _clippedVertex2PositionScreen ) === true ) {
+						if ( ( v + 1 ) % step > 0 ) continue;
 
-						// Perform the perspective divide
-						_clippedVertex1PositionScreen.multiplyScalar( 1 / _clippedVertex1PositionScreen.w );
-						_clippedVertex2PositionScreen.multiplyScalar( 1 / _clippedVertex2PositionScreen.w );
+						v2 = _vertexPool[ _vertexCount - 2 ];
 
-						_line = getNextLineInPool();
+						_clippedVertex1PositionScreen.copy( v1.positionScreen );
+						_clippedVertex2PositionScreen.copy( v2.positionScreen );
 
-						_line.id = object.id;
-						_line.v1.positionScreen.copy( _clippedVertex1PositionScreen );
-						_line.v2.positionScreen.copy( _clippedVertex2PositionScreen );
+						if ( clipLine( _clippedVertex1PositionScreen, _clippedVertex2PositionScreen ) === true ) {
 
-						_line.z = Math.max( _clippedVertex1PositionScreen.z, _clippedVertex2PositionScreen.z );
+							// Perform the perspective divide
+							_clippedVertex1PositionScreen.multiplyScalar( 1 / _clippedVertex1PositionScreen.w );
+							_clippedVertex2PositionScreen.multiplyScalar( 1 / _clippedVertex2PositionScreen.w );
 
-						_line.material = object.material;
+							_line = getNextLineInPool();
 
-						if ( object.material.vertexColors === THREE.VertexColors ) {
+							_line.id = object.id;
+							_line.v1.positionScreen.copy( _clippedVertex1PositionScreen );
+							_line.v2.positionScreen.copy( _clippedVertex2PositionScreen );
 
-							_line.vertexColors[ 0 ].copy( object.geometry.colors[ v ] );
-							_line.vertexColors[ 1 ].copy( object.geometry.colors[ v - 1 ] );
+							_line.z = Math.max( _clippedVertex1PositionScreen.z, _clippedVertex2PositionScreen.z );
 
-						}
+							_line.material = object.material;
 
-						_renderData.elements.push( _line );
+							if ( object.material.vertexColors === THREE.VertexColors ) {
+
+								_line.vertexColors[ 0 ].copy( object.geometry.colors[ v ] );
+								_line.vertexColors[ 1 ].copy( object.geometry.colors[ v - 1 ] );
+
+							}
+
+							_renderData.elements.push( _line );
+
+						}
 
 					}
 

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 328 - 328
build/three.min.js


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است