#ifndef NEW_MODEL_MANAGER_H_INCLUDED #define NEW_MODEL_MANAGER_H_INCLUDED #include "include/Utils/Utils.h" #include "include/Render/RenderMisc.h" #include "include/Render/RenderParams.h" namespace SE { class TFlexModelManager; class TFlexModelResource : public TSerializeInterface { protected: TDataTriangleList DataTriangleList; std::map SamplerMap; int TriangleCount; public: TFlexModelResource() : TriangleCount(0) { } virtual void Serialize(boost::property_tree::ptree& propertyTree); friend class TFlexModelManager; }; class TFlexModel { protected: TRenderPair RenderPair; std::stack DataTriangleListStack; bool Loaded; public: void PushModelDataTriangleList(); void PopModelDataTriangleList(); void MoveModel(const vec3& v); void RotateModel(const mat3& r); void ScaleModel(float s); void ScaleModel(const vec3& s); void RefreshBuffer(); void Draw(); TDataTriangleList& GetDataTriangleList(); friend class TFlexModelManager; }; class TFlexModelManager { protected: std::map FlexModelResourceMap; public: void LoadModelFromXml(std::string xmlFileName); TFlexModel InstanciateModel(const std::string& modelName); }; } //namespace SE #endif