#ifndef ___Vecteur4_H__ #define ___Vecteur4_H__ #include class Matrice4; /** @brief Classe qui permet de gérer un vecteur à 4 dimensions (pas un évenement, c'est pour OpenGl 3.1) */ class Vecteur4{ public: Vecteur4(double x = 0.0, double y = 0.0, double z = 0.0, double t = 0.0); Vecteur4(const Vecteur4 & other); virtual ~Vecteur4(); void setVecteur4(double x, double y, double z, double t); void setVecteur4(const Vecteur4 & other); void setX(double x); void setY(double y); void setZ(double z); void setT(double t); double getX() const; double getY() const; double getZ() const; double getT() const; //Les opérateurs de la classe Vecteur4 Vecteur4 & operator = (const Vecteur4 & other); Vecteur4 operator - (); Vecteur4 & operator -= (const Vecteur4 & other); Vecteur4 & operator += (const Vecteur4 & other); Vecteur4 & operator *= (double nb); Vecteur4 & operator /= (double nb); //Les opérateurs amis de la classe Vecteur4 friend bool operator == (const Vecteur4 & other1, const Vecteur4 & other2); friend bool operator != (const Vecteur4 & other1, const Vecteur4 & other2); friend Vecteur4 operator + (const Vecteur4 & other1, const Vecteur4 & other2); friend Vecteur4 operator - (const Vecteur4 & other1, const Vecteur4 & other2); friend double operator * (const Vecteur4 & other1, const Vecteur4 & other2); friend Vecteur4 operator * (const Vecteur4 & other1, double nb); friend Vecteur4 operator * (double nb, const Vecteur4 & other1); friend Vecteur4 operator / (const Vecteur4 & other1, double nb); friend std::ostream & operator << (std::ostream & out, const Vecteur4 & other); friend std::istream & operator >> (std::istream & in, Vecteur4 & other); private: void initialisationVecteur4(double x, double y, double z, double t); void copyVecteur4(const Vecteur4 & other); double p_x; double p_y; double p_z; double p_t; }; ///definition d'un Vecteur NULL extern const Vecteur4 VECT4_NULL; #endif //classe Vecteur4