MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mg_maillage_outils.h
Aller à la documentation de ce fichier.
1 //####//------------------------------------------------------------
2 //####//------------------------------------------------------------
3 //####// MAGiC
4 //####// Jean Christophe Cuilliere et Vincent FRANCOIS
5 //####// Departement de Genie Mecanique - UQTR
6 //####//------------------------------------------------------------
7 //####// MAGIC est un projet de recherche de l equipe ERICCA
8 //####// du departement de genie mecanique de l Universite du Quebec a Trois Rivieres
9 //####// http://www.uqtr.ca/ericca
10 //####// http://www.uqtr.ca/
11 //####//------------------------------------------------------------
12 //####//------------------------------------------------------------
13 //####//
14 //####// mg_maillage_outils.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:54 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #ifndef mg_maillage_outilsh
23 #define mg_maillage_outilsh
24 
25 
26 
27 #include <set>
28 #include <vector>
29 #include <mg_maillage.h>
30 #include "mg_gestionnaire.h"
31 #include "ot_mathematique.h"
32 class MG_SEGMENT;
33 class MG_NOEUD;
34 class MG_FACE;
35 class MG_ARETE;
36 class MG_SOMMET;
37 class MG_MAILLAGE;
38 class MG_GEOMETRIE;
40 
41 
42 
48 {
49 public:
54 
55 void calcul_courbure_face_arete_sommet(MG_NOEUD *noeud,double& kmin1, double& kmax1,double& kmin2,double& kmax2,std::map<std::string,double> &liste_kmin,std::map<std::string,double> &liste_kmax,std::map<std::string,double> &liste_gau,std::map<std::string,double> &liste_courburemax1,std::map<std::string,double> &liste_courburemax2,std::map<std::string,double> &liste_courburemax3,std::map<std::string,double> &liste_courburemax4,std::map<std::string,double> &liste_courburemax5,int opensurafece);
56 void calcul_courbure_discrete(class MG_GESTIONNAIRE& gest,char *nom,int nummai,char* outputgestnom,int opensurafece);
57 void calcul_courbure(class MG_GESTIONNAIRE& gest,char* solnom,int nummai,int numgeo,char* outputgestnom);
58 
59 
60 void calcul_courbure_face(MG_NOEUD *noeud,double& kmin, double& kmax, std::map<std::string,double> &liste_kmin,std::map<std::string,double> &liste_kmax,std::map<std::string,double> &liste_gau,std::map<std::string,double> &liste_courburemax1,std::map<std::string,double> &liste_courburemax2,std::map<std::string,double> &liste_courburemax3,std::map<std::string,double> &liste_courburemax4,std::map<std::string,double> &liste_courburemax5 );
61 
62 
67  static void inserer_noeud_segment(class MG_MAILLAGE * __mesh, class MG_NOEUD * __node, class MG_SEGMENT * __splitSeg, MG_SEGMENT * __segs[2], bool __deleteOriginalSeg = true);
68 
74  static void change_lien_maillage(class MG_ELEMENT_TOPOLOGIQUE * __old_topo, MG_ELEMENT_TOPOLOGIQUE * __new_topo, MG_MAILLAGE * __mesh = 0);
84  static void SplitEdgeInMesh(MG_MAILLAGE * __mesh, class MG_ARETE * __origEdge, class MG_SOMMET * __splitVertex, class MG_ARETE * __arete_gauche, MG_ARETE * __arete_droite, MG_SEGMENT **__origSegment, MG_NOEUD ** __splitNode, MG_SEGMENT * __splitSegments[2]);
85 
97  static void classe_elements_dimension1__trouver_prochains_elements(std::set <MG_SEGMENT*> & __unvisitedSegs, std::vector<MG_SEGMENT*> & __visitedSegs, std::vector<MG_NOEUD*>& __visitedNodes, MG_NOEUD * & __nextNode, MG_SEGMENT * & __nextSeg);
98 
99 
104  static MG_NOEUD * classe_elements_dimension1__trouver_noeud_dimension0(const std::set<MG_SEGMENT*> & __unvisitedSegs);
105 
106 
107  /*
108 
109  Cette fonction classe une liste de segments attach�s � un tpologie de dimension 1
110  (ar�teMG_NOEUD* noeud1=ele1->get_noeud1();
111  MG_NOEUD* noeud2=ele1->get_noeud2();
112  MG_NOEUD* noeud3=ele1->get_noeud3();
113  MG_NOEUD* noeud4=ele2->get_noeud1();
114  MG_NOEUD* noeud5=ele2->get_noeud2();
115  MG_NOEUD* noeud6=ele2->get_noeud3();
116  return get_angle_par_noeud<MG_NOEUD*>(noeud1,noeud2,noeud3,noeud4,noeud5,noeud6);) et g�n�re 2 listes :
117 
118  * __visitedSegs : la liste des segments plac�s entre 2 noeuds li�s � une topologie
119  de dimension 0 (noeuds de sommets). Les premier et dernier segments
120  de la liste sont adjacent � un sommet de la topologie.
121  La liste de segments est ordonn�e par adjacence et forment une polyligne.
122 
123  * __visitedNodes : la liste des noeuds ordonn�s par ordre d'adjacence,
124  en partant du noeud d'extr�mit� du premier segment, et en finissant
125  par le noeud d'extremit� du dernier segment.
126 
127  __visitedNodes[i] et __visitedNodes[i+1] sont les extr�mit�s du segment __visitedSegs[i]
128 
129  Algorithme utilis� :
130 
131  * Trouver le premier noeud tel que la dimension de la topologie soit �gale � 0
132 
133  * Faire :
134 
135  * (seg^i+1, N^i+1) = Trouver les prochains segments et noeuds ((segs), (visited_seg), (visited_N))
136 
137  * Tant que dernier(visited_N) a une dimension non �gale � 0
138 
139  */
140  static void classe_elements_dimension1(std::set<MG_SEGMENT*> & __unvisitedSegs, std::vector<MG_SEGMENT*> & __visitedSegs, std::vector<MG_NOEUD*> & __visitedNodes );
141  static void IdentifyEdge1(std::set <MG_SOMMET *> __vertices, std::set<class MG_FACE *> & __adjacentFaces, std::set <MG_ARETE * > & __edge);
142  static void IdentifyEdge2(std::set <MG_SOMMET *> __vertices, std::set<MG_FACE *> & __adjacentFaces, std::set<MG_ARETE *> & __lst_edge, std::vector<MG_NOEUD*> & __nodes);
143  static void IdentifyEdge3(std::set <MG_SOMMET *> __vertices, std::set<MG_ARETE *> & __lst_edge, std::vector<MG_NOEUD*> & __nodes, MG_ARETE ** __edge);
144  MG_GEOMETRIE* importer(class MG_GESTIONNAIRE& gest,char *path);
145  static void IdentifyEdge4(std::set <MG_SOMMET *> __vertices, std::set<MG_ARETE *> & __lst_edge, std::vector<MG_NOEUD*> & __nodes, std::vector<MG_SEGMENT*> & __segments, MG_ARETE ** __edge);
146  static void IdentifyEdge5(const std::set <MG_SOMMET *> __vertices, const std::set<MG_ARETE *> & __lst_edge, const std::vector<MG_NOEUD*> & __nodes, const std::vector<MG_SEGMENT*> & __segs, MG_ARETE ** __edge);
147  static void FindCommonEdgesOfFaces(std::set< MG_FACE * > & __faces, std::set<MG_ARETE*> & __commonEdges);
148  static void _FilterSegmentsAndEdgeAdjacentToSameFaces( std::vector<MG_SEGMENT*> & __segments, std::set<MG_ARETE *> & __lst_edge);
149  static double TestDistanceEdgeNode(MG_ARETE* candidate_edge, MG_NOEUD* test_node);
150  static void Conformity_CloseSurfaceMesh(MG_MAILLAGE * __tess, double __tolerance);
151  static double TestDistanceEdge(MG_ARETE* candidate_edge, double* xyz_node);
152 
153  void projetedansletriangle(MG_TRIANGLE *tri,double x,double y, double z,double &xx,double &yy,double &zz);
154  int estdansletriangle(MG_TRIANGLE *tri,double x,double y, double z) ;
155  int projeteestdansletriangle(MG_TRIANGLE *tri,double x,double y, double z) ;
156  int estdansletetra(class MG_TETRA *tet,double x,double y, double z);
157  int compare_etat_tetra(int etat,int valeur);
158  int compare_etat_triangle(int etat,int valeur);
159 
160  int est_delaunay_generalise(double *xyz,MG_TRIANGLE* tri);
161 
162  double get_angle(class MG_TRIANGLE* ele1,class MG_TRIANGLE* ele2);
163 
164 
165  void get_noeud_voisin(MG_NOEUD* no,TPL_MAP_ENTITE<MG_NOEUD*> &liste,int niveau);
166  double get_volume(MG_MAILLAGE* mai);
167 
168 private:
170  int nummai;
171  double calcul_gaussienne_face(MG_NOEUD *noeud);
172  double calcul_moyenne_face(MG_NOEUD *noeud);
173  double calcul_surface_triangle_face(MG_NOEUD *noeud);
174 
175  double calcul_surface_lsttriangle(MG_NOEUD * noeud,MG_TRIANGLE * tr1);
176  double calcul_angle_lsttriangle(MG_NOEUD * noeud,MG_TRIANGLE * tr1);
177  double calcul_angle_lstsegment(MG_NOEUD * noeud,MG_SEGMENT * se1);
178 
179  void calcul_courbure_arete_virtuelle(MG_NOEUD *noeud,double& kmin, double& kmax, std::map<std::string,double> &liste_kmin,std::map<std::string,double> &liste_kmax );
180  void calcul_courbure_arete_nonvirtuelle(MG_NOEUD *noeud,double& kmin1, double& kmax1,double& kmin2,double& kmax2, std::map<std::string,double> &liste_kmin,std::map<std::string,double> &liste_kmax );
181  void calcul_courbure_arete(MG_NOEUD *noeud,double& kmin1, double& kmax1,double& kmin2,double& kmax2, std::map<std::string,double> &liste_kmin,std::map<std::string,double> &liste_kmax);
182 
183  void calcul_courbure_sommet(MG_NOEUD *noeud,double& kmin1, double& kmax1,double& kmin2,double& kmax2, std::map<std::string,double> &liste_kmin,std::map<std::string,double> &liste_kmax);
184  void calcul_courbure_sommet_arete_virtuelle(MG_SOMMET *sommet,MG_NOEUD *noeud,double& kmin1, double& kmax1,double& kmin2,double& kmax2, std::map<std::string,double> &liste_kmin,std::map<std::string,double> &liste_kmax );
185  void calcul_courbure_sommet_arete_nonvirtuelle(MG_SOMMET *sommet,MG_NOEUD *noeud,double& kmin1, double& kmax1,double& kmin2,double& kmax2, std::map<std::string,double> &liste_kmin,std::map<std::string,double> &liste_kmax );
186 
187 
188  static void _FilterGeometricTolerance(const std::vector<MG_NOEUD*> & __nodes, std::set<MG_ARETE*> & __lst_edge);
189  static void _FilterGeometricTolerance5(const std::vector<MG_NOEUD*> & __nodes, const std::vector<MG_SEGMENT*> & __segs, std::set<MG_ARETE*> & __lst_edge);
190 };
191 
192 #endif
MG_MAILLAGE_OUTILS::calcul_gaussienne_face
double calcul_gaussienne_face(MG_NOEUD *noeud)
Definition: mg_maillage_outils.cpp:2944
MG_MAILLAGE_OUTILS::calcul_courbure_arete_virtuelle
void calcul_courbure_arete_virtuelle(MG_NOEUD *noeud, double &kmin, double &kmax, std::map< std::string, double > &liste_kmin, std::map< std::string, double > &liste_kmax)
Definition: mg_maillage_outils.cpp:2526
MG_SEGMENT
Definition: mg_segment.h:38
MG_MAILLAGE_OUTILS::_FilterGeometricTolerance
static void _FilterGeometricTolerance(const std::vector< MG_NOEUD * > &__nodes, std::set< MG_ARETE * > &__lst_edge)
Definition: mg_maillage_outils.cpp:741
MG_MAILLAGE_OUTILS::calcul_courbure_discrete
void calcul_courbure_discrete(class MG_GESTIONNAIRE &gest, char *nom, int nummai, char *outputgestnom, int opensurafece)
Definition: mg_maillage_outils.cpp:1464
TPL_MAP_ENTITE< MG_NOEUD * >
MG_MAILLAGE_OUTILS::mai
MG_MAILLAGE * mai
Definition: mg_maillage_outils.h:169
mg_gestionnaire.h
MG_MAILLAGE_OUTILS::calcul_courbure_face_arete_sommet
void calcul_courbure_face_arete_sommet(MG_NOEUD *noeud, double &kmin1, double &kmax1, double &kmin2, double &kmax2, std::map< std::string, double > &liste_kmin, std::map< std::string, double > &liste_kmax, std::map< std::string, double > &liste_gau, std::map< std::string, double > &liste_courburemax1, std::map< std::string, double > &liste_courburemax2, std::map< std::string, double > &liste_courburemax3, std::map< std::string, double > &liste_courburemax4, std::map< std::string, double > &liste_courburemax5, int opensurafece)
Definition: mg_maillage_outils.cpp:1575
MG_MAILLAGE_OUTILS::SplitEdgeInMesh
static void SplitEdgeInMesh(MG_MAILLAGE *__mesh, class MG_ARETE *__origEdge, class MG_SOMMET *__splitVertex, class MG_ARETE *__arete_gauche, MG_ARETE *__arete_droite, MG_SEGMENT **__origSegment, MG_NOEUD **__splitNode, MG_SEGMENT *__splitSegments[2])
Definition: mg_maillage_outils.cpp:975
MG_MAILLAGE_OUTILS::_FilterSegmentsAndEdgeAdjacentToSameFaces
static void _FilterSegmentsAndEdgeAdjacentToSameFaces(std::vector< MG_SEGMENT * > &__segments, std::set< MG_ARETE * > &__lst_edge)
Definition: mg_maillage_outils.cpp:609
MG_MAILLAGE_OUTILS::calcul_surface_triangle_face
double calcul_surface_triangle_face(MG_NOEUD *noeud)
Definition: mg_maillage_outils.cpp:2879
MG_TRIANGLE
Definition: mg_triangle.h:38
MG_MAILLAGE_OUTILS::classe_elements_dimension1
static void classe_elements_dimension1(std::set< MG_SEGMENT * > &__unvisitedSegs, std::vector< MG_SEGMENT * > &__visitedSegs, std::vector< MG_NOEUD * > &__visitedNodes)
Definition: mg_maillage_outils.cpp:427
MG_MAILLAGE_OUTILS::get_angle
double get_angle(class MG_TRIANGLE *ele1, class MG_TRIANGLE *ele2)
Definition: mg_maillage_outils.cpp:93
MG_GESTIONNAIRE
Definition: mg_gestionnaire.h:57
MG_TETRA
Definition: mg_tetra.h:37
MG_MAILLAGE_OUTILS::classe_elements_dimension1__trouver_prochains_elements
static void classe_elements_dimension1__trouver_prochains_elements(std::set< MG_SEGMENT * > &__unvisitedSegs, std::vector< MG_SEGMENT * > &__visitedSegs, std::vector< MG_NOEUD * > &__visitedNodes, MG_NOEUD *&__nextNode, MG_SEGMENT *&__nextSeg)
Definition: mg_maillage_outils.cpp:303
MG_MAILLAGE_OUTILS::IdentifyEdge1
static void IdentifyEdge1(std::set< MG_SOMMET * > __vertices, std::set< class MG_FACE * > &__adjacentFaces, std::set< MG_ARETE * > &__edge)
Definition: mg_maillage_outils.cpp:450
MG_MAILLAGE_OUTILS::change_lien_maillage
static void change_lien_maillage(class MG_ELEMENT_TOPOLOGIQUE *__old_topo, MG_ELEMENT_TOPOLOGIQUE *__new_topo, MG_MAILLAGE *__mesh=0)
Definition: mg_maillage_outils.cpp:924
MG_MAILLAGE_OUTILS::_FilterGeometricTolerance5
static void _FilterGeometricTolerance5(const std::vector< MG_NOEUD * > &__nodes, const std::vector< MG_SEGMENT * > &__segs, std::set< MG_ARETE * > &__lst_edge)
Definition: mg_maillage_outils.cpp:825
MG_MAILLAGE_OUTILS::classe_elements_dimension1__trouver_noeud_dimension0
static MG_NOEUD * classe_elements_dimension1__trouver_noeud_dimension0(const std::set< MG_SEGMENT * > &__unvisitedSegs)
Definition: mg_maillage_outils.cpp:382
MG_MAILLAGE_OUTILS
Definition: mg_maillage_outils.h:47
MG_MAILLAGE_OUTILS::~MG_MAILLAGE_OUTILS
~MG_MAILLAGE_OUTILS()
Definition: mg_maillage_outils.cpp:1286
MG_ELEMENT_TOPOLOGIQUE
Definition: mg_element_topologique.h:51
MG_MAILLAGE_OUTILS::calcul_surface_lsttriangle
double calcul_surface_lsttriangle(MG_NOEUD *noeud, MG_TRIANGLE *tr1)
Definition: mg_maillage_outils.cpp:2755
MG_MAILLAGE_OUTILS::TestDistanceEdge
static double TestDistanceEdge(MG_ARETE *candidate_edge, double *xyz_node)
Definition: mg_maillage_outils.cpp:721
MG_MAILLAGE_OUTILS::get_noeud_voisin
void get_noeud_voisin(MG_NOEUD *no, TPL_MAP_ENTITE< MG_NOEUD * > &liste, int niveau)
Definition: mg_maillage_outils.cpp:3129
MG_MAILLAGE_OUTILS::calcul_courbure_face
void calcul_courbure_face(MG_NOEUD *noeud, double &kmin, double &kmax, std::map< std::string, double > &liste_kmin, std::map< std::string, double > &liste_kmax, std::map< std::string, double > &liste_gau, std::map< std::string, double > &liste_courburemax1, std::map< std::string, double > &liste_courburemax2, std::map< std::string, double > &liste_courburemax3, std::map< std::string, double > &liste_courburemax4, std::map< std::string, double > &liste_courburemax5)
Definition: mg_maillage_outils.cpp:2594
MG_MAILLAGE_OUTILS::TestDistanceEdgeNode
static double TestDistanceEdgeNode(MG_ARETE *candidate_edge, MG_NOEUD *test_node)
Definition: mg_maillage_outils.cpp:709
MG_MAILLAGE_OUTILS::calcul_moyenne_face
double calcul_moyenne_face(MG_NOEUD *noeud)
Definition: mg_maillage_outils.cpp:3035
MG_MAILLAGE_OUTILS::IdentifyEdge5
static void IdentifyEdge5(const std::set< MG_SOMMET * > __vertices, const std::set< MG_ARETE * > &__lst_edge, const std::vector< MG_NOEUD * > &__nodes, const std::vector< MG_SEGMENT * > &__segs, MG_ARETE **__edge)
Definition: mg_maillage_outils.cpp:576
OPERATEUR
Definition: ot_mathematique.h:432
MG_MAILLAGE_OUTILS::FindCommonEdgesOfFaces
static void FindCommonEdgesOfFaces(std::set< MG_FACE * > &__faces, std::set< MG_ARETE * > &__commonEdges)
Definition: mg_maillage_outils.cpp:871
MG_MAILLAGE_OUTILS::estdansletetra
int estdansletetra(class MG_TETRA *tet, double x, double y, double z)
Definition: mg_maillage_outils.cpp:43
MG_NOEUD
Definition: mg_noeud.h:41
MG_MAILLAGE_OUTILS::calcul_courbure_sommet_arete_nonvirtuelle
void calcul_courbure_sommet_arete_nonvirtuelle(MG_SOMMET *sommet, MG_NOEUD *noeud, double &kmin1, double &kmax1, double &kmin2, double &kmax2, std::map< std::string, double > &liste_kmin, std::map< std::string, double > &liste_kmax)
MG_MAILLAGE_OUTILS::calcul_courbure_sommet
void calcul_courbure_sommet(MG_NOEUD *noeud, double &kmin1, double &kmax1, double &kmin2, double &kmax2, std::map< std::string, double > &liste_kmin, std::map< std::string, double > &liste_kmax)
Definition: mg_maillage_outils.cpp:1662
MG_MAILLAGE_OUTILS::get_volume
double get_volume(MG_MAILLAGE *mai)
Definition: mg_maillage_outils.cpp:3186
MG_MAILLAGE_OUTILS::calcul_angle_lsttriangle
double calcul_angle_lsttriangle(MG_NOEUD *noeud, MG_TRIANGLE *tr1)
Definition: mg_maillage_outils.cpp:2808
MG_MAILLAGE_OUTILS::IdentifyEdge2
static void IdentifyEdge2(std::set< MG_SOMMET * > __vertices, std::set< MG_FACE * > &__adjacentFaces, std::set< MG_ARETE * > &__lst_edge, std::vector< MG_NOEUD * > &__nodes)
Definition: mg_maillage_outils.cpp:498
MG_MAILLAGE_OUTILS::est_delaunay_generalise
int est_delaunay_generalise(double *xyz, MG_TRIANGLE *tri)
Definition: mg_maillage_outils.cpp:3218
MG_MAILLAGE_OUTILS::calcul_courbure
void calcul_courbure(class MG_GESTIONNAIRE &gest, char *solnom, int nummai, int numgeo, char *outputgestnom)
Definition: mg_maillage_outils.cpp:1296
ot_mathematique.h
MG_MAILLAGE_OUTILS::inserer_noeud_segment
static void inserer_noeud_segment(class MG_MAILLAGE *__mesh, class MG_NOEUD *__node, class MG_SEGMENT *__splitSeg, MG_SEGMENT *__segs[2], bool __deleteOriginalSeg=true)
Definition: mg_maillage_outils.cpp:174
MG_MAILLAGE_OUTILS::projetedansletriangle
void projetedansletriangle(MG_TRIANGLE *tri, double x, double y, double z, double &xx, double &yy, double &zz)
Definition: mg_maillage_outils.cpp:72
MG_MAILLAGE_OUTILS::calcul_courbure_arete_nonvirtuelle
void calcul_courbure_arete_nonvirtuelle(MG_NOEUD *noeud, double &kmin1, double &kmax1, double &kmin2, double &kmax2, std::map< std::string, double > &liste_kmin, std::map< std::string, double > &liste_kmax)
Definition: mg_maillage_outils.cpp:2361
MG_MAILLAGE_OUTILS::compare_etat_tetra
int compare_etat_tetra(int etat, int valeur)
Definition: mg_maillage_outils.cpp:82
mg_maillage.h
MG_MAILLAGE_OUTILS::nummai
int nummai
Definition: mg_maillage_outils.h:170
MG_MAILLAGE_OUTILS::projeteestdansletriangle
int projeteestdansletriangle(MG_TRIANGLE *tri, double x, double y, double z)
Definition: mg_maillage_outils.cpp:62
MG_MAILLAGE_OUTILS::MG_MAILLAGE_OUTILS
MG_MAILLAGE_OUTILS()
Definition: mg_maillage_outils.cpp:1272
MG_MAILLAGE_OUTILS::IdentifyEdge3
static void IdentifyEdge3(std::set< MG_SOMMET * > __vertices, std::set< MG_ARETE * > &__lst_edge, std::vector< MG_NOEUD * > &__nodes, MG_ARETE **__edge)
Definition: mg_maillage_outils.cpp:548
MG_MAILLAGE_OUTILS::calcul_angle_lstsegment
double calcul_angle_lstsegment(MG_NOEUD *noeud, MG_SEGMENT *se1)
Definition: mg_maillage_outils.cpp:2651
MG_MAILLAGE_OUTILS::IdentifyEdge4
static void IdentifyEdge4(std::set< MG_SOMMET * > __vertices, std::set< MG_ARETE * > &__lst_edge, std::vector< MG_NOEUD * > &__nodes, std::vector< MG_SEGMENT * > &__segments, MG_ARETE **__edge)
Definition: mg_maillage_outils.cpp:673
MG_GEOMETRIE
Definition: mg_geometrie.h:84
MG_MAILLAGE
Definition: mg_maillage.h:62
MG_MAILLAGE_OUTILS::Conformity_CloseSurfaceMesh
static void Conformity_CloseSurfaceMesh(MG_MAILLAGE *__tess, double __tolerance)
Definition: mg_maillage_outils.cpp:1212
MG_MAILLAGE_OUTILS::importer
MG_GEOMETRIE * importer(class MG_GESTIONNAIRE &gest, char *path)
MG_ARETE
Definition: mg_arete.h:36
MG_FACE
Definition: mg_face.h:34
MG_SOMMET
Definition: mg_sommet.h:35
MG_MAILLAGE_OUTILS::calcul_courbure_arete
void calcul_courbure_arete(MG_NOEUD *noeud, double &kmin1, double &kmax1, double &kmin2, double &kmax2, std::map< std::string, double > &liste_kmin, std::map< std::string, double > &liste_kmax)
Definition: mg_maillage_outils.cpp:1616
MG_MAILLAGE_OUTILS::compare_etat_triangle
int compare_etat_triangle(int etat, int valeur)
Definition: mg_maillage_outils.cpp:87
MG_MAILLAGE_OUTILS::calcul_courbure_sommet_arete_virtuelle
void calcul_courbure_sommet_arete_virtuelle(MG_SOMMET *sommet, MG_NOEUD *noeud, double &kmin1, double &kmax1, double &kmin2, double &kmax2, std::map< std::string, double > &liste_kmin, std::map< std::string, double > &liste_kmax)
MG_MAILLAGE_OUTILS::estdansletriangle
int estdansletriangle(MG_TRIANGLE *tri, double x, double y, double z)
Definition: mg_maillage_outils.cpp:53