提交 ab01e31c 编写于 作者: M Mr.doob

Updated builds.

上级 38f1b0eb
......@@ -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 = [];
......
因为 它太大了无法显示 source diff 。你可以改为 查看blob
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册