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

Updated Matrix4.getMaxScaleOnAxis() with TypeArray.

上级 12e000a1
......@@ -20,8 +20,8 @@ THREE.Frustum = function ( ) {
THREE.Frustum.prototype.setFromMatrix = function ( m ) {
var i, plane,
planes = this.planes;
var i, plane, planes = this.planes;
var me = m.elements;
var me0 = me[0], me1 = me[1], me2 = me[2], me3 = me[3];
var me4 = me[4], me5 = me[5], me6 = me[6], me7 = me[7];
......@@ -50,8 +50,7 @@ THREE.Frustum.prototype.contains = function ( object ) {
planes = this.planes,
matrix = object.matrixWorld,
me = matrix.elements,
scale = THREE.Frustum.__v1.set( matrix.getColumnX().length(), matrix.getColumnY().length(), matrix.getColumnZ().length() ),
radius = - object.geometry.boundingSphere.radius * Math.max( scale.x, Math.max( scale.y, scale.z ) );
radius = - object.geometry.boundingSphere.radius * matrix.getMaxScaleOnAxis();
for ( var i = 0; i < 6; i ++ ) {
......
......@@ -826,6 +826,7 @@ THREE.Matrix4.prototype = {
},
scale: function ( v ) {
var te = this.elements;
var x = v.x, y = v.y, z = v.z;
......@@ -838,13 +839,15 @@ THREE.Matrix4.prototype = {
},
getMaxScaleOnAxis : function () {
getMaxScaleOnAxis: function () {
var te = this.elements;
var scaleXSq = this.n11 * this.n11 + this.n21 * this.n21 + this.n31 * this.n31;
var scaleYSq = this.n12 * this.n12 + this.n22 * this.n22 + this.n32 * this.n32;
var scaleZSq = this.n13 * this.n13 + this.n23 * this.n23 + this.n33 * this.n33;
var scaleXSq = te[0] * te[0] + te[1] * te[1] + te[2] * te[2];
var scaleYSq = te[4] * te[4] + te[5] * te[5] + te[6] * te[6];
var scaleZSq = te[8] * te[8] + te[9] * te[9] + te[10] * te[10];
return Math.sqrt(Math.max( scaleXSq , Math.max( scaleYSq , scaleZSq )));
return Math.sqrt( Math.max( scaleXSq, Math.max( scaleYSq, scaleZSq ) ) );
},
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册