
#ifndef __DROIDOBJECT__
#define __DROIDOBJECT__

#include <QVector3D>


class DroidWorld;

enum eDROIDOBJECTTYPE { ePLAYER, ePLANET, eASTEROID, eAMMO };

class DroidObject
{
public:
    DroidObject(DroidWorld *dw, eDROIDOBJECTTYPE t );
    ~DroidObject();

    inline QVector3D& getPosition() { return position; }
    inline QVector3D& getDirection() { return direction; }
    inline eDROIDOBJECTTYPE getType() { return type; }
    inline bool isAlive() { return alive; }
    inline float getMass() { return mass; }
    inline float getDrawSize() { return drawSize; }
    inline float getAngle() { return angle; }


    void run( float secsPassed );
    void draw();

protected:
    float angle;
    float angleInc;
    float drawSize;
    float mass;
    eDROIDOBJECTTYPE type;
    bool alive;
    DroidWorld *world;
    QVector3D position;
    QVector3D direction;            // units / sec

};


#endif
