提交 25e8b7d8 编写于 作者: Z zz85

adds Vector3 support to CurvePath bounding box as discussed in #2157

上级 c9e88e32
......@@ -140,15 +140,17 @@ THREE.CurvePath.prototype.getBoundingBox = function () {
var points = this.getPoints();
var maxX, maxY;
var minX, minY;
var maxX, maxY, maxZ;
var minX, minY, minZ;
maxX = maxY = Number.NEGATIVE_INFINITY;
minX = minY = Number.POSITIVE_INFINITY;
var p, i, il, sum;
sum = new THREE.Vector2();
var v3 = points[0] instanceof THREE.Vector3;
sum = v3 ? new THREE.Vector3() : new THREE.Vector2();
for ( i = 0, il = points.length; i < il; i ++ ) {
......@@ -160,20 +162,39 @@ THREE.CurvePath.prototype.getBoundingBox = function () {
if ( p.y > maxY ) maxY = p.y;
else if ( p.y < minY ) minY = p.y;
sum.addSelf( p.x, p.y );
if (v3) {
if ( p.z > maxZ ) maxZ = p.z;
else if ( p.z < minZ ) minZ = p.z;
sum.addSelf( p.x, p.y, p.z );
} else {
sum.addSelf( p.x, p.y );
}
}
return {
var ret = {
minX: minX,
minY: minY,
maxX: maxX,
maxY: maxY,
centroid: sum.divideScalar( il )
};
if (v3) {
ret.maxZ = maxZ;
ret.minZ = minZ;
}
return ret;
};
/**************************************************************
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册