class Entity
{
RigidBody* physics;
RenderObject* appearance;
};
class RigidBody
{
vector3 GetPosition();
void SetPosition(vector3);
vector3 GetOrientation(); //returns triple of euler angles
void SetOrientation(vector3) //internally translates to quaternion
/* also contains velocity, force, torque, mass and other physics info*/
};
class RenderObject
{
void Render()=0;
}
Entity e;
e->body = new SphereBody(0.3, 0.9) // (radius, mass)
e->appearance = new SphereAppearance(0.3, RGB(0, 0, 1) ) //(radius, color)