#include "sprite.hpp"

//=======================================================
sprite::sprite()
{
    _pos = point();
    _dir = point(0,0,-1);
    _radX = _radY = _radZ = 0;
}

//constructeur avec model en parametre
sprite::sprite(const shell& s)
{
    _model = s;
    _pos = point();
    _dir = point(0,0,-1);
    _radX = _radY = _radZ = 0;
}

//obtenier le model modifer selon les parametres
const shell sprite::getShell()const
{
    shell tmp = _model;
    tmp.rotZ(_radZ);
    tmp.rotX(_radX);
    tmp.rotY(_radY);
    tmp.add(_pos);
    return tmp;
}

//obtenir la position
const point& sprite::getPos()const
{
    return _pos;
}

//obtenir l'angle en axe X
float sprite::getRadX()const
{
    return _radX;
}

//obtenir l'angle en axe Y
float sprite::getRadY()const
{
    return _radY;
}

//obtenir l'angle en axe Z
float sprite::getRadZ()const
{
    return _radZ;
}

//obtenir la diretion
const point& sprite::getDir()const
{
    return _dir;
}

//modifier la position
void sprite::setPos(const point& p)
{
    _pos = p;
}

//modifier l'angle
void sprite::setRad(float x, float y, float z)
{
    _radX = x;
    _radY = y;
    _radZ = z;
    _dir = point(0,0,1).rotX(_radX).rotZ(_radZ).rotY(_radY);

}

