Browse Source

fix rotate_mat to normalize axis

cxgeorge 24 years ago
parent
commit
e35131d20b
2 changed files with 11 additions and 2 deletions
  1. 6 1
      panda/src/linmath/lmatrix3_src.I
  2. 5 1
      panda/src/linmath/lmatrix4_src.I

+ 6 - 1
panda/src/linmath/lmatrix3_src.I

@@ -786,7 +786,12 @@ rotate_mat(FLOATTYPE angle, FLOATNAME(LVecBase3) axis,
     nassertr(length_sq != 0.0, ident_mat());
   #endif
   FLOATTYPE recip_length = 1.0/csqrt(length_sq);
-  axis *= recip_length;
+  
+//  axis *= recip_length;
+
+  axis_0 *= recip_length;
+  axis_1 *= recip_length;
+  axis_2 *= recip_length;  
 
   FLOATTYPE angle_rad=deg_2_rad(angle);
   FLOATTYPE s,c;

+ 5 - 1
panda/src/linmath/lmatrix4_src.I

@@ -1140,7 +1140,11 @@ rotate_mat(FLOATTYPE angle, FLOATNAME(LVecBase3) axis,
   // Cannot rotate about a zero-length axis.
   nassertr(length_sq != 0.0, ident_mat());
   FLOATTYPE recip_length = 1.0/csqrt(length_sq);
-  axis *= recip_length;
+//  axis *= recip_length;
+
+  axis_0 *= recip_length;
+  axis_1 *= recip_length;
+  axis_2 *= recip_length;
 
   FLOATTYPE angle_rad=deg_2_rad(angle);
   FLOATTYPE s,c;