1 #ifndef MEDMEM_WRAPPER_CONNECTIVITY_HXX
2 #define MEDMEM_WRAPPER_CONNECTIVITY_HXX
4 #include "MEDMEM_Connectivity.hxx"
8 //////////////////////////////////////////////////////////////////
10 /// DECLARATIONS ET CODE ///
12 //////////////////////////////////////////////////////////////////
14 /*********************************************************/
16 /* Wrapper_Med_Connectivity */
18 /*********************************************************/
20 // obligé de faire de la recopie car MED n'utilise pas la numérotation standart C
22 class Wrapper_Med_Connectivity
28 vector< int* > premier_pointeur;
31 ~Wrapper_Med_Connectivity() {if (mailles) delete [] mailles;}
32 Wrapper_Med_Connectivity():mailles(NULL) {}
33 Wrapper_Med_Connectivity(CONNECTIVITY * maillesmed)
35 const med_int * tab_sommets_mailles=maillesmed->getConnectivity(MED_NODAL,MED_CELL,MED_ALL_ELEMENTS);
36 const med_int * med_connectivite=maillesmed->getConnectivityIndex(MED_FULL_INTERLACE,MED_CELL);
37 const med_int * med_index=maillesmed->getValueIndex(MED_FULL_INTERLACE);
38 nbr_mailles=maillesmed->getNumberOf(MED_CELL,MED_ALL_ELEMENTS);
39 int size=med_index[nbr_mailles]-med_index[0];
40 types.resize(nbr_mailles);
41 premier_pointeur.resize(nbr_mailles);
42 mailles=new int[size];
46 mailles[i]=tab_sommets_mailles[i]-1;
48 for (i=0;i<nbr_mailles;i++)
50 types[i]=maillesmed->getElementType(MED_CELL,i+1); // A VERIFIER : le +1
51 premier_pointeur[i]=&mailles[med_index[i]-1]; // A VERIFIER : la formule
54 // Méthodes de la politique
55 inline int SIZE() {return nbr_mailles;}
56 inline int DONNE_TYPE_MAILLE(int i) {return types[i];}
57 inline int * DONNE_PREMIER_POINTEUR(int i) {return premier_pointeur[i];}