//#include //#include //#include "vertexdata.h" #ifndef _GEOLODSTREELIBRARY #define _GEOLODSTREELIBRARY #include "GeoMesh.h" #include "GeoLodStripsLibrary.h" #include "GeoTreeSimpSequence.h" #include "GeoLodObject.h" class Foliage; namespace Geometry { class IndexData; class VertexData; class LodTreeLibrary : public Geometry::LodObject { public: LodTreeLibrary( const LodStripsLibraryData *, const TreeSimplificationSequence *, Geometry::Mesh *treeGeoMesh, Geometry::IndexData *user_indexdata); ~LodTreeLibrary(void); // funciones ya descritas en la API /* uint32 GoToTrunkLod(uint32 newlod); uint32 MinTrunkLod(void) const; uint32 MaxTrunkLod(void) const; uint32 GoToFoliageLod(uint32 newlod); uint32 MinFoliageLod(void) const; uint32 MaxFoliageLod(void) const;*/ void GoToTrunkLod(Real); void GoToFoliageLod(Real); // changes the lod of the entire object (trunk and leaves) virtual void GoToLod(Real); virtual Real GetCurrentLodFactor(void) const { return (currentFoliageLodFactor+trunk->GetCurrentLodFactor())*0.5f; } virtual Geometry::IndexData * GetIndexDataInterface(void){ return dataRetrievalInterface; } // new proposed functions // uint32 Get_Trunk_VertexCount(void) const; // uint32 Get_Trunk_MaxIndexCount(uint32 istrip) const; // uint32 CurrentLOD_Trunk_StripCount(void) const; // uint32 CurrentLOD_Trunk_IndexCount(void) const; // uint32 CurrentLOD_Trunk_IndexCountByStrip(uint32 istrip) const; /* const VertexData* Get_Trunk_VertexData(void) const;*/ const IndexData* CurrentLOD_Trunk_Indices(void) const; uint32 GetValidTrunkIndexCount(int isubmesh) const { return trunk->GetValidIndexCount(isubmesh); } // uint32 GetValidTrunkOffset(int isubmesh) const { return trunk->GetValidOffset(isubmesh); } // uint32 Get_Foliage_VertexCount(void) const; uint32 Get_Foliage_MaxIndexCount(void) const; uint32 CurrentLOD_Foliage_IndexCount(void) const; const IndexData* CurrentLOD_Foliage_Indices(void) const; const VertexData* Get_Foliage_VertexData(void) const; uint32 GetLeavesSubMesh(void) const { return mLeavesSubMesh; } private: Foliage *foliage; Geometry::LodStripsLibrary *trunk; uint32 mLeavesSubMesh; IndexData *dataRetrievalInterface; bool delete_indexdata; float currentFoliageLodFactor; }; } #endif