MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mg_geometrie_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_geometrie_outils.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:55 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #ifndef mg_geometrie_outilsh
23 #define mg_geometrie_outilsh
24 
25 
26 
27 #include "mg_gestionnaire.h"
28 #include "tpl_map_entite.h"
29 #include "mg_segment_frontiere.h"
30 #include "ot_decalage_parametre.h"
31 #include "ot_mathematique.h"
32 #include "constantegeo.h"
33 #include <math.h>
34 #include "tpl_quadtree.h"
35 #include <map>
36 
38 {
39 public:
42  virtual ~MG_GEOMETRIE_OUTILS();
43  double calcule_distance_contour_face_uv(double *uv,class MG_FACE* face);
44  int calcule_distance_contour_face_xyz(double *xyz,class MG_FACE* face,double *dis,int avecverif=1);
45  void change_epsilon(double eps);
47  double projete(double *xyz,MG_FACE* face,double *uvproj,double *xyzproj,double precision=1e-6);
48  double projete(double *xyz,class MG_SURFACE* surface,double *uvproj,double *xyzproj,double precision=1e-6);
49  int arete_virtuelle(class MG_ARETE* are,MG_FACE** tabface=NULL);
50 
51 private:
52  int angle_contour(double *uv,class MG_SEGMENT_FRONTIERE* seg1,MG_SEGMENT_FRONTIERE* seg2,MG_FACE* face);
53 
54 
55  double distance_pt_segment(double *uv,double *uv1,double *uv2,MG_FACE* face,int *type,double *d1,double *d2);
58  double epsilon;
59  std::map <long,TPL_QUADTREE<MG_SEGMENT_FRONTIERE*,MG_SEGMENT_FRONTIERE*> *,std::less<long> > tabquad;
60  std::map <long,TPL_LISTE_ENTITE<MG_SEGMENT_FRONTIERE*>*,std::less<long> > tabseg;
62 };
63 
64 
65 
66 
67 
68 
69 
70 #endif
MG_GEOMETRIE_OUTILS::lstsegfrontadetruire
TPL_LISTE_ENTITE< MG_SEGMENT_FRONTIERE * > lstsegfrontadetruire
Definition: mg_geometrie_outils.h:57
MG_GEOMETRIE_OUTILS::MG_GEOMETRIE_OUTILS
MG_GEOMETRIE_OUTILS()
Definition: mg_geometrie_outils.cpp:29
MG_GEOMETRIE_OUTILS::ini_methode
void ini_methode(MG_FACE *face, TPL_QUADTREE< MG_SEGMENT_FRONTIERE *, MG_SEGMENT_FRONTIERE * > **quad, TPL_LISTE_ENTITE< MG_SEGMENT_FRONTIERE * > **lstsegfront)
Definition: mg_geometrie_outils.cpp:83
MG_GEOMETRIE_OUTILS::cree_quadtree
void cree_quadtree(MG_FACE *face, TPL_QUADTREE< MG_SEGMENT_FRONTIERE *, MG_SEGMENT_FRONTIERE * > *quad, TPL_LISTE_ENTITE< MG_SEGMENT_FRONTIERE * > *lstsegfront)
Definition: mg_geometrie_outils.cpp:405
MG_SURFACE
Definition: mg_surface.h:31
mg_gestionnaire.h
MG_GEOMETRIE_OUTILS::epsilon
double epsilon
Definition: mg_geometrie_outils.h:58
MG_GEOMETRIE_OUTILS::angle_contour
int angle_contour(double *uv, class MG_SEGMENT_FRONTIERE *seg1, MG_SEGMENT_FRONTIERE *seg2, MG_FACE *face)
Definition: mg_geometrie_outils.cpp:226
MG_GEOMETRIE_OUTILS::projete
double projete(double *xyz, MG_FACE *face, double *uvproj, double *xyzproj, double precision=1e-6)
Definition: mg_geometrie_outils.cpp:329
MG_GEOMETRIE_OUTILS::tabseg
std::map< long, TPL_LISTE_ENTITE< MG_SEGMENT_FRONTIERE * > *, std::less< long > > tabseg
Definition: mg_geometrie_outils.h:60
ot_decalage_parametre.h
mg_segment_frontiere.h
MG_SEGMENT_FRONTIERE
Definition: mg_segment_frontiere.h:34
MG_GEOMETRIE_OUTILS::get_boite_2D
BOITE_2D get_boite_2D(MG_FACE *face)
Definition: mg_geometrie_outils.cpp:101
constantegeo.h
tpl_map_entite.h
MG_GEOMETRIE_OUTILS::calcule_distance_contour_face_uv
double calcule_distance_contour_face_uv(double *uv, class MG_FACE *face)
Definition: mg_geometrie_outils.cpp:110
ot_mathematique.h
BOITE_2D
Definition: ot_boite_2d.h:28
tpl_quadtree.h
MG_GEOMETRIE_OUTILS::tabquad
std::map< long, TPL_QUADTREE< MG_SEGMENT_FRONTIERE *, MG_SEGMENT_FRONTIERE * > *, std::less< long > > tabquad
Definition: mg_geometrie_outils.h:59
MG_GEOMETRIE_OUTILS::calcule_distance_contour_face_xyz
int calcule_distance_contour_face_xyz(double *xyz, class MG_FACE *face, double *dis, int avecverif=1)
Definition: mg_geometrie_outils.cpp:67
TPL_LISTE_ENTITE< MG_SEGMENT_FRONTIERE * >
TPL_QUADTREE
Definition: tpl_quadtree.h:77
MG_ARETE
Definition: mg_arete.h:36
MG_FACE
Definition: mg_face.h:34
MG_GEOMETRIE_OUTILS
Definition: mg_geometrie_outils.h:37
MG_GEOMETRIE_OUTILS::arete_virtuelle
int arete_virtuelle(class MG_ARETE *are, MG_FACE **tabface=NULL)
Definition: mg_geometrie_outils.cpp:585
MG_GEOMETRIE_OUTILS::distance_pt_segment
double distance_pt_segment(double *uv, double *uv1, double *uv2, MG_FACE *face, int *type, double *d1, double *d2)
Definition: mg_geometrie_outils.cpp:296
MG_GEOMETRIE_OUTILS::~MG_GEOMETRIE_OUTILS
virtual ~MG_GEOMETRIE_OUTILS()
Definition: mg_geometrie_outils.cpp:37
MG_GEOMETRIE_OUTILS::change_epsilon
void change_epsilon(double eps)
Definition: mg_geometrie_outils.cpp:62