00001 #ifndef __J2K__Vector3D_HPP__
00002 #define __J2K__Vector3D_HPP__
00003
00004 #include <j2k/Fred/3d/Sommet.hpp>
00005
00006 class Vector3DH {
00007 public:
00008 Vector3DH() { }
00009
00010 Vector3DH( const Sommet3DH& a1, const Sommet3DH& b1 ) : a( a1 ), b( b1 ) { }
00011
00012 Vector3DH( const Vector3DH& v ): a( v.a ), b( v.b ) { }
00013
00014
00015 Vector3DH& operator=( const Vector3DH& v );
00016
00017
00018 realtype angle_ver();
00019
00020
00021 void cos_sinangle_ver( realtype& cos_Theta, realtype& sin_Theta );
00022 realtype cosangle_ver();
00023 realtype sinangle_ver();
00024
00025
00026
00027
00028 realtype angle_hor();
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 void cos_sinangle_hor( realtype& cos_Phi, realtype& sin_Phi );
00039 realtype cosangle_hor();
00040 realtype sinangle_hor();
00041
00042
00043 realtype norme();
00044
00045
00046 realtype compox();
00047
00048
00049 realtype compoy();
00050
00051
00052 realtype compoz();
00053
00054
00055 void normalisation();
00056
00057
00058 realtype produit_scalaire( Vector3DH& v );
00059
00060
00061
00062 void vecteur_normal( Vector3DH& v, Sommet3DH& result );
00063
00064
00065
00066 void vecteur_normal( Vector3DH& v, Vector3DH& result );
00067
00068 public:
00069 Sommet3DH a, b;
00070 };
00071
00072
00073 istream& operator>>( istream& in, const Vector3DH& v );
00074
00075
00076 ostream& operator<<( ostream& out, const Vector3DH& v );
00077
00078 #endif