37 lines
863 B
C++
37 lines
863 B
C++
#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;
|
|
};
|
|
|