Explorar o código

Updated builds.

Mr.doob %!s(int64=11) %!d(string=hai) anos
pai
achega
ab01e31c10
Modificáronse 2 ficheiros con 254 adicións e 221 borrados
  1. 82 46
      build/three.js
  2. 172 175
      build/three.min.js

+ 82 - 46
build/three.js

@@ -16807,19 +16807,7 @@ THREE.CanvasRenderer = function ( parameters ) {
 
 	if ( _context.setLineDash === undefined ) {
 
-		if ( _context.mozDash !== undefined ) {
-
-			_context.setLineDash = function ( values ) {
-
-				_context.mozDash = values[ 0 ] !== null ? values : null;
-
-			}
-
-		} else {
-
-			_context.setLineDash = function () {}
-
-		}
+		_context.setLineDash = function () {}
 
 	}
 
@@ -30455,9 +30443,80 @@ THREE.Path.prototype.getPoints = function( divisions, closedPath ) {
 
 };
 
+//
 // Breaks path into shapes
+//
+//	Assumptions (if parameter isCCW==true the opposite holds):
+//	- solid shapes are defined clockwise (CW)
+//	- holes are defined counterclockwise (CCW)
+//
+//	If parameter noHoles==true:
+//  - all subPaths are regarded as solid shapes
+//  - definition order CW/CCW has no relevance
+//
+
+THREE.Path.prototype.toShapes = function( isCCW, noHoles ) {
+
+	function extractSubpaths( inActions ) {
+
+		var i, il, item, action, args;
+
+		var subPaths = [], lastPath = new THREE.Path();
+
+		for ( i = 0, il = inActions.length; i < il; i ++ ) {
+
+			item = inActions[ i ];
+
+			args = item.args;
+			action = item.action;
+
+			if ( action == THREE.PathActions.MOVE_TO ) {
+
+				if ( lastPath.actions.length != 0 ) {
+
+					subPaths.push( lastPath );
+					lastPath = new THREE.Path();
+
+				}
+
+			}
+
+			lastPath[ action ].apply( lastPath, args );
+
+		}
+
+		if ( lastPath.actions.length != 0 ) {
+
+			subPaths.push( lastPath );
+
+		}
+
+		// console.log(subPaths);
+
+		return	subPaths;
+	}
+
+	function toShapesNoHoles( inSubpaths ) {
 
-THREE.Path.prototype.toShapes = function( isCCW ) {
+		var i, il;
+		var tmpPath, tmpShape;
+		var shapes = [];
+
+		for ( i = 0, il = inSubpaths.length; i < il; i ++ ) {
+
+			tmpPath = inSubpaths[ i ];
+
+			tmpShape = new THREE.Shape();
+			tmpShape.actions = tmpPath.actions;
+			tmpShape.curves = tmpPath.curves;
+
+			shapes.push( tmpShape );
+		}
+
+		//console.log("shape", shapes);
+
+		return shapes;
+	};
 
 	function isPointInsidePolygon( inPt, inPolygon ) {
 		var EPSILON = 0.0000000001;
@@ -30504,41 +30563,12 @@ THREE.Path.prototype.toShapes = function( isCCW ) {
 		return	inside;
 	}
 
-	var i, il, item, action, args;
-
-	var subPaths = [], lastPath = new THREE.Path();
-
-	for ( i = 0, il = this.actions.length; i < il; i ++ ) {
-
-		item = this.actions[ i ];
-
-		args = item.args;
-		action = item.action;
-
-		if ( action == THREE.PathActions.MOVE_TO ) {
-
-			if ( lastPath.actions.length != 0 ) {
-
-				subPaths.push( lastPath );
-				lastPath = new THREE.Path();
-
-			}
-
-		}
-
-		lastPath[ action ].apply( lastPath, args );
-
-	}
-
-	if ( lastPath.actions.length != 0 ) {
-
-		subPaths.push( lastPath );
 
-	}
+	var subPaths = extractSubpaths( this.actions );
+	if ( subPaths.length == 0 ) return [];
 
-	// console.log(subPaths);
+	if ( noHoles )	return	toShapesNoHoles( subPaths );
 
-	if ( subPaths.length == 0 ) return [];
 
 	var solid, tmpPath, tmpShape, shapes = [];
 
@@ -30567,6 +30597,8 @@ THREE.Path.prototype.toShapes = function( isCCW ) {
 	newShapes[mainIdx] = undefined;
 	newShapeHoles[mainIdx] = [];
 
+	var i, il;
+
 	for ( i = 0, il = subPaths.length; i < il; i ++ ) {
 
 		tmpPath = subPaths[ i ];
@@ -30597,6 +30629,10 @@ THREE.Path.prototype.toShapes = function( isCCW ) {
 
 	}
 
+	// only Holes? -> probably all Shapes with wrong orientation
+	if ( !newShapes[0] )	return	toShapesNoHoles( subPaths );
+
+
 	if ( newShapes.length > 1 ) {
 		var ambigious = false;
 		var toChange = [];

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 172 - 175
build/three.min.js


Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio