add MatrixCross

Revision:
1:c74cdf14aea2
Parent:
0:eb69bbfb6486
Child:
2:d487bb616ec1
--- a/MatrixMath.h	Fri Oct 21 03:28:28 2011 +0000
+++ b/MatrixMath.h	Sat Oct 22 23:18:55 2011 +0000
@@ -1,6 +1,6 @@
 /**
- * @file:   MatrixMath.h
- * @author: Ernesto Palacios
+ * @file   MatrixMath.h
+ * @author Ernesto Palacios
  *
  * Created on 15 de septiembre de 2011, 09:44 AM.
  *
@@ -9,8 +9,8 @@
  *
  */
 
-#ifndef MATRIXMATH_H
-#define	MATRIXMATH_H
+#ifndef    MATRIXMATH_H
+#define    MATRIXMATH_H
 
 #include "mbed.h"
 #include "Matrix.h"
@@ -18,7 +18,8 @@
 
 /**
  * @brief This class provides STATIC methods to preform operations over
- * Matrix Objects.
+ * Matrix Objects
+ * version 0.8.
  *
  * Methods will be added as neccesary.
  *
@@ -26,14 +27,34 @@
 class MatrixMath{
 public:
 
-    
-    static Matrix Transpose( const Matrix& matrix );
+
+    /**@brief
+     * Transposes Matrix, return new Object.
+     * @param Mat matrix to calculate
+     * @return the determinant
+     */
+    static Matrix Transpose( const Matrix& Mat );
+
+
+    /**@brief
+     * Calculate the inverse of a nxn Matrix BUT check first if the determinant
+     * is != 0. Same matrix will be return if Det( Mat ) == 0.
+     * @param Mat matrix to calcute inverse.
+     * @return Matrix Inverse
+     */
+    static Matrix Inv( const Matrix& Mat );
+
     
-    static Matrix Invert( const Matrix& matrix );
-    
-    static float DotProduct( const Matrix& leftM, const Matrix& rightM );
-    
-    static float Det( const Matrix& Mat );
+    static float dotProduct( const Matrix& leftM, const Matrix& rightM );
+
+    /**@brief Calculates the determinant of a Matrix.
+     * @param Mat matrix to calculate.
+     * @return the determinant.
+     */
+    static float det( const Matrix& Mat );
+
+
+    //**  For Kinematics **//
 
     static Matrix RotX( const Matrix& matrix, float radians );
 
@@ -43,6 +64,15 @@
 
     static Matrix Transl( const Matrix& matrix, float x, float y, float z );
 
+private:
+
+    /**@brief
+     * Calculates the Determinant of a 3x3 Matrix
+     * @param Mat Already made sure is a 3 by 3
+     * @return Float, determinant.
+     */
+    float Det3x3( const Matrix& Mat );
+
 };
 
-#endif	/* MATRIXMATH_H */
+#endif    /* MATRIXMATH_H */