 |
MAGiC
V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
|
Aller à la documentation de ce fichier.
62 affiche((
char*)
"Mailleur d'un volume mince en pentaedre");
80 sprintf(mess,
" Maillage de la face de base %lu",face->
get_id());
85 bool dejamaille=
false;
86 for (
int i=0;i<som->get_lien_maillage()->get_nb();i++)
87 if (
mai->
get_mg_noeudid(som->get_lien_maillage()->get(i)->get_id())!=NULL) {dejamaille=
true;
break;}
97 bool dejamaille=
false;
98 for (
int i=0;i<are->get_lien_maillage()->get_nb();i++)
99 if (
mai->
get_mg_segmentid(are->get_lien_maillage()->get(i)->get_id())!=NULL) {dejamaille=
true;
break;}
106 bool dejamaille=
false;
116 sprintf(mess,
" Maillage de la face extrude %lu",autreface->
get_id());
134 noeud=(
MG_NOEUD*)som->get_lien_maillage()->get(num);
142 ot.
projete(xyz,autreface,xyzprojuv,xyzproj);
161 for (
int i=0;i<are->get_lien_maillage()->get_nb();i++)
165 for (
int i=0;i<lstseg.
get_nb();i++)
202 ot.
projete(xyz,autreface,xyzprojuv,xyzproj);
211 ot.
projete(xyz,autreface,xyzprojuv,xyzproj);
220 ot.
projete(xyz,autreface,xyzprojuv,xyzproj);
231 sprintf(mess,
" Maillage des autres aretes");
247 if (ele->get_dimension()==1)
272 sprintf(mess,
" Maillage des autres faces");
275 if (ele->get_dimension()==2)
302 sprintf(mess,
" Maillage du volume");
305 if (ele->get_dimension()==2)
329 double xyzproj[3],xyzprojuv[3];
330 ot.
projete(xyz,autreface,xyzprojuv,xyzproj);
338 are2->inverser(t,xyzproj);
340 are2->evaluer(t,xyztmp);
352 (*areop)->evaluer(t,newxyz);
373 if (v1*v2>0) sens=1;
else sens=-1;
398 if (n*nn>0) sens=1;
else sens=-1;
405 if(sens==1) {nd1=no1;nd2=no2;nd3=no3;}
406 else if(sens==-1) {nd1=no1;nd2=no3;nd3=no2;}
440 if (n*nn>0) sens=1;
else sens=-1;
virtual ~MAILLEUR3D_COUCHE()
virtual X get_premier(ITERATEUR &it)
virtual void active_affichage(fonction_affiche *fonc)
MG_SEGMENT * ajouter_mg_segment(MG_ELEMENT_TOPOLOGIQUE *topo, class MG_NOEUD *mgnoeud1, class MG_NOEUD *mgnoeud2, int origine, double longue=0.0, unsigned long num=0)
virtual bool est_mince(void)
virtual MG_NOEUD * get_noeud2(void)
virtual int maille(MG_GROUPE_TOPOLOGIQUE *mggt=NULL)
virtual double get_longueur2(void) const
MG_SEGMENT * get_mg_segmentid(unsigned long num)
double projete(double *xyz, MG_FACE *face, double *uvproj, double *xyzproj, double precision=1e-6)
virtual X premier_commun(TPL_MAP_ENTITE< X > &lst2, ITERATEUR &it1, ITERATEUR &it2)
MG_NOEUD * projete_noeud_sur_arete(MG_NOEUD *n1, MG_FACE *autreface, MG_ARETE **areop, TPL_MAP_ENTITE< MG_ARETE * > &lstaare)
virtual void get_topologie_sousjacente(TPL_MAP_ENTITE< MG_ELEMENT_TOPOLOGIQUE * > *lst)
virtual int get_dimension(void)=0
virtual void affiche(char *mess)
MG_TRIANGLE * insere_triangle_orientant(MG_FACE *face, MG_NOEUD *no1, MG_NOEUD *no2, MG_NOEUD *no3, int &sens)
virtual void get_face_correspondante(int num, MG_FACE **face1, MG_FACE **face2)
fonction_affiche * affiche2
virtual TPL_SET< MG_ELEMENT_MAILLAGE * > * get_lien_maillage(void)
virtual void inverser(double *uv, double *xyz, double precision=1e-6)
virtual void inverser(double &t, double *xyz, double precision=1e-6)
virtual int get_nouveau_numero(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)
virtual MG_NOEUD * get_noeud1(void)
virtual X suivant_commun(TPL_MAP_ENTITE< X > &lst2, ITERATEUR &it1, ITERATEUR &it2)
virtual void ajouter(X x)
virtual double * get_coord(void)
std::map< unsigned long, X, std::less< unsigned long > >::iterator ITERATEUR
virtual void change_nouveau_numero(int num)
virtual MG_POINT * get_point(void)
MG_QUADRANGLE * insere_quadrangle_orientant(MG_FACE *face, MG_NOEUD *no1, MG_NOEUD *no2, MG_NOEUD *no3, MG_NOEUD *no4, int &sens)
virtual MG_NOEUD * get_noeud2(void)
MAILLEUR3D_COUCHE(MG_MAILLAGE *mgmai, MG_GEOMETRIE *mggeo, FCT_TAILLE *fct_taille)
MG_NOEUD * get_mg_noeudid(unsigned long num)
MG_SEGMENT * get_mg_segment(unsigned int num)
virtual void ajouter(X x)
virtual MG_NOEUD * get_noeud1(void)
MG_SEGMENT * insere_segment_orientant(MG_ARETE *are, MG_NOEUD *no1, MG_NOEUD *no2, int &sens)
int maille(MG_GROUPE_TOPOLOGIQUE *mggt=NULL)
virtual void calcul_normale_unitaire(double *uv, double *normale)
MG_GEOMETRIE * get_mg_geometrie(void)
int maille(MG_GROUPE_TOPOLOGIQUE *mggt=NULL)
virtual MG_NOEUD * get_noeud3(void)
virtual int get_dimension(void)
virtual int get_nb_face_correspondante(void)
virtual void deriver(double t, double *xyz)
MG_TRIANGLE * get_mg_triangleid(unsigned long num)
virtual X get_suivant(ITERATEUR &it)
MG_QUADRANGLE * ajouter_mg_quadrangle(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)
int maille(MG_GROUPE_TOPOLOGIQUE *mggt=NULL)
virtual void evaluer(double *xyz)=0
MG_PENTA * ajouter_mg_penta(MG_ELEMENT_TOPOLOGIQUE *topo, class MG_NOEUD *mgnoeud1, class MG_NOEUD *mgnoeud2, class MG_NOEUD *mgnoeud3, class MG_NOEUD *mgnoeud4, class MG_NOEUD *mgnoeud5, class MG_NOEUD *mgnoeud6, int origine, unsigned long num=0)
virtual void get_topologie_sousjacente(TPL_MAP_ENTITE< MG_ELEMENT_TOPOLOGIQUE * > *lst)
MG_NOEUD * ajouter_mg_noeud(MG_ELEMENT_TOPOLOGIQUE *topo, double xx, double yy, double zz, int origine, unsigned long num=0)