CrossFramework Library
|
00001 00006 #if defined(XG3D_INCLUDED_STATEMDLTRANSFORM_HPP) 00007 #else 00008 #define XG3D_INCLUDED_STATEMDLTRANSFORM_HPP 00009 00010 //------------------------------------------------------------ 00011 #include <XBase/Matrix34.hpp> 00012 #include <XBase/NonCopyable.hpp> 00013 #include <XBase/RuntimeArray.hpp> 00014 #include <XG3D/ResMdl.hpp> 00015 00016 //------------------------------------------------------------ 00017 namespace XG3D { 00018 struct MdlLocalMtx; 00019 } 00020 00021 //------------------------------------------------------------ 00022 namespace XG3D { 00024 00025 00030 class StateMdlTransform : public ::XBase::NonCopyable 00031 { 00032 public: 00034 00035 00040 StateMdlTransform( 00041 const ResMdl& aResMdl 00042 , ::XBase::IAllocator& aAllocator = ::XBase::IAllocator::Default() 00043 ); 00044 00046 ~StateMdlTransform(); 00048 00050 00051 void updateWorldMtx( const ::XBase::Mtx34& aMdlMtx = ::XBase::Mtx34::Identity() ); 00052 00053 00055 00056 const ::XBase::Mtx34 worldMtx( uint aNodeIndex )const; 00057 00058 00059 private: 00060 ResMdl mResMdl; 00061 ::XBase::RuntimeArray< MdlLocalMtx > mLocalMtxs; 00062 ::XBase::RuntimeArray< ::XBase::Matrix34 > mWorldMtxs; 00063 //============================================================ 00064 void resetLocalMtx(); 00065 }; 00067 } 00068 //------------------------------------------------------------ 00069 #endif 00070 // EOF