Print

Print


Commit in GeomConverter/src/org/lcsim/detector on MAIN
Rotation3D.java+25-71.4 -> 1.5
Added static function for matrix multiplication: version in Freehep is incorrect.

GeomConverter/src/org/lcsim/detector
Rotation3D.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- Rotation3D.java	26 Feb 2007 19:40:50 -0000	1.4
+++ Rotation3D.java	26 Feb 2007 23:41:58 -0000	1.5
@@ -63,8 +63,8 @@
 
 	public static BasicHep3Matrix passiveTaitBryan(double alpha, double beta, double gamma)
 	{
-		return (BasicHep3Matrix)VecOp.mult(passiveZRotation(gamma),VecOp.mult(passiveYRotation(beta),passiveXRotation(alpha)));                
-	}
+            return (BasicHep3Matrix)mult(passiveZRotation(gamma),mult(passiveYRotation(beta),passiveXRotation(alpha)));
+        }
 
 	public static BasicHep3Matrix passiveXRotation(double angle)
 	{
@@ -72,8 +72,8 @@
 		double cos = Math.cos(angle);
 		BasicHep3Matrix rotation = BasicHep3Matrix.identity();
 		rotation.setElement(1,1,cos);
-		rotation.setElement(1,2,-sin);
-		rotation.setElement(2,1,sin);
+		rotation.setElement(1,2,sin);
+		rotation.setElement(2,1,-sin);
 		rotation.setElement(2,2,cos);
 		return rotation;
 	}
@@ -96,8 +96,8 @@
 		double cos = Math.cos(angle);
 		BasicHep3Matrix rotation = BasicHep3Matrix.identity();
 		rotation.setElement(0,0,cos);
-		rotation.setElement(0,1,-sin);
-		rotation.setElement(1,0,sin);
+		rotation.setElement(0,1,sin);
+		rotation.setElement(1,0,-sin);
 		rotation.setElement(1,1,cos);
 		return rotation;
 	}    
@@ -431,5 +431,23 @@
 			default:
 				throw new IllegalArgumentException("Invalid matrix element : " + i );					
 		}
-	}	
+        }
+        
+        public static Hep3Matrix mult(Hep3Matrix m1, Hep3Matrix m2)
+        {
+            double e0 = m1.e(0,0) * m2.e(0,0) + m1.e(0,1) * m2.e(1,0) + m1.e(0,2) * m2.e(2,0);
+            double e1 = m1.e(0,0) * m2.e(0,1) + m1.e(0,1) * m2.e(1,1) + m1.e(0,2) * m2.e(2,1);
+            double e2 = m1.e(0,0) * m2.e(0,2) + m1.e(0,1) * m2.e(1,2) + m1.e(0,2) * m2.e(2,2);
+          
+            double e3 = m1.e(1,0) * m2.e(0,0) + m1.e(1,1) * m2.e(1,0) + m1.e(1,2) * m2.e(2,0);
+            double e4 = m1.e(1,0) * m2.e(0,1) + m1.e(1,1) * m2.e(1,1) + m1.e(1,2) * m2.e(2,1);
+            double e5 = m1.e(1,0) * m2.e(0,2) + m1.e(1,1) * m2.e(1,2) + m1.e(1,2) * m2.e(2,2);
+          
+            double e6 = m1.e(2,0) * m2.e(0,0) + m1.e(2,1) * m2.e(1,0) + m1.e(2,2) * m2.e(2,0);
+            double e7 = m1.e(2,0) * m2.e(0,1) + m1.e(2,1) * m2.e(1,1) + m1.e(2,2) * m2.e(2,1);
+            double e8 = m1.e(2,0) * m2.e(0,2) + m1.e(2,1) * m2.e(1,2) + m1.e(2,2) * m2.e(2,2);
+
+            return new BasicHep3Matrix(e0,e1,e2,e3,e4,e5,e6,e7,e8);
+        }
+        
 }
\ No newline at end of file
CVSspam 0.2.8