00001 //------------------------------------------------------------------------- 00002 // 00003 // File: DecomposeAffineC.h 00004 // Desc: Helper class to decompose a matrix into a affine parts. 00005 // Author: memon <memon@inside.org> 00006 // 00007 //------------------------------------------------------------------------- 00008 // Copyright (c) 2000-2002 Moppi Productions. All Rights Reserved. 00009 // This file is part of Moppi Demopaja SDK. For conditions of 00010 // distribution and use, see the accompanying license.txt file. 00011 // http://moppi.inside.org/demopaja/ 00012 //------------------------------------------------------------------------- 00013 00014 00015 #ifndef __DEMOPAJA_DECOMPOSEAFFINEC_H__ 00016 #define __DEMOPAJA_DECOMPOSEAFFINEC_H__ 00017 00018 00019 #include "PajaTypes.h" 00020 #include "Vector3C.h" 00021 #include "QuatC.h" 00022 #include "Matrix3C.h" 00023 00024 namespace PajaTypes { 00025 00027 00076 class DecomposeAffineC 00077 { 00078 public: 00080 DecomposeAffineC( const PajaTypes::Matrix3C& rMat ); 00082 ~DecomposeAffineC(); 00083 00085 PajaTypes::Vector3C get_translation(); 00087 PajaTypes::QuatC get_rotation(); 00089 PajaTypes::Vector3C get_scale(); 00091 PajaTypes::QuatC get_scale_rotation(); 00093 PajaTypes::float32 get_sign(); 00094 00095 private: 00096 PajaTypes::Vector3C m_rTrans; 00097 PajaTypes::QuatC m_rRotation; 00098 PajaTypes::Vector3C m_rScale; 00099 PajaTypes::QuatC m_rScaleRot; 00100 PajaTypes::float32 m_f32Sign; 00101 }; 00102 00103 }; // namespace 00104 00105 #endif // __DEMOPAJA_DECOMPOSEAFFINEC_H__