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 
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)
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)
void delaunay_stlndinsert(MG_NOEUD *dpins, MG_MAILLAGE *mai, double search_radius, TPL_OCTREE< MG_TRIANGLE *, MG_NOEUD * > &octree)
std::multimap< double, MG_TRIANGLE *, std::greater< double > > STLSORTMMAP
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)
double inshper_point(MG_NOEUD *insphp, MG_TRIANGLE *insphtri)
MAILLEUR2D_STL_REFINE_INS_NOEUD(char *fichierstlmagic, char *fichierout, int nummai)
std::multimap< double, MG_SEGMENT *, std::greater< double > > SIZMAPSORT
OT_VECTEUR_3D projecton_stlorig(double midndx, double midndy, double midndz, double stl_rad_search, TPL_OCTREE< MG_TRIANGLE *, MG_NOEUD * > &stloctree)
double calcul_distance_metrique(double *xyz1, double *xyz2, int pas, FCT_TAILLE *metrique)
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)
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)
virtual int maille(MG_GROUPE_TOPOLOGIQUE *mggt=NULL)
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)
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)
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)
int pas
Definition: mailleur.h:56
const int OK
Definition: mg_definition.h:38