Matrix class included
Dependencies: Matrix
MatrixMath.h
- Committer:
- Yo_Robot
- Date:
- 2011-10-30
- Revision:
- 2:d487bb616ec1
- Parent:
- 1:c74cdf14aea2
- Child:
- 3:48754fe86e08
File content as of revision 2:d487bb616ec1:
/** * @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 */