#ifndef VECTEUR_H_INCLUDED
#define VECTEUR_H_INCLUDED

#include <cmath>

class Vecteur
{
    public:

    Vecteur();
    Vecteur(float x, float y, float z = 0);
    Vecteur(const Vecteur &vecteur);
    ~Vecteur();
    float getX() const;
    float getY() const;
    float getZ() const;
    void setVecteur(float x, float y, float z);
    void setX(float x);
    void setY(float y);
    void setZ(float z);
    void normaliser();
    Vecteur& operator=(const Vecteur &vecteur);
    Vecteur operator+(const Vecteur &vecteur);
    Vecteur operator-(const Vecteur &vecteur);
    Vecteur operator*(float multiplicateur);
    Vecteur operator/(float diviseur);
    Vecteur operator*(const Vecteur &vecteur);
    void operator*=(const Vecteur &vecteur);
    void operator-=(const Vecteur &vecteur);
    void operator+=(const Vecteur &vecteur);
    void operator*=(float multiplicateur);
    void operator/=(float multiplicateur);
    float scalair(const Vecteur &vecteur);
    bool operator==(const Vecteur &vecteur);
    bool operator!=(const Vecteur &vecteur);
    double norme();
    void rotateR(float angle); // angle en radians
    void rotateD(float angle); // angle en degrées

private:
    float m_x;
    float m_y;
    float m_z;
};

#endif // VECTEUR_H_INCLUDED
