MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mailleur2d_stl_refine_ins_noeud.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 //####// mailleur2d_stl_refine_ins_noeud.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:55 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #ifndef _MAILLEUR2D_STL_REFINE_INS_NOEUD_
23 #define _MAILLEUR2D_STL_REFINE_INS_NOEUD_
24 #include "tpl_octree.h"
25 #include "fct_taille.h"
26 #include "mailleur.h"
27 
28 class MG_MAILLAGE;
29 class MG_GESTIONNAIRE;
30 class MG_NOEUD;
31 class MG_SEGMENT;
32 class MG_TRIANGLE;
34 class OT_VECTEUR_3D;
35 
37 {
38 public:
39 
45 
46 virtual int maille(MG_GROUPE_TOPOLOGIQUE* mggt=NULL) {return OK;};
47 void stl_sizmpref(void);
48 void stl_refining(void);
50 void stlins_points();
51 void stlins_point_withbc();
52 
53 private:
54 
55 typedef std::multimap<double,MG_SEGMENT*,std::greater<double> > SIZMAPSORT;
56 typedef std::multimap<double,MG_TRIANGLE*,std::greater<double> > STLSORTMMAP;
58 void delaunay_stlndinsert(MG_NOEUD* dpins,MG_MAILLAGE* mai,double search_radius,TPL_OCTREE<MG_TRIANGLE*,MG_NOEUD*> &octree);
60 
61 double targetsize_criteria(MG_TRIANGLE* tri);
62 double calcul_distance_metrique(double *xyz1,double* xyz2,int pas,FCT_TAILLE* metrique);
65 OT_VECTEUR_3D projecton_stlorig(double midndx,double midndy,double midndz,double stl_rad_search,TPL_OCTREE<MG_TRIANGLE*,MG_NOEUD*> &stloctree );
66 void stl_optimize_nd(MG_TRIANGLE* tripri, MG_NOEUD* qualnd,double movstp,double stl_rad_search,TPL_OCTREE<MG_TRIANGLE*,MG_NOEUD*> &octree,TPL_OCTREE<MG_TRIANGLE*,MG_NOEUD*> &stloctree);
69 double inshper_point(MG_NOEUD* insphp,MG_TRIANGLE* insphtri);
72 
73 
74 
81 double mshsize;
83 char* fichierout;
87 int nummai;
90 };
91 
92 
93 #endif
94 
MAILLEUR2D_STL_REFINE_INS_NOEUD::projecton_stlorig
OT_VECTEUR_3D projecton_stlorig(double midndx, double midndy, double midndz, double stl_rad_search, TPL_OCTREE< MG_TRIANGLE *, MG_NOEUD * > &stloctree)
Definition: mailleur2d_stl_refine_ins_noeud.cpp:1462
MG_SEGMENT
Definition: mg_segment.h:38
MAILLEUR2D_STL_REFINE_INS_NOEUD::stlins_point_withbc
void stlins_point_withbc()
Definition: mailleur2d_stl_refine_ins_noeud.cpp:2921
MAILLEUR2D_STL_REFINE_INS_NOEUD::stlproxnd_stlndinsert
void stlproxnd_stlndinsert(MG_NOEUD *prxnd, MG_NOEUD *pinrt, MG_MAILLAGE *mai, TPL_OCTREE< MG_TRIANGLE *, MG_NOEUD * > &octree, TPL_MAP_ENTITE< MG_SEGMENT * > &lstedges)
Definition: mailleur2d_stl_refine_ins_noeud.cpp:4098
fct_taille.h
MAILLEUR2D_STL_REFINE_INS_NOEUD::calcul_distance_metrique
double calcul_distance_metrique(double *xyz1, double *xyz2, int pas, FCT_TAILLE *metrique)
Definition: mailleur2d_stl_refine_ins_noeud.cpp:196
MAILLEUR2D_STL_REFINE_INS_NOEUD::metrique
FCT_TAILLE * metrique
Definition: mailleur2d_stl_refine_ins_noeud.h:82
TPL_MAP_ENTITE< MG_SEGMENT * >
MAILLEUR2D_STL_REFINE_INS_NOEUD::STLSORTMMAP
std::multimap< double, MG_TRIANGLE *, std::greater< double > > STLSORTMMAP
Definition: mailleur2d_stl_refine_ins_noeud.h:56
MAILLEUR2D_STL_REFINE_INS_NOEUD::inshper_point
double inshper_point(MG_NOEUD *insphp, MG_TRIANGLE *insphtri)
Definition: mailleur2d_stl_refine_ins_noeud.cpp:1771
MAILLEUR2D_STL_REFINE_INS_NOEUD::qualswap
int qualswap
Definition: mailleur2d_stl_refine_ins_noeud.h:88
MAILLEUR2D_STL_REFINE_INS_NOEUD::delaunay_stlndinsert
void delaunay_stlndinsert(MG_NOEUD *dpins, MG_MAILLAGE *mai, double search_radius, TPL_OCTREE< MG_TRIANGLE *, MG_NOEUD * > &octree)
Definition: mailleur2d_stl_refine_ins_noeud.cpp:3723
MAILLEUR2D_STL_REFINE_INS_NOEUD::lstedges
TPL_MAP_ENTITE< MG_SEGMENT * > lstedges
Definition: mailleur2d_stl_refine_ins_noeud.h:89
MAILLEUR2D_STL_REFINE_INS_NOEUD::bisection_operator_refstl
void bisection_operator_refstl(MG_MAILLAGE *mai, MG_SEGMENT *lastlsseg, STLSORTMMAP &stltrisorting, TPL_MAP_ENTITE< MG_SEGMENT * > &lstedges, TPL_OCTREE< MG_TRIANGLE *, MG_NOEUD * > &octree, TPL_OCTREE< MG_TRIANGLE *, MG_NOEUD * > &stloctree, double geo_angle_threshold, MG_TRIANGLE *lscktriold)
Definition: mailleur2d_stl_refine_ins_noeud.cpp:898
MAILLEUR2D_STL_REFINE_INS_NOEUD::stl_refining
void stl_refining(void)
Definition: mailleur2d_stl_refine_ins_noeud.cpp:711
OK
const int OK
Definition: mg_definition.h:38
MG_TRIANGLE
Definition: mg_triangle.h:38
MAILLEUR2D_STL_REFINE_INS_NOEUD::gest
MG_GESTIONNAIRE * gest
Definition: mailleur2d_stl_refine_ins_noeud.h:78
FCT_TAILLE
Definition: fct_taille.h:30
MG_GESTIONNAIRE
Definition: mg_gestionnaire.h:57
MAILLEUR::pas
int pas
Definition: mailleur.h:56
MG_ELEMENT_TOPOLOGIQUE
Definition: mg_element_topologique.h:51
MAILLEUR2D_STL_REFINE_INS_NOEUD::~MAILLEUR2D_STL_REFINE_INS_NOEUD
virtual ~MAILLEUR2D_STL_REFINE_INS_NOEUD()
Definition: mailleur2d_stl_refine_ins_noeud.cpp:57
mailleur.h
MAILLEUR2D_STL_REFINE_INS_NOEUD::swap_diag_delaunay_sizemapref
void swap_diag_delaunay_sizemapref(MG_NOEUD *insertnod, MG_SEGMENT *segchk, SIZMAPSORT &sizemapsorting, TPL_MAP_ENTITE< MG_SEGMENT * > &lstedges, TPL_OCTREE< MG_TRIANGLE *, MG_NOEUD * > &octree, MG_MAILLAGE *mai, double geo_angle_threshold, TPL_OCTREE< MG_TRIANGLE *, MG_NOEUD * > &stloctree, FCT_TAILLE *metrique)
Definition: mailleur2d_stl_refine_ins_noeud.cpp:442
MAILLEUR2D_STL_REFINE_INS_NOEUD::bisection_operator_sizemapref
void bisection_operator_sizemapref(MG_MAILLAGE *mai, MG_SEGMENT *segbgsz, SIZMAPSORT &sizemapsorting, TPL_MAP_ENTITE< MG_SEGMENT * > &lstedges, TPL_OCTREE< MG_TRIANGLE *, MG_NOEUD * > &octree, TPL_OCTREE< MG_TRIANGLE *, MG_NOEUD * > &stloctree, double geo_angle_threshold, FCT_TAILLE *metrique)
Definition: mailleur2d_stl_refine_ins_noeud.cpp:229
MAILLEUR2D_STL_REFINE_INS_NOEUD::stl_optimize_nd
void stl_optimize_nd(MG_TRIANGLE *tripri, MG_NOEUD *qualnd, double movstp, double stl_rad_search, TPL_OCTREE< MG_TRIANGLE *, MG_NOEUD * > &octree, TPL_OCTREE< MG_TRIANGLE *, MG_NOEUD * > &stloctree)
Definition: mailleur2d_stl_refine_ins_noeud.cpp:1322
MAILLEUR2D_STL_REFINE_INS_NOEUD::stlins_points
void stlins_points()
Definition: mailleur2d_stl_refine_ins_noeud.cpp:2375
MAILLEUR2D_STL_REFINE_INS_NOEUD::fichiercarte
char * fichiercarte
Definition: mailleur2d_stl_refine_ins_noeud.h:85
MAILLEUR2D_STL_REFINE_INS_NOEUD::SIZMAPSORT
std::multimap< double, MG_SEGMENT *, std::greater< double > > SIZMAPSORT
Definition: mailleur2d_stl_refine_ins_noeud.h:55
MAILLEUR2D_STL_REFINE_INS_NOEUD::mai
MG_MAILLAGE * mai
Definition: mailleur2d_stl_refine_ins_noeud.h:76
MG_NOEUD
Definition: mg_noeud.h:41
MAILLEUR2D_STL_REFINE_INS_NOEUD::insertnod
MG_NOEUD * insertnod
Definition: mailleur2d_stl_refine_ins_noeud.h:80
MAILLEUR2D_STL_REFINE_INS_NOEUD::targetsize_criteria
double targetsize_criteria(MG_TRIANGLE *tri)
Definition: mailleur2d_stl_refine_ins_noeud.cpp:1854
MAILLEUR2D_STL_REFINE_INS_NOEUD::discrete_norm
OT_VECTEUR_3D discrete_norm(MG_NOEUD *ndnrm)
Definition: mailleur2d_stl_refine_ins_noeud.cpp:1738
MAILLEUR2D_STL_REFINE_INS_NOEUD
Definition: mailleur2d_stl_refine_ins_noeud.h:36
tpl_octree.h
MAILLEUR2D_STL_REFINE_INS_NOEUD::fichierinspoint
char * fichierinspoint
Definition: mailleur2d_stl_refine_ins_noeud.h:86
OT_VECTEUR_3D
Definition: ot_mathematique.h:94
MAILLEUR2D_STL_REFINE_INS_NOEUD::MAILLEUR2D_STL_REFINE_INS_NOEUD
MAILLEUR2D_STL_REFINE_INS_NOEUD(char *fichierstlmagic, char *fichierout, int nummai)
Definition: mailleur2d_stl_refine_ins_noeud.cpp:41
MAILLEUR2D_STL_REFINE_INS_NOEUD::sizemapsorting
SIZMAPSORT sizemapsorting
Definition: mailleur2d_stl_refine_ins_noeud.h:79
MAILLEUR2D_STL_REFINE_INS_NOEUD::fichierstlmagic
char * fichierstlmagic
Definition: mailleur2d_stl_refine_ins_noeud.h:84
MG_GROUPE_TOPOLOGIQUE
Definition: mg_groupe_topologique.h:31
MAILLEUR2D_STL_REFINE_INS_NOEUD::maille
virtual int maille(MG_GROUPE_TOPOLOGIQUE *mggt=NULL)
Definition: mailleur2d_stl_refine_ins_noeud.h:46
MAILLEUR
Definition: mailleur.h:33
MAILLEUR2D_STL_REFINE_INS_NOEUD::useboundrytreatment
int useboundrytreatment
Definition: mailleur2d_stl_refine_ins_noeud.h:75
MG_MAILLAGE
Definition: mg_maillage.h:62
MAILLEUR2D_STL_REFINE_INS_NOEUD::swap_diag_delaunay_refstl
void swap_diag_delaunay_refstl(MG_NOEUD *insertnod, MG_SEGMENT *dchktri, STLSORTMMAP &stlsortings, TPL_MAP_ENTITE< MG_SEGMENT * > &lstedges, TPL_OCTREE< MG_TRIANGLE *, MG_NOEUD * > &octree, MG_MAILLAGE *mai, double geo_angle_threshold, TPL_OCTREE< MG_TRIANGLE *, MG_NOEUD * > &stloctree)
Definition: mailleur2d_stl_refine_ins_noeud.cpp:1948
MAILLEUR2D_STL_REFINE_INS_NOEUD::fichierout
char * fichierout
Definition: mailleur2d_stl_refine_ins_noeud.h:83
MAILLEUR2D_STL_REFINE_INS_NOEUD::smooth_nd
OT_VECTEUR_3D smooth_nd(MG_NOEUD *nod)
Definition: mailleur2d_stl_refine_ins_noeud.cpp:1437
MAILLEUR2D_STL_REFINE_INS_NOEUD::stl_sizmpref
void stl_sizmpref(void)
Definition: mailleur2d_stl_refine_ins_noeud.cpp:60
TPL_OCTREE< MG_TRIANGLE *, MG_NOEUD * >
MAILLEUR2D_STL_REFINE_INS_NOEUD::nummai
int nummai
Definition: mailleur2d_stl_refine_ins_noeud.h:87
MAILLEUR2D_STL_REFINE_INS_NOEUD::stlmai
MG_MAILLAGE * stlmai
Definition: mailleur2d_stl_refine_ins_noeud.h:77
MAILLEUR2D_STL_REFINE_INS_NOEUD::mshsize
double mshsize
Definition: mailleur2d_stl_refine_ins_noeud.h:81
MAILLEUR2D_STL_REFINE_INS_NOEUD::stl_smoothing
void stl_smoothing(MG_MAILLAGE *mai, TPL_MAP_ENTITE< MG_SEGMENT * > &lstedges, TPL_OCTREE< MG_TRIANGLE *, MG_NOEUD * > &octree, TPL_OCTREE< MG_TRIANGLE *, MG_NOEUD * > &stloctree, double search_radius)
Definition: mailleur2d_stl_refine_ins_noeud.cpp:1862
MAILLEUR2D_STL_REFINE_INS_NOEUD::delswap_stlndinsert
void delswap_stlndinsert(MG_NOEUD *ndins, MG_TRIANGLE *newtri, MG_MAILLAGE *mai, TPL_OCTREE< MG_TRIANGLE *, MG_NOEUD * > &octree, TPL_MAP_ENTITE< MG_SEGMENT * > &lstedges)
Definition: mailleur2d_stl_refine_ins_noeud.cpp:3592