00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef LIBPLANETCPLANET_H
00018 #define LIBPLANETCPLANET_H
00019
00020 #include <vector>
00021 #include <list>
00022
00023 #include <libprocter/ctilesurface.h>
00024 #include <libprocter/cmesh.h>
00025
00026 namespace libProcTer {
00027
00028 class CTileManager;
00029 class CLandscapeThread;
00030
00041 class CCameraContext
00042 {
00043 public:
00044
00051 CVector m_Position;
00052
00058 CMeshList *m_Meshes;
00059 };
00060
00077 class CPlanet {
00078 public:
00083 CPlanet(double radius);
00084
00086 virtual ~CPlanet();
00087
00089 inline double getRadius() const
00090 {return m_Radius;}
00091
00093 inline CTileManager *getTileManager()
00094 {return m_TileManager;}
00095
00108 void update();
00109
00116 std::vector<CCameraContext> m_Contexts;
00117
00152 virtual CTileSurface *createSurface(const CGridPosition &pos, CTileSurface **parents) const = 0;
00153
00154 private:
00155 double m_Radius;
00156
00157 CTileManager *m_TileManager;
00158 CLandscapeThread *m_LandscapeThread;
00159 };
00160
00161 }
00162
00163 #endif