 |
MAGiC
V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
|
Aller à la documentation de ce fichier.
22 #ifndef mg_maillage_outilsh
23 #define mg_maillage_outilsh
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);
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 );
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);
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);
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);
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);
189 static void _FilterGeometricTolerance5(
const std::vector<MG_NOEUD*> & __nodes,
const std::vector<MG_SEGMENT*> & __segs, std::set<MG_ARETE*> & __lst_edge);
double calcul_gaussienne_face(MG_NOEUD *noeud)
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)
static void _FilterGeometricTolerance(const std::vector< MG_NOEUD * > &__nodes, std::set< MG_ARETE * > &__lst_edge)
void calcul_courbure_discrete(class MG_GESTIONNAIRE &gest, char *nom, int nummai, char *outputgestnom, int opensurafece)
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)
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])
static void _FilterSegmentsAndEdgeAdjacentToSameFaces(std::vector< MG_SEGMENT * > &__segments, std::set< MG_ARETE * > &__lst_edge)
double calcul_surface_triangle_face(MG_NOEUD *noeud)
static void classe_elements_dimension1(std::set< MG_SEGMENT * > &__unvisitedSegs, std::vector< MG_SEGMENT * > &__visitedSegs, std::vector< MG_NOEUD * > &__visitedNodes)
double get_angle(class MG_TRIANGLE *ele1, class MG_TRIANGLE *ele2)
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)
static void IdentifyEdge1(std::set< MG_SOMMET * > __vertices, std::set< class MG_FACE * > &__adjacentFaces, std::set< MG_ARETE * > &__edge)
static void change_lien_maillage(class MG_ELEMENT_TOPOLOGIQUE *__old_topo, MG_ELEMENT_TOPOLOGIQUE *__new_topo, MG_MAILLAGE *__mesh=0)
static void _FilterGeometricTolerance5(const std::vector< MG_NOEUD * > &__nodes, const std::vector< MG_SEGMENT * > &__segs, std::set< MG_ARETE * > &__lst_edge)
static MG_NOEUD * classe_elements_dimension1__trouver_noeud_dimension0(const std::set< MG_SEGMENT * > &__unvisitedSegs)
double calcul_surface_lsttriangle(MG_NOEUD *noeud, MG_TRIANGLE *tr1)
static double TestDistanceEdge(MG_ARETE *candidate_edge, double *xyz_node)
void get_noeud_voisin(MG_NOEUD *no, TPL_MAP_ENTITE< MG_NOEUD * > &liste, int niveau)
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)
static double TestDistanceEdgeNode(MG_ARETE *candidate_edge, MG_NOEUD *test_node)
double calcul_moyenne_face(MG_NOEUD *noeud)
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)
static void FindCommonEdgesOfFaces(std::set< MG_FACE * > &__faces, std::set< MG_ARETE * > &__commonEdges)
int estdansletetra(class MG_TETRA *tet, double x, double y, double z)
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)
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)
double get_volume(MG_MAILLAGE *mai)
double calcul_angle_lsttriangle(MG_NOEUD *noeud, MG_TRIANGLE *tr1)
static void IdentifyEdge2(std::set< MG_SOMMET * > __vertices, std::set< MG_FACE * > &__adjacentFaces, std::set< MG_ARETE * > &__lst_edge, std::vector< MG_NOEUD * > &__nodes)
int est_delaunay_generalise(double *xyz, MG_TRIANGLE *tri)
void calcul_courbure(class MG_GESTIONNAIRE &gest, char *solnom, int nummai, int numgeo, char *outputgestnom)
static void inserer_noeud_segment(class MG_MAILLAGE *__mesh, class MG_NOEUD *__node, class MG_SEGMENT *__splitSeg, MG_SEGMENT *__segs[2], bool __deleteOriginalSeg=true)
void projetedansletriangle(MG_TRIANGLE *tri, double x, double y, double z, double &xx, double &yy, double &zz)
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)
int compare_etat_tetra(int etat, int valeur)
int projeteestdansletriangle(MG_TRIANGLE *tri, double x, double y, double z)
static void IdentifyEdge3(std::set< MG_SOMMET * > __vertices, std::set< MG_ARETE * > &__lst_edge, std::vector< MG_NOEUD * > &__nodes, MG_ARETE **__edge)
double calcul_angle_lstsegment(MG_NOEUD *noeud, MG_SEGMENT *se1)
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)
static void Conformity_CloseSurfaceMesh(MG_MAILLAGE *__tess, double __tolerance)
MG_GEOMETRIE * importer(class MG_GESTIONNAIRE &gest, char *path)
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)
int compare_etat_triangle(int etat, int valeur)
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)
int estdansletriangle(MG_TRIANGLE *tri, double x, double y, double z)