/////////////////////////////////////////////////////////////////////////////// // // vector.cpp // // Description // Classe définissant un vecteur. // // Copyright // Laboratoire LSIS // Equipe LXAO // // Historique // 12/05/1999 Création par Sébastien Thon // 3/05/2015 Modifier par Thierry Nibert-siber // /////////////////////////////////////////////////////////////////////////////// #ifndef VECTOR_H #define VECTOR_H #include class Vector { public: /*Vector( double x1=0, double y1=0, double z1=0 ); Vector( const Vector& v );*/ Vector(): x(0), y(0), z(0) {} Vector (double x1, double y1, double z1): x(x1), y(y1), z(z1) {} Vector ( const Vector &v ): x(v.x), y(v.y), z(v.z) {} double distance( const Vector& v ) const; double distance( double _x, double _y, double _z ) const; double distance_squared( const Vector& v ) const; double distance_squared( double _x, double _y, double _z ) const; double operator % ( const Vector& v ) const; // produit scalaire Vector operator ^ ( const Vector& v ) const; // produit vectoriel void normalize(); Vector operator + ( const Vector& v ) const; Vector operator + ( double d ) const; Vector operator - ( const Vector& v ) const; Vector operator - ( double d ) const; Vector operator - () const; Vector operator * ( const Vector& v ) const; Vector operator * ( double d ) const; Vector operator / ( const Vector& v ) const; Vector operator / ( double d ) const; int operator > ( const Vector& v ); int operator < ( const Vector& v ); int operator == ( const Vector& v ); int operator != ( const Vector& v ); Vector& operator = ( const Vector& v ); Vector& operator += ( const Vector& v ); Vector& operator -= ( const Vector& v ); Vector& operator += ( double d ); Vector& operator -= ( double d ); Vector& operator *= ( double d ); Vector& operator /= ( double d ); friend Vector operator + ( double d, const Vector& v ) { return Vector( v.x+d, v.y+d, v.z+d ); } friend Vector operator * ( double d, const Vector& v ) { return Vector( v.x*d, v.y*d, v.z*d ); } friend std::ostream& operator << ( std::ostream& os, const Vector& v ) { return os << v.x << ", " << v.y << ", " << v.z; } double length() const; double x, y, z; }; #endif