2 #ifndef MEDMEM_WRAPPER_NODES_HXX
3 #define MEDMEM_WRAPPER_NODES_HXX
9 //////////////////////////////////////////////////////////////////
13 //////////////////////////////////////////////////////////////////
15 /*********************************************************/
17 /* Classe Wrapper_Noeud */
19 /*********************************************************/
21 template <int DIMENSION> class Wrapper_Noeud
26 Wrapper_Noeud():coordonnees(NULL)
29 Wrapper_Noeud(double * coord):coordonnees(coord)
35 void positionne(double *place)
39 const double & operator[] (int i) const
41 return coordonnees[i];
43 double operator[] (int i)
45 return coordonnees[i];
47 friend double DistanceInf(const Wrapper_Noeud<DIMENSION> &A,const Wrapper_Noeud<DIMENSION> &B)
51 for (int i=0;i<DIMENSION;i++)
58 friend double DistanceL2(const Wrapper_Noeud<DIMENSION> &A,const Wrapper_Noeud<DIMENSION> &B)
61 for (int i=0;i<DIMENSION;i++)
68 friend int operator==(const Wrapper_Noeud<DIMENSION> &A,const Wrapper_Noeud<DIMENSION> &B)
70 for (int i=0;i<DIMENSION;i++) if (A[i]!=B[i]) return 1;
73 friend ostream & operator<<(ostream &os,const Wrapper_Noeud<DIMENSION> &A)
76 for (int i=0;i<DIMENSION;i++) os<<A[i]<<" "<<flush;
82 /*********************************************************/
84 /* Classe Nuage_Wrapper_Noeud */
86 /*********************************************************/
89 template <int DIMENSION> class Wrapper_Nuage_Noeud
94 Wrapper_Noeud<DIMENSION> show;
96 Wrapper_Nuage_Noeud():nbr_noeuds(0),noeuds(NULL) {}
97 Wrapper_Nuage_Noeud(int nn, double *n):nbr_noeuds(nn),noeuds(n),show(noeuds) {}
98 ~Wrapper_Nuage_Noeud() {}
99 Wrapper_Noeud<DIMENSION> & operator [] (int i)
101 show.positionne((double *) &noeuds[DIMENSION*i]);
104 int size() const {return nbr_noeuds;}
105 int SIZE() const {return nbr_noeuds;}
109 for (i=0;i<nbr_noeuds;i++)
111 cout<<"Noeud "<<i<<" : "<<flush;
112 for (j=0;j<DIMENSION;j++) cout<<noeuds[i*DIMENSION+j]<<" "<<flush;