#pragma once #include "body.h" #include "star_system.h" class Frame; class Planet : public Body { public: OBJDEF(Planet, Body, PLANET); Planet(StarSystem::SBody*); Planet(void) { }; virtual ~Planet(void); virtual void SetPosition(vector3d p); virtual vector3d GetPosition(void) const; void SetRadius(double radius); virtual double GetRadius(void) const; virtual void Render(const Frame* camFrame); virtual void SetFrame(Frame* f); virtual bool OnCollision(Body* b, Uint32 flags) { return true; } virtual double GetMass(void) const { return m_mass; } protected: virtual void Save(void); virtual void Load(void); private: void Init(void); void DrawRockyPlanet(void); void DrawGasGiant(void); void DrawAtmosphere(double rad, vector3d& pos); double m_mass; vector3d pos; StarSystem::SBody* sbody; GLuint crudDList; };