//#include //#include //#include "vertexdata.h" #ifndef _GEOLODSTREELIBRARY #define _GEOLODSTREELIBRARY #include "GeoMesh.h" #include "GeoLodStripsLibrary.h" class Arbol; class Foliage; class Point3D; namespace Geometry { class IndexData; class VertexData; class LodTreeLibrary { public: /* LodTreeLibrary( const LodTreeLibrary &); LodTreeLibrary(LodTreeLibrary*);*/ LodTreeLibrary( std::string trunkSimpSeqFile, std::string leafSimpSeqFile, Geometry::Mesh *treeGeoMesh, uint32 leafSubMeshID /*std::string foliage_verts, std::string foliage_leafs, std::string foliage_simpl/*, uint32 leafSubMeshID, CREATEVERTEXDATAFUNC vdfun=NULL, CREATEINDEXDATAFUNC idfun=NULL, CREATEMULTIINDEXDATAFUNC midfun=NULL*/); // throws a FileNotFound exception ~LodTreeLibrary(void); uint32 GetUniqueID(void) const { return uniqueID; } // 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; // funciones nuevas propuestas // 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 MultiIndexData* CurrentLOD_Trunk_Indices(void) const;*/ // 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; // Geometry::IndexData *trunk_all_indices; // unsigned int *indices_offsets; const Geometry::SmallIntVector & GetStrip(uint32 istrip) const { return trunk->mStrips[istrip]; } private: uint32 uniqueID; Geometry::LodStripsLibrary *trunk; Arbol *arbol; Foliage *foliage; }; } #endif