40 octree.
initialiser(*metri,xmin,ymin,zmin,xmax,ymax,zmax);
43 std::map<int,MG_NOEUD*,std::less<unsigned long> > lst;
44 for (
int i=0;i<nb_feuille;i++)
49 if (lst[keycode]==NULL)
59 for (
int i=0;i<nb_feuille;i++)
66 int face[6]={0,0,0,0,0,0};
78 int arete[5]={0,0,0,0};
97 if (cell->
feuille==0) arete[k]=1;
101 arete[4]=arete[0]+arete[1]+arete[2]+arete[3];
108 if ( (j==2) || (j==4) )
121 if ( (j==1) || (j==3) )
134 if ( (j==0) || (j==5) )
151 double xcentre=0.,ycentre=0.,zcentre=0.;
169 xcentre=0.25*xcentre;
170 ycentre=0.25*ycentre;
171 zcentre=0.25*zcentre;
172 unsigned long key=octree.
get_keycode(xcentre,ycentre,zcentre);
180 for (
int k=0;k<4;k++)
190 double x1,y1,z1,x2,y2,z2;
193 unsigned long keymilieu=octree.
get_keycode(0.5*(x1+x2),0.5*(y1+y2),0.5*(z1+z2));
227 for (
int i=0;i<nbtri;i++)
void get_centre(double *coo)
virtual BOITE_3D get_boite_3D(void)=0
virtual int maille(MG_GROUPE_TOPOLOGIQUE *mggt=NULL)
virtual class MG_TETRA * insere_tetra(class MG_ELEMENT_TOPOLOGIQUE *mgvol, class MG_FRONT_3D *ft, MG_NOEUD *noeud4, int type, TPL_MAP_ENTITE< class MG_TRIANGLE * > &liste_intersection)
MG_MAILLAGE * mg_maillage
virtual void verifie_conformite_octale(MG_MAILLAGE *mai, MG_MAILLAGE *maisur)
virtual void change_coef(double val)
unsigned int get_nb_mg_triangle(void)
MG_TRIANGLE * ajouter_mg_triangle(MG_ELEMENT_TOPOLOGIQUE *topo, class MG_NOEUD *mgnoeud1, class MG_NOEUD *mgnoeud2, class MG_NOEUD *mgnoeud3, int origine, unsigned long num=0)
MG_TETRA * ajouter_mg_tetra(MG_ELEMENT_TOPOLOGIQUE *topo, class MG_NOEUD *mgnoeud1, class MG_NOEUD *mgnoeud2, class MG_NOEUD *mgnoeud3, class MG_NOEUD *mgnoeud4, int origine, unsigned long num=0)
MG_TRIANGLE * get_mg_triangle(unsigned int num)
MG_NOEUD * ajouter_mg_noeud(MG_ELEMENT_TOPOLOGIQUE *topo, double xx, double yy, double zz, int origine, unsigned long num=0)
virtual double * get_coord(void)
virtual MG_NOEUD * get_noeud3(void)
virtual MG_NOEUD * get_noeud1(void)
TPL_LISTE_ENTITE< class MG_TETRA * > * get_lien_tetra(void)
virtual MG_NOEUD * get_noeud2(void)
static double qualite_tetra(double *noeud1, double *noeud2, double *noeud3, double *noeud4)
int sommetarete(int numarete, int numsommet)
int areteface(int numface, int numarete)
int faceadjacente(int numface, int numarete)
int sommetface(int numface, int numsommet)
virtual void initialiser(B &fonction, double xmin, double ymin, double zmin, double xmax, double ymax, double zmax)
virtual void change_coefficent_multiplicateur(double val)
virtual int get_nb_feuille(void)
virtual unsigned long get_keycode(TPL_CELLULE_OCTREE< A, CONDITION > *cellule, int numsommet)
virtual void get_xyzsommet_feuille(int numcellule, int numsommet, double &x, double &y, double &z)
virtual TPL_CELLULE_OCTREE< A, CONDITION > * get_cellule_adjacent(TPL_CELLULE_OCTREE< A, CONDITION > *cellule, int direction)
virtual TPL_CELLULE_OCTREE< A, CONDITION > * get_feuille(int num)
virtual void equilibre(int niveauequilibre=1)
virtual TPL_CELLULE_OCTREE< A, CONDITION > * get_cellule_voisin(TPL_CELLULE_OCTREE< A, CONDITION > *cellule, int direction)
virtual unsigned long get_feuille_keycode(int numcellule, int numsommet)