2 #ifndef MEDMEM_WRAPPER_NODES_HXX
3 #define MEDMEM_WRAPPER_NODES_HXX
11 //////////////////////////////////////////////////////////////////
15 //////////////////////////////////////////////////////////////////
17 /*********************************************************/
19 /* Classe Wrapper_Noeud */
21 /*********************************************************/
23 template <int DIMENSION> class Wrapper_Noeud
28 Wrapper_Noeud():coordonnees(NULL)
31 Wrapper_Noeud(double * coord):coordonnees(coord)
37 void positionne(double *place)
41 const double & operator[] (int i) const
43 return coordonnees[i];
45 double operator[] (int i)
47 return coordonnees[i];
49 friend double DistanceInf(const Wrapper_Noeud<DIMENSION> &A,const Wrapper_Noeud<DIMENSION> &B)
53 for (int i=0;i<DIMENSION;i++)
60 friend double DistanceL2(const Wrapper_Noeud<DIMENSION> &A,const Wrapper_Noeud<DIMENSION> &B)
63 for (int i=0;i<DIMENSION;i++)
70 friend int operator==(const Wrapper_Noeud<DIMENSION> &A,const Wrapper_Noeud<DIMENSION> &B)
72 for (int i=0;i<DIMENSION;i++) if (A[i]!=B[i]) return 1;
75 friend ostream & operator<<(ostream &os,const Wrapper_Noeud<DIMENSION> &A)
78 for (int i=0;i<DIMENSION;i++) os<<A[i]<<" "<<flush;
84 /*********************************************************/
86 /* Classe Nuage_Wrapper_Noeud */
88 /*********************************************************/
91 template <int DIMENSION> class Wrapper_Nuage_Noeud
96 Wrapper_Noeud<DIMENSION> show;
98 Wrapper_Nuage_Noeud():nbr_noeuds(0),noeuds(NULL) {}
99 Wrapper_Nuage_Noeud(int nn, double *n):nbr_noeuds(nn),noeuds(n),show(noeuds) {}
100 ~Wrapper_Nuage_Noeud() {}
101 Wrapper_Noeud<DIMENSION> & operator [] (int i)
103 show.positionne((double *) &noeuds[DIMENSION*i]);
106 int size() const {return nbr_noeuds;}
107 int SIZE() const {return nbr_noeuds;}
111 for (i=0;i<nbr_noeuds;i++)
113 cout<<"Noeud "<<i<<" : "<<flush;
114 for (j=0;j<DIMENSION;j++) cout<<noeuds[i*DIMENSION+j]<<" "<<flush;