浏览代码

add some improvements to frustum

ide user ide_gero3 13 年之前
父节点
当前提交
01852d283b
共有 7 个文件被更改,包括 67 次插入42 次删除
  1. 11 7
      build/Three.js
  2. 11 7
      build/custom/ThreeCanvas.js
  3. 11 7
      build/custom/ThreeDOM.js
  4. 11 7
      build/custom/ThreeSVG.js
  5. 11 7
      build/custom/ThreeWebGL.js
  6. 11 7
      src/core/Frustum.js
  7. 1 0
      src/core/Matrix4.js

+ 11 - 7
build/Three.js

@@ -1023,13 +1023,17 @@ THREE.Frustum.prototype.setFromMatrix = function ( m ) {
 	var i, plane,
 	planes = this.planes;
     var me = m.elements;
-
-	planes[ 0 ].set( me[3] - me[0], me[7] - me[4], me[11] - me[8], me[15] - me[12] );
-	planes[ 1 ].set( me[3] + me[0], me[7] + me[4], me[11] + me[8], me[15] + me[12] );
-	planes[ 2 ].set( me[3] + me[1], me[7] + me[5], me[11] + me[9], me[15] + me[13] );
-	planes[ 3 ].set( me[3] - me[1], me[7] - me[5], me[11] - me[9], me[15] - me[13] );
-	planes[ 4 ].set( me[3] - me[2], me[7] - me[6], me[11] - me[10], me[15] - me[14] );
-	planes[ 5 ].set( me[3] + me[2], me[7] + me[6], me[11] + me[10], me[15] + me[14] );
+    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]; 
+    var me8 = me[8], me9 = me[9], me10 = me[10], me11 = me[11]; 
+    var me12 = me[12], me13 = me[13], me14 = me[14], me15 = me[15]; 
+
+	planes[ 0 ].set( me3 - me0, me7 - me4, me11 - me8, me15 - me12 );
+	planes[ 1 ].set( me3 + me0, me7 + me4, me11 + me8, me15 + me12 );
+	planes[ 2 ].set( me3 + me1, me7 + me5, me11 + me9, me15 + me13 );
+	planes[ 3 ].set( me3 - me1, me7 - me5, me11 - me9, me15 - me13 );
+	planes[ 4 ].set( me3 - me2, me7 - me6, me11 - me10, me15 - me14 );
+	planes[ 5 ].set( me3 + me2, me7 + me6, me11 + me10, me15 + me14 );
 
 	for ( i = 0; i < 6; i ++ ) {
 

+ 11 - 7
build/custom/ThreeCanvas.js

@@ -959,13 +959,17 @@ THREE.Frustum.prototype.setFromMatrix = function ( m ) {
 	var i, plane,
 	planes = this.planes;
     var me = m.elements;
-
-	planes[ 0 ].set( me[3] - me[0], me[7] - me[4], me[11] - me[8], me[15] - me[12] );
-	planes[ 1 ].set( me[3] + me[0], me[7] + me[4], me[11] + me[8], me[15] + me[12] );
-	planes[ 2 ].set( me[3] + me[1], me[7] + me[5], me[11] + me[9], me[15] + me[13] );
-	planes[ 3 ].set( me[3] - me[1], me[7] - me[5], me[11] - me[9], me[15] - me[13] );
-	planes[ 4 ].set( me[3] - me[2], me[7] - me[6], me[11] - me[10], me[15] - me[14] );
-	planes[ 5 ].set( me[3] + me[2], me[7] + me[6], me[11] + me[10], me[15] + me[14] );
+    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]; 
+    var me8 = me[8], me9 = me[9], me10 = me[10], me11 = me[11]; 
+    var me12 = me[12], me13 = me[13], me14 = me[14], me15 = me[15]; 
+
+	planes[ 0 ].set( me3 - me0, me7 - me4, me11 - me8, me15 - me12 );
+	planes[ 1 ].set( me3 + me0, me7 + me4, me11 + me8, me15 + me12 );
+	planes[ 2 ].set( me3 + me1, me7 + me5, me11 + me9, me15 + me13 );
+	planes[ 3 ].set( me3 - me1, me7 - me5, me11 - me9, me15 - me13 );
+	planes[ 4 ].set( me3 - me2, me7 - me6, me11 - me10, me15 - me14 );
+	planes[ 5 ].set( me3 + me2, me7 + me6, me11 + me10, me15 + me14 );
 
 	for ( i = 0; i < 6; i ++ ) {
 

+ 11 - 7
build/custom/ThreeDOM.js

@@ -959,13 +959,17 @@ THREE.Frustum.prototype.setFromMatrix = function ( m ) {
 	var i, plane,
 	planes = this.planes;
     var me = m.elements;
-
-	planes[ 0 ].set( me[3] - me[0], me[7] - me[4], me[11] - me[8], me[15] - me[12] );
-	planes[ 1 ].set( me[3] + me[0], me[7] + me[4], me[11] + me[8], me[15] + me[12] );
-	planes[ 2 ].set( me[3] + me[1], me[7] + me[5], me[11] + me[9], me[15] + me[13] );
-	planes[ 3 ].set( me[3] - me[1], me[7] - me[5], me[11] - me[9], me[15] - me[13] );
-	planes[ 4 ].set( me[3] - me[2], me[7] - me[6], me[11] - me[10], me[15] - me[14] );
-	planes[ 5 ].set( me[3] + me[2], me[7] + me[6], me[11] + me[10], me[15] + me[14] );
+    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]; 
+    var me8 = me[8], me9 = me[9], me10 = me[10], me11 = me[11]; 
+    var me12 = me[12], me13 = me[13], me14 = me[14], me15 = me[15]; 
+
+	planes[ 0 ].set( me3 - me0, me7 - me4, me11 - me8, me15 - me12 );
+	planes[ 1 ].set( me3 + me0, me7 + me4, me11 + me8, me15 + me12 );
+	planes[ 2 ].set( me3 + me1, me7 + me5, me11 + me9, me15 + me13 );
+	planes[ 3 ].set( me3 - me1, me7 - me5, me11 - me9, me15 - me13 );
+	planes[ 4 ].set( me3 - me2, me7 - me6, me11 - me10, me15 - me14 );
+	planes[ 5 ].set( me3 + me2, me7 + me6, me11 + me10, me15 + me14 );
 
 	for ( i = 0; i < 6; i ++ ) {
 

+ 11 - 7
build/custom/ThreeSVG.js

@@ -959,13 +959,17 @@ THREE.Frustum.prototype.setFromMatrix = function ( m ) {
 	var i, plane,
 	planes = this.planes;
     var me = m.elements;
-
-	planes[ 0 ].set( me[3] - me[0], me[7] - me[4], me[11] - me[8], me[15] - me[12] );
-	planes[ 1 ].set( me[3] + me[0], me[7] + me[4], me[11] + me[8], me[15] + me[12] );
-	planes[ 2 ].set( me[3] + me[1], me[7] + me[5], me[11] + me[9], me[15] + me[13] );
-	planes[ 3 ].set( me[3] - me[1], me[7] - me[5], me[11] - me[9], me[15] - me[13] );
-	planes[ 4 ].set( me[3] - me[2], me[7] - me[6], me[11] - me[10], me[15] - me[14] );
-	planes[ 5 ].set( me[3] + me[2], me[7] + me[6], me[11] + me[10], me[15] + me[14] );
+    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]; 
+    var me8 = me[8], me9 = me[9], me10 = me[10], me11 = me[11]; 
+    var me12 = me[12], me13 = me[13], me14 = me[14], me15 = me[15]; 
+
+	planes[ 0 ].set( me3 - me0, me7 - me4, me11 - me8, me15 - me12 );
+	planes[ 1 ].set( me3 + me0, me7 + me4, me11 + me8, me15 + me12 );
+	planes[ 2 ].set( me3 + me1, me7 + me5, me11 + me9, me15 + me13 );
+	planes[ 3 ].set( me3 - me1, me7 - me5, me11 - me9, me15 - me13 );
+	planes[ 4 ].set( me3 - me2, me7 - me6, me11 - me10, me15 - me14 );
+	planes[ 5 ].set( me3 + me2, me7 + me6, me11 + me10, me15 + me14 );
 
 	for ( i = 0; i < 6; i ++ ) {
 

+ 11 - 7
build/custom/ThreeWebGL.js

@@ -959,13 +959,17 @@ THREE.Frustum.prototype.setFromMatrix = function ( m ) {
 	var i, plane,
 	planes = this.planes;
     var me = m.elements;
-
-	planes[ 0 ].set( me[3] - me[0], me[7] - me[4], me[11] - me[8], me[15] - me[12] );
-	planes[ 1 ].set( me[3] + me[0], me[7] + me[4], me[11] + me[8], me[15] + me[12] );
-	planes[ 2 ].set( me[3] + me[1], me[7] + me[5], me[11] + me[9], me[15] + me[13] );
-	planes[ 3 ].set( me[3] - me[1], me[7] - me[5], me[11] - me[9], me[15] - me[13] );
-	planes[ 4 ].set( me[3] - me[2], me[7] - me[6], me[11] - me[10], me[15] - me[14] );
-	planes[ 5 ].set( me[3] + me[2], me[7] + me[6], me[11] + me[10], me[15] + me[14] );
+    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]; 
+    var me8 = me[8], me9 = me[9], me10 = me[10], me11 = me[11]; 
+    var me12 = me[12], me13 = me[13], me14 = me[14], me15 = me[15]; 
+
+	planes[ 0 ].set( me3 - me0, me7 - me4, me11 - me8, me15 - me12 );
+	planes[ 1 ].set( me3 + me0, me7 + me4, me11 + me8, me15 + me12 );
+	planes[ 2 ].set( me3 + me1, me7 + me5, me11 + me9, me15 + me13 );
+	planes[ 3 ].set( me3 - me1, me7 - me5, me11 - me9, me15 - me13 );
+	planes[ 4 ].set( me3 - me2, me7 - me6, me11 - me10, me15 - me14 );
+	planes[ 5 ].set( me3 + me2, me7 + me6, me11 + me10, me15 + me14 );
 
 	for ( i = 0; i < 6; i ++ ) {
 

+ 11 - 7
src/core/Frustum.js

@@ -23,13 +23,17 @@ THREE.Frustum.prototype.setFromMatrix = function ( m ) {
 	var i, plane,
 	planes = this.planes;
     var me = m.elements;
-
-	planes[ 0 ].set( me[3] - me[0], me[7] - me[4], me[11] - me[8], me[15] - me[12] );
-	planes[ 1 ].set( me[3] + me[0], me[7] + me[4], me[11] + me[8], me[15] + me[12] );
-	planes[ 2 ].set( me[3] + me[1], me[7] + me[5], me[11] + me[9], me[15] + me[13] );
-	planes[ 3 ].set( me[3] - me[1], me[7] - me[5], me[11] - me[9], me[15] - me[13] );
-	planes[ 4 ].set( me[3] - me[2], me[7] - me[6], me[11] - me[10], me[15] - me[14] );
-	planes[ 5 ].set( me[3] + me[2], me[7] + me[6], me[11] + me[10], me[15] + me[14] );
+    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]; 
+    var me8 = me[8], me9 = me[9], me10 = me[10], me11 = me[11]; 
+    var me12 = me[12], me13 = me[13], me14 = me[14], me15 = me[15]; 
+
+	planes[ 0 ].set( me3 - me0, me7 - me4, me11 - me8, me15 - me12 );
+	planes[ 1 ].set( me3 + me0, me7 + me4, me11 + me8, me15 + me12 );
+	planes[ 2 ].set( me3 + me1, me7 + me5, me11 + me9, me15 + me13 );
+	planes[ 3 ].set( me3 - me1, me7 - me5, me11 - me9, me15 - me13 );
+	planes[ 4 ].set( me3 - me2, me7 - me6, me11 - me10, me15 - me14 );
+	planes[ 5 ].set( me3 + me2, me7 + me6, me11 + me10, me15 + me14 );
 
 	for ( i = 0; i < 6; i ++ ) {
 

+ 1 - 0
src/core/Matrix4.js

@@ -9,6 +9,7 @@
  * @author timknip / http://www.floorplanner.com/
  */
 
+
 THREE.Matrix4 = function ( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {
 
     this.elements = new Float32Array(16);