source: GTP/trunk/Lib/Geom/shared/GTGeometry/include/GeoLodTreeLibrary.h @ 1552

Revision 1552, 2.4 KB checked in by gumbau, 18 years ago (diff)

Fixed degenerates in LodStripsFixed?

RevLine 
[829]1//#include <string>
2//#include <exception>
3//#include "vertexdata.h"
[774]4
[829]5#ifndef _GEOLODSTREELIBRARY
6#define _GEOLODSTREELIBRARY
[774]7
[829]8#include "GeoMesh.h"
9#include "GeoLodStripsLibrary.h"
[1078]10#include "GeoTreeSimpSequence.h"
[1056]11#include "GeoLodObject.h"
[774]12
[829]13class Foliage;
[831]14
[829]15namespace Geometry
16{       
[831]17        class IndexData;
[895]18        class VertexData;
[1056]19        class LodTreeLibrary : public Geometry::LodObject
[774]20        {
21        public:
[1083]22                LodTreeLibrary( const LodStripsLibraryData *,
23                                                const TreeSimplificationSequence *,
[1526]24                                                Geometry::Mesh *treeGeoMesh,
25                                                Geometry::IndexData *user_indexdata);
[829]26                ~LodTreeLibrary(void);
[774]27
[829]28                // funciones ya descritas en la API
[1058]29/*              uint32 GoToTrunkLod(uint32 newlod);
[829]30                uint32 MinTrunkLod(void) const;
31                uint32 MaxTrunkLod(void) const;
[831]32                uint32 GoToFoliageLod(uint32 newlod);
[829]33                uint32 MinFoliageLod(void) const;
[1058]34                uint32 MaxFoliageLod(void) const;*/
[774]35
[1058]36                void GoToTrunkLod(Real);
37                void GoToFoliageLod(Real);
38
[1056]39                // changes the lod of the entire object (trunk and leaves)
[1058]40                virtual void GoToLod(Real);
[1526]41                virtual Real GetCurrentLodFactor(void) const { return (currentFoliageLodFactor+trunk->GetCurrentLodFactor())*0.5f; }
42                virtual Geometry::IndexData * GetIndexDataInterface(void){ return dataRetrievalInterface; }
[1056]43
[1019]44                // new proposed functions
[829]45//              uint32 Get_Trunk_VertexCount(void) const;
46//              uint32 Get_Trunk_MaxIndexCount(uint32 istrip) const;
[1069]47//              uint32 CurrentLOD_Trunk_StripCount(void) const;
[829]48//              uint32 CurrentLOD_Trunk_IndexCount(void) const;
[1069]49//              uint32 CurrentLOD_Trunk_IndexCountByStrip(uint32 istrip) const;
[1018]50/*              const VertexData* Get_Trunk_VertexData(void) const;*/
[1069]51                const IndexData* CurrentLOD_Trunk_Indices(void) const;
[1083]52                uint32 GetValidTrunkIndexCount(int isubmesh) const { return trunk->GetValidIndexCount(isubmesh); }
[1552]53//              uint32 GetValidTrunkOffset(int isubmesh) const { return trunk->GetValidOffset(isubmesh); }
[774]54
[829]55//              uint32 Get_Foliage_VertexCount(void) const;
[831]56                uint32 Get_Foliage_MaxIndexCount(void) const;
57                uint32 CurrentLOD_Foliage_IndexCount(void) const;
58                const IndexData* CurrentLOD_Foliage_Indices(void) const;
[895]59                const VertexData* Get_Foliage_VertexData(void) const;
[1090]60                uint32 GetLeavesSubMesh(void) const { return mLeavesSubMesh; }
[895]61
[829]62        private:
[831]63                Foliage *foliage;
[1083]64                Geometry::LodStripsLibrary *trunk;
[1090]65                uint32 mLeavesSubMesh;
[1526]66                IndexData *dataRetrievalInterface;
67                bool delete_indexdata;
68                float currentFoliageLodFactor;
[774]69        };
70}
[829]71
72#endif
Note: See TracBrowser for help on using the repository browser.