#ifndef VECTEUR_H_INCLUDED
#define VECTEUR_H_INCLUDED

#include <cmath>

class Vec
{
    public:

    Vec();
    Vec(float x, float y, float z = 0);
    Vec(const Vec &vecteur);
    ~Vec();
    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();
    Vec& operator=(const Vec &vecteur);
    Vec operator+(const Vec &vecteur);
    Vec operator-(const Vec &vecteur);
    Vec operator*(float multiplicateur);
    Vec operator/(float diviseur);
    Vec operator*(const Vec &vecteur);
    void operator*=(const Vec &vecteur);
    void operator-=(const Vec &vecteur);
    void operator+=(const Vec &vecteur);
    void operator*=(float multiplicateur);
    void operator/=(float multiplicateur);
    float scalair(const Vec &vecteur);
    bool operator==(const Vec &vecteur);
    bool operator!=(const Vec &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
