Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

Vector3D Class Reference

#include <vector3D.h>

List of all members.

Public Member Functions

 Vector3D (const Vector3D &vector)
 Vector3D (const double xx=0, const double yy=0, const double zz=0)
 Vector3D (const Point3D &p1, const Point3D &p2)
double operator[] (int i) const
double & operator[] (int i)
double norm ()
Vector3D normalize ()
double operator * (const Vector3D &vector)
Vector3D operator^ (const Vector3D &vector)
Vector3Doperator *= (const double scalar)
Vector3Doperator+= (const Vector3D &vector)
Vector3Doperator-= (const Vector3D &vector)

Private Attributes

double vect [3]

Friends

std::ostream & operator<< (std::ostream &os, const Vector3D &vect)
Vector3D operator+ (const Vector3D &v1, const Vector3D &v2)
Vector3D operator- (const Vector3D &v1, const Vector3D &v2)
Vector3D operator * (const Vector3D &v1, const double scalar)
Vector3D operator * (const double scalar, const Vector3D &v1)


Detailed Description

La classe Vector3D permet de spécifier des vecteurs en 3D.

Author:
Guitteny Fabrice

Idiart Baptiste

Le Goff Erwan


Constructor & Destructor Documentation

Vector3D::Vector3D const Vector3D vector  ) 
 

constructeur par copie

Parameters:
vector Vector3D

00005 { 00006 for (int i = 0; i < 3; i++) 00007 vect[i] = vector[i]; 00008 }

Vector3D::Vector3D const double  xx = 0,
const double  yy = 0,
const double  zz = 0
 

constructeur : spécification des coordonnées

Parameters:
xx abcisse
yy ordonnée
zz hauteur

00011 { 00012 vect[0] = xx; 00013 vect[1] = yy; 00014 vect[2] = zz; 00015 }

Vector3D::Vector3D const Point3D p1,
const Point3D p2
 

constructeur : spécification des points extrémités

Parameters:
p1 point extrémité 1
p2 point extrémité 2

00018 { 00019 // p1 -> point de départ P2 -> point d'arrivée 00020 vect[0] = p2[0] - p1[0]; 00021 vect[1] = p2[1] - p1[1]; 00022 vect[2] = p2[2] - p1[2]; 00023 }


Member Function Documentation

double Vector3D::norm  ) 
 

norme d'un vecteur

Returns:
norme du vecteur

00042 { 00043 return (double) sqrt(vect[0] * vect[0] + vect[1] * vect[1] + vect[2] * vect[2]); 00044 }

Vector3D Vector3D::normalize  ) 
 

normalisation d'un vecteur

Returns:
vecteur normailsé

00049 { 00050 double vectNorm = norm(); 00051 return Vector3D(vect[0] / vectNorm, 00052 vect[1] / vectNorm, 00053 vect[2] / vectNorm); 00054 }

double Vector3D::operator * const Vector3D vector  ) 
 

operateur * (produit scalaire de 2 vecteurs)

Parameters:
vector autre vecteur
Returns:
produit scalaire

00060 { 00061 return (vect[0] * vector[0] + vect[1] * vector[1] + vect[2] * vector[2]); 00062 }

Vector3D & Vector3D::operator *= const double  scalar  ) 
 

operateur *= (multiplication par un scalaire)

Parameters:
scalar multiplicateur
Returns:
Vector3D

00077 { 00078 for (int i = 0; i < 3; i++) 00079 vect[i] *= scalar; 00080 return *this; 00081 }

Vector3D & Vector3D::operator+= const Vector3D vector  ) 
 

operateur += (addition de 2 vecteurs)

Parameters:
vector autre vector
Returns:
Vector3D

00085 { 00086 for (int i = 0; i < 3; i++) 00087 vect[i] += vector[i]; 00088 return *this; 00089 }

Vector3D & Vector3D::operator-= const Vector3D vector  ) 
 

operateur -= (soustraction de 2 vecteurs)

Parameters:
vector autre vector
Returns:
Vector3D

00093 { 00094 for (int i = 0; i < 3; i++) 00095 vect[i] -= vector[i]; 00096 return *this; 00097 }

double & Vector3D::operator[] int  i  ) 
 

modificateur

Parameters:
i dimension voulue (0 : x, 1 : y, 2 : z)
Returns:
x, y ou z (selon i)

00035 { 00036 return vect[i]; 00037 }

double Vector3D::operator[] int  i  )  const
 

accesseur

Parameters:
i dimension voulue (0 : x, 1 : y, 2 : z)
Returns:
x, y ou z (selon i)

00029 { 00030 return vect[i]; 00031 }

Vector3D Vector3D::operator^ const Vector3D vector  ) 
 

operateur ^ (produit vectoriel de 2 vecteurs)

Parameters:
vector autre vecteur
Returns:
produit vectoriel

00067 { 00068 Vector3D vNormal; 00069 vNormal[0] = ((vect[1] * vector[2]) - (vect[2] * vector[1])); 00070 vNormal[1] = ((vect[2] * vector[0]) - (vect[0] * vector[2])); 00071 vNormal[2] = ((vect[0] * vector[1]) - (vect[1] * vector[0])); 00072 return vNormal; 00073 }


Friends And Related Function Documentation

Vector3D operator * const double  scalar,
const Vector3D v1
[friend]
 

operateur * (multiplication avec un scalaire)

Parameters:
v1 vecteur
scalar multiplicateur
Returns:
Vector3D scalar * v1

00132 { 00133 return (v1 * scalar); 00134 }

Vector3D operator * const Vector3D v1,
const double  scalar
[friend]
 

operateur * (multiplication avec un scalaire)

Parameters:
v1 vecteur
scalar multiplicateur
Returns:
Vector3D v1 * scalar

00124 { 00125 return Vector3D(v1[0] * scalar, 00126 v1[1] * scalar, 00127 v1[2] * scalar); 00128 }

Vector3D operator+ const Vector3D v1,
const Vector3D v2
[friend]
 

operateur + (addition de 2 vecteurs)

Parameters:
v1 vecteur
v2 vecteur
Returns:
Vector3D v1 + v2

00110 { 00111 return Vector3D(v1[0] + v2[0], 00112 v1[1] + v2[1], 00113 v1[2] + v2[2]); 00114 }

Vector3D operator- const Vector3D v1,
const Vector3D v2
[friend]
 

operateur - (soustraction de 2 vecteurs)

Parameters:
v1 vecteur
v2 vecteur
Returns:
Vector3D v1 - v2

00118 { 00119 return ((-1 * v2) + v1); 00120 }

std::ostream& operator<< std::ostream &  os,
const Vector3D vect
[friend]
 

operateur << (affichage des coordonnées du vecteur)

Parameters:
os flux de sortie
vect vecteur dont on veut afficher les coordonnées
Returns:
flux

00103 { 00104 os << "[" << vect[0] << "," << vect[1] << "," << vect[2] << "]"; 00105 return os; 00106 }


Member Data Documentation

double Vector3D::vect[3] [private]
 

coordonnées du vecteur


The documentation for this class was generated from the following files:
Generated on Tue Nov 29 21:59:00 2005 for CylinderGenerator by doxygen 1.3.7