"L. Spiro Engine"
|
00001 00016 #ifndef __LSD_DRAWABLESHAREDMODEL_H__ 00017 #define __LSD_DRAWABLESHAREDMODEL_H__ 00018 00019 #include "../LSDModelLib.h" 00020 #include "LSDIntermediateDrawableMeshInstance.h" 00021 #include "LSDSharedModel.h" 00022 #include "Map/LSTLMap.h" 00023 #include "Texture/LSGStandardTexture.h" 00024 #include "Texture/LSGTextureManager.h" 00025 00026 namespace lsd { 00027 00034 class CDrawableSharedModel : public CSharedModel { 00035 public : 00036 // == Various constructors. 00037 LSE_CALLCTOR CDrawableSharedModel(); 00038 virtual LSE_CALLCTOR ~CDrawableSharedModel(); 00039 00040 00041 // == Functions. 00048 virtual LSSTD_ERRORS LSE_CALL LoadFromStream( const lsstd::IStream &_sStream ); 00049 00053 virtual LSVOID LSE_CALL Reset(); 00054 00058 LSVOID LSE_CALL RenderDebug(); 00059 00065 const CVector<CIntermediateDrawableMeshInstance, LSUINT32> & LSE_CALL 00066 GetDrawableRenderParts() const; 00067 00073 CVector<CIntermediateDrawableMeshInstance, LSUINT32> & LSE_CALL 00074 GetDrawableRenderParts(); 00075 00076 00077 // == Members. 00081 static CTextureManager m_tmTexMan; 00082 00083 protected : 00084 // == Members. 00088 CVector<CIntermediateDrawableMeshInstance, LSUINT32> 00089 m_vDrawableMeshes; 00090 00094 CMap<CString, CSharedStdTexPtr> m_mStandardTextures; 00095 00096 00097 // == Functions. 00103 LSBOOL LSE_CALL MakeTextures(); 00104 private : 00105 typedef CSharedModel Parent; 00106 }; 00107 00108 00109 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00110 // DEFINITIONS 00111 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00112 00113 00114 } // namespace lsd 00115 00116 #endif // __LSD_DRAWABLESHAREDMODEL_H__