This class provides with operations for Matrix Objects

Dependents:   Matrix_class Wizardsneverdie mbed_multiplex_matrix Kinematics_Project_G5 ... more

Revision:
2:d487bb616ec1
Parent:
1:c74cdf14aea2
Child:
3:48754fe86e08
--- a/MatrixMath.h	Sat Oct 22 23:18:55 2011 +0000
+++ b/MatrixMath.h	Sun Oct 30 04:41:00 2011 +0000
@@ -1,78 +1,116 @@
-/**
- * @file   MatrixMath.h
- * @author Ernesto Palacios
- *
- * Created on 15 de septiembre de 2011, 09:44 AM.
- *
- *  Develop Under  GPL v3.0 License
- *  http://www.gnu.org/licenses/gpl-3.0.html
- *
- */
-
-#ifndef    MATRIXMATH_H
-#define    MATRIXMATH_H
-
-#include "mbed.h"
-#include "Matrix.h"
-
-
-/**
- * @brief This class provides STATIC methods to preform operations over
- * Matrix Objects
- * version 0.8.
- *
- * Methods will be added as neccesary.
- *
- */
-class MatrixMath{
-public:
-
-
-    /**@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 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 );
-
-    static Matrix RotY( const Matrix& matrix, float radians );
-
-    static Matrix RotZ( const Matrix& matrix, float radians );
-
-    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 */
+/**
+ * @file   MatrixMath.h
+ * @author Ernesto Palacios
+ *
+ * Created on 15 de septiembre de 2011, 09:44 AM.
+ *
+ *  Develop Under  GPL v3.0 License
+ *  http://www.gnu.org/licenses/gpl-3.0.html
+ *
+ */
+
+#ifndef    MATRIXMATH_H
+#define    MATRIXMATH_H
+
+#include "mbed.h"
+#include "Matrix.h"
+
+
+/**
+ * @brief This class provides STATIC methods to preform operations over
+ * Matrix Objects
+ * version 0.8.
+ *
+ * Methods will be added as neccesary.
+ *
+ */
+class MatrixMath{
+public:
+
+
+    /**@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 );
+
+
+    /**@brief
+     * Creates an identity Matrix, n x n.
+     * @param Rows Number of Rowns and Columns
+     * @return Identity Matrix of dimensions Rows x Rows
+     */
+    static Matrix Eye( int Rows );
+
+    /**@brief
+     * Returns the dot Product of any two same leght vectors.
+     * In this case a vector is defined as a [1,n] Matrix.
+     * @param leftM First Vector
+     * @param rightM Second Vector
+     * @return Dot Product or Scalar Product.
+     */    
+    static float dot( 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 ====//
+
+    /**@brief
+     * Calculates the Rotation Matrix Transform along 'x' axis in radians.
+     * @param radians rotation angle.
+     * @return Rotation Matrix[4,4] along 'x' axis.
+     */
+    static Matrix RotX( float radians );
+
+
+    /**@brief
+     * Calculates the Rotation Matrix Transform along 'y' axis in radians.
+     * @param radians rotation angle.
+     * @return Rotation Matrix[4,4] along 'y' axis.
+     */
+    static Matrix RotY( float radians );
+
+
+    /**@brief
+     * Calculates the Rotation Matrix Transform along 'y' axis in radians.
+     * @param radians rotation angle.
+     * @return Rotation Matrix[4,4] along 'y' axis.
+     */
+    static Matrix RotZ( float radians );
+
+    /**@brief
+     * Calculates the Translation Matrix to coordenates, (x' y' z')
+     * @param x axis translation
+     * @param y axis translation
+     * @param z axis translation
+     * @return Translation Matrix[4,4] x'y'z'.
+     */
+    static Matrix Transl( 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 */