extern "C" class SMRpunto3D;
extern "C" class SMRcuaternio
{
private:
float valores[4];
public:
//Constructores
SMRcuaternio();
SMRcuaternio(float c0,float c1,float c2,float c3);
SMRcuaternio(float ang, /*SMRvector*/int eje);
SMRcuaternio(SMRpunto3D euler);
//Sobrecarga de Operadores
bool operator==(const SMRcuaternio& c);
float& operator [](int i);
SMRcuaternio operator+(const SMRcuaternio& c);
SMRcuaternio operator-(const SMRcuaternio& c);
SMRcuaternio operator*(const SMRcuaternio& c);
SMRcuaternio operator*(float escalar);
SMRcuaternio& operator = (const SMRcuaternio& c);
//Otros Metodos
SMRcuaternio GetConjugado();
float *GetValQ(){return this->valores;}
};