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

Updated builds.

上级 eb8f5cb0
......@@ -11780,35 +11780,59 @@
computeBoundingBox: function () {
if ( this.boundingBox === null ) {
var box = new Box3();
this.boundingBox = new Box3();
return function computeBoundingBox() {
}
if ( this.boundingBox === null ) {
var position = this.attributes.position;
this.boundingBox = new Box3();
if ( position !== undefined ) {
}
this.boundingBox.setFromBufferAttribute( position );
var position = this.attributes.position;
var morphAttributesPosition = this.morphAttributes.position;
} else {
if ( position !== undefined ) {
this.boundingBox.makeEmpty();
this.boundingBox.setFromBufferAttribute( position );
}
// process morph attributes if present
if ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) {
if ( morphAttributesPosition ) {
console.error( 'THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.', this );
for ( var i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {
}
var morphAttribute = morphAttributesPosition[ i ];
box.setFromBufferAttribute( morphAttribute );
},
this.boundingBox.expandByPoint( box.min );
this.boundingBox.expandByPoint( box.max );
}
}
} else {
this.boundingBox.makeEmpty();
}
if ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) {
console.error( 'THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.', this );
}
};
}(),
computeBoundingSphere: function () {
var box = new Box3();
var boxMorphTargets = new Box3();
var vector = new Vector3();
return function computeBoundingSphere() {
......@@ -11820,28 +11844,67 @@
}
var position = this.attributes.position;
var morphAttributesPosition = this.morphAttributes.position;
if ( position ) {
// first, find the center of the bounding sphere
var center = this.boundingSphere.center;
box.setFromBufferAttribute( position );
// process morph attributes if present
if ( morphAttributesPosition ) {
for ( var i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {
var morphAttribute = morphAttributesPosition[ i ];
boxMorphTargets.setFromBufferAttribute( morphAttribute );
box.expandByPoint( boxMorphTargets.min );
box.expandByPoint( boxMorphTargets.max );
}
}
box.getCenter( center );
// hoping to find a boundingSphere with a radius smaller than the
// second, try to find a boundingSphere with a radius smaller than the
// boundingSphere of the boundingBox: sqrt(3) smaller in the best case
var maxRadiusSq = 0;
for ( var i = 0, il = position.count; i < il; i ++ ) {
vector.x = position.getX( i );
vector.y = position.getY( i );
vector.z = position.getZ( i );
vector.fromBufferAttribute( position, i );
maxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( vector ) );
}
// process morph attributes if present
if ( morphAttributesPosition ) {
for ( var i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {
var morphAttribute = morphAttributesPosition[ i ];
for ( var j = 0, jl = morphAttribute.count; j < jl; j ++ ) {
vector.fromBufferAttribute( morphAttribute, i );
maxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( vector ) );
}
}
}
this.boundingSphere.radius = Math.sqrt( maxRadiusSq );
if ( isNaN( this.boundingSphere.radius ) ) {
......@@ -26559,20 +26622,9 @@
}() ),
copy: function ( source ) {
Object3D.prototype.copy.call( this, source );
this.geometry.copy( source.geometry );
this.material.copy( source.material );
return this;
},
clone: function () {
return new this.constructor().copy( this );
return new this.constructor( this.geometry, this.material ).copy( this );
}
此差异已折叠。
......@@ -11774,35 +11774,59 @@ BufferGeometry.prototype = Object.assign( Object.create( EventDispatcher.prototy
computeBoundingBox: function () {
if ( this.boundingBox === null ) {
var box = new Box3();
this.boundingBox = new Box3();
return function computeBoundingBox() {
}
if ( this.boundingBox === null ) {
var position = this.attributes.position;
this.boundingBox = new Box3();
if ( position !== undefined ) {
}
this.boundingBox.setFromBufferAttribute( position );
var position = this.attributes.position;
var morphAttributesPosition = this.morphAttributes.position;
} else {
if ( position !== undefined ) {
this.boundingBox.makeEmpty();
this.boundingBox.setFromBufferAttribute( position );
}
// process morph attributes if present
if ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) {
if ( morphAttributesPosition ) {
console.error( 'THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.', this );
for ( var i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {
}
var morphAttribute = morphAttributesPosition[ i ];
box.setFromBufferAttribute( morphAttribute );
},
this.boundingBox.expandByPoint( box.min );
this.boundingBox.expandByPoint( box.max );
}
}
} else {
this.boundingBox.makeEmpty();
}
if ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) {
console.error( 'THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.', this );
}
};
}(),
computeBoundingSphere: function () {
var box = new Box3();
var boxMorphTargets = new Box3();
var vector = new Vector3();
return function computeBoundingSphere() {
......@@ -11814,28 +11838,67 @@ BufferGeometry.prototype = Object.assign( Object.create( EventDispatcher.prototy
}
var position = this.attributes.position;
var morphAttributesPosition = this.morphAttributes.position;
if ( position ) {
// first, find the center of the bounding sphere
var center = this.boundingSphere.center;
box.setFromBufferAttribute( position );
// process morph attributes if present
if ( morphAttributesPosition ) {
for ( var i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {
var morphAttribute = morphAttributesPosition[ i ];
boxMorphTargets.setFromBufferAttribute( morphAttribute );
box.expandByPoint( boxMorphTargets.min );
box.expandByPoint( boxMorphTargets.max );
}
}
box.getCenter( center );
// hoping to find a boundingSphere with a radius smaller than the
// second, try to find a boundingSphere with a radius smaller than the
// boundingSphere of the boundingBox: sqrt(3) smaller in the best case
var maxRadiusSq = 0;
for ( var i = 0, il = position.count; i < il; i ++ ) {
vector.x = position.getX( i );
vector.y = position.getY( i );
vector.z = position.getZ( i );
vector.fromBufferAttribute( position, i );
maxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( vector ) );
}
// process morph attributes if present
if ( morphAttributesPosition ) {
for ( var i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {
var morphAttribute = morphAttributesPosition[ i ];
for ( var j = 0, jl = morphAttribute.count; j < jl; j ++ ) {
vector.fromBufferAttribute( morphAttribute, i );
maxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( vector ) );
}
}
}
this.boundingSphere.radius = Math.sqrt( maxRadiusSq );
if ( isNaN( this.boundingSphere.radius ) ) {
......@@ -26553,20 +26616,9 @@ Line.prototype = Object.assign( Object.create( Object3D.prototype ), {
}() ),
copy: function ( source ) {
Object3D.prototype.copy.call( this, source );
this.geometry.copy( source.geometry );
this.material.copy( source.material );
return this;
},
clone: function () {
return new this.constructor().copy( this );
return new this.constructor( this.geometry, this.material ).copy( this );
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册