102 lines
2.3 KiB
C++
Executable File
102 lines
2.3 KiB
C++
Executable File
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// 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 <iostream>
|
|
|
|
|
|
|
|
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
|