// // Autor: Matthias Huether (huether@dfki.uni-sb.de) // // // Beschreibung: Funktionen fuer das Rechnen mit Transformationsmatrizen // // ergaenzendes Modul: matrix.cc // letzte Änderung 01.09.199, Jens Ahrensfeld #ifndef MATRIX_H #define MATRIX_H #include "ri.h" extern void PrintMatrix(RtMatrix,short); extern void PrintVector(RtFloat*,short); extern RtFloat ScalarProduct(RtFloat*,RtFloat*,short); extern RtFloat Norm(RtFloat*,short); extern RtFloat AngleBetweenVectors(RtFloat*,RtFloat*,short); extern void IdentityMatrix(RtMatrix*); extern void MultiplyMatrices(RtMatrix,RtMatrix,RtMatrix*); extern void MultiplyMatrixVector(RtMatrix,RtFloat*,RtFloat*); extern void MultiplyMatrixVector2(RtMatrix M, RtFloat *u, RtFloat *Mu, UINT32 du); extern void MultiplyVectorMatrix(RtFloat*,RtMatrix,RtFloat*); extern void TransposeMatrix(RtMatrix,RtMatrix*); extern void NewTranslationMatrix(RtFloat*,RtMatrix*); extern void RotationMatrix(RtMatrix,RtMatrix*,short); extern void TranslationMatrix(RtMatrix,RtMatrix*); extern void InverseRotationMatrix(RtMatrix,RtMatrix*); extern void InverseTranslationMatrix(RtMatrix,RtMatrix*); extern void InverseMatrix(RtMatrix,RtMatrix*); extern void BuildTransformationMatrix(RtFloat*,RtFloat*,RtFloat,RtMatrix*); // added 01.09.1999 extern void AimCamera(RtFloat*,RtFloat*,RtFloat,RtMatrix*); void PointCopy(RtFloat *pDst, RtFloat *pSrc); void PointSwapXY(RtFloat *pSrcDst); void PointSwapXZ(RtFloat *pSrcDst); void PointSwapYZ(RtFloat *pSrcDst); #endif