MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mailleur_delaunay.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 //####// mailleur_delaunay.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:55 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #ifndef _MAILLEUR_DELAUNAY_
23 #define _MAILLEUR_DELAUNAY_
24 
25 
26 
27 
28 #include <stdlib.h>
29 #include <string>
30 #include "mailleur.h"
31 #include "fct_generateur_3d.h"
32 #include "mailleur3d.h"
33 
34 
35 
37 {
38 public :
39  MAILLEUR_DELAUNAY(class MG_MAILLAGE *m,class FCT_TAILLE *cartetmp,double crit_arret,class OT_CPU* comp=NULL);
40  MAILLEUR_DELAUNAY(MG_MAILLAGE* m,BOITE_3D boiteext,class OT_CPU* comp);
41  virtual ~MAILLEUR_DELAUNAY();
42  virtual int maille(class MG_GROUPE_TOPOLOGIQUE* mggt=NULL);
43  virtual void change_niveau_optimisation(int num);
44  virtual void ajouter_noeud(double &x, double &y, double &z,double epsbordure=0.01);
45 
46 
47 
48 protected:
49  virtual int est_de_delaunay(void);
50  virtual void transfert_maillage(std::vector<class DLY_NOEUD*> *tabn,std::vector<class DLY_TRIANGLE*> *tabe2d,std::vector<class DLY_TETRA*> *tabe3d);
51  virtual void insere_noeud_delaunay(DLY_TETRA* tet,double x,double y,double z);
52  virtual class DLY_TETRA* cree_tetra(class DLY_NOEUD* n1,DLY_NOEUD* n2,DLY_NOEUD* n3,DLY_NOEUD* n4);
53  virtual class DLY_TRIANGLE* get_triangle(DLY_NOEUD* n1,DLY_NOEUD* n2,DLY_NOEUD* n3);
54  virtual class DLY_SEGMENT* get_segment(DLY_NOEUD* n1,DLY_NOEUD* n2);
55  virtual void mise_a_jour_voisin(DLY_TETRA* tet);
56  virtual void ajoute_tetra_cavite(DLY_TETRA* tet,std::vector<DLY_TETRA*> &cavite,std::vector<DLY_TRIANGLE*> &basetri);
57  virtual void retire_tetra_cavite(DLY_TETRA* tet,std::vector<DLY_TETRA*> &cavite,std::vector<DLY_TRIANGLE*> &basetri);
58  virtual void initialise_maillage(void);
59  virtual void raffine_maillage(void);
60  virtual DLY_TETRA* get_tetra(double x,double y,double z);
61  virtual DLY_TETRA* get_tetra(DLY_TETRA* tet,double x,double y,double z);
62  virtual int modifie_cavite(std::vector<DLY_TETRA*> &cavite,std::vector<DLY_TRIANGLE*> &basetri,int nbbase,double x, double y,double z);
63  virtual void ajouter_front(double crit,DLY_SEGMENT* seg);
64  virtual void retirer_front(DLY_SEGMENT* seg);
67  std::vector<class DLY_NOEUD*> tabnoeud;
68  std::vector<class DLY_TETRA*> tabtet;
69  std::vector<class DLY_TRIANGLE*> tabtri;
70  std::vector<class DLY_SEGMENT*> tabseg;
71  //std::multimap<double, DLY_TETRA*,std::greater<double> > front;
72  std::multimap<double, DLY_SEGMENT*,std::greater<double> > front_trie;
73  std::map<const unsigned long long, DLY_SEGMENT* > front;
74  double critere_arret;
76  const int DELAUNAYCARTE=1010;
77  const int DELAUNAYLISTENOEUD=1020;
80  std::vector<double> xnoeud;
81  std::vector<double> ynoeud;
82  std::vector<double> znoeud;
83 
84 };
85 
86 
87 
88 
89 
90 
91 #endif
MAILLEUR_DELAUNAY::get_tetra
virtual DLY_TETRA * get_tetra(double x, double y, double z)
Definition: mailleur_delaunay.cpp:567
fct_generateur_3d.h
MAILLEUR_DELAUNAY::retire_tetra_cavite
virtual void retire_tetra_cavite(DLY_TETRA *tet, std::vector< DLY_TETRA * > &cavite, std::vector< DLY_TRIANGLE * > &basetri)
Definition: mailleur_delaunay.cpp:377
MAILLEUR_DELAUNAY::get_segment
virtual class DLY_SEGMENT * get_segment(DLY_NOEUD *n1, DLY_NOEUD *n2)
Definition: mailleur_delaunay.cpp:534
MAILLEUR_DELAUNAY::front
std::map< const unsigned long long, DLY_SEGMENT * > front
Definition: mailleur_delaunay.h:73
DLY_NOEUD
Definition: dly_noeud.h:30
OT_CPU
Definition: ot_cpu.h:31
MAILLEUR_DELAUNAY::DELAUNAYLISTENOEUD
const int DELAUNAYLISTENOEUD
Definition: mailleur_delaunay.h:77
MAILLEUR_DELAUNAY::ajoute_tetra_cavite
virtual void ajoute_tetra_cavite(DLY_TETRA *tet, std::vector< DLY_TETRA * > &cavite, std::vector< DLY_TRIANGLE * > &basetri)
Definition: mailleur_delaunay.cpp:395
MAILLEUR_DELAUNAY::mise_a_jour_voisin
virtual void mise_a_jour_voisin(DLY_TETRA *tet)
Definition: mailleur_delaunay.cpp:462
MAILLEUR_DELAUNAY::initialise_maillage
virtual void initialise_maillage(void)
Definition: mailleur_delaunay.cpp:412
MAILLEUR_DELAUNAY::tabtet
std::vector< class DLY_TETRA * > tabtet
Definition: mailleur_delaunay.h:68
FCT_TAILLE
Definition: fct_taille.h:30
MAILLEUR_DELAUNAY::maille
virtual int maille(class MG_GROUPE_TOPOLOGIQUE *mggt=NULL)
Definition: mailleur_delaunay.cpp:63
MAILLEUR_DELAUNAY::critere_arret
double critere_arret
Definition: mailleur_delaunay.h:74
MAILLEUR_DELAUNAY::~MAILLEUR_DELAUNAY
virtual ~MAILLEUR_DELAUNAY()
Definition: mailleur_delaunay.cpp:53
MAILLEUR_DELAUNAY::DELAUNAYCARTE
const int DELAUNAYCARTE
Definition: mailleur_delaunay.h:76
MAILLEUR_DELAUNAY::change_niveau_optimisation
virtual void change_niveau_optimisation(int num)
Definition: mailleur_delaunay.cpp:87
mailleur.h
MAILLEUR_DELAUNAY::typemailleur
int typemailleur
Definition: mailleur_delaunay.h:78
MAILLEUR_DELAUNAY::MAILLEUR_DELAUNAY
MAILLEUR_DELAUNAY(class MG_MAILLAGE *m, class FCT_TAILLE *cartetmp, double crit_arret, class OT_CPU *comp=NULL)
Definition: mailleur_delaunay.cpp:42
DLY_SEGMENT
Definition: dly_segment.h:30
MAILLEUR_DELAUNAY::front_trie
std::multimap< double, DLY_SEGMENT *, std::greater< double > > front_trie
Definition: mailleur_delaunay.h:72
MAILLEUR_DELAUNAY::insere_noeud_delaunay
virtual void insere_noeud_delaunay(DLY_TETRA *tet, double x, double y, double z)
Definition: mailleur_delaunay.cpp:101
MAILLEUR_DELAUNAY::tabnoeud
std::vector< class DLY_NOEUD * > tabnoeud
Definition: mailleur_delaunay.h:67
MAILLEUR_DELAUNAY::est_de_delaunay
virtual int est_de_delaunay(void)
Definition: mailleur_delaunay.cpp:687
MAILLEUR_DELAUNAY::boiteexterieur
BOITE_3D boiteexterieur
Definition: mailleur_delaunay.h:79
MAILLEUR_DELAUNAY::mai
MG_MAILLAGE * mai
Definition: mailleur_delaunay.h:65
DLY_TRIANGLE
Definition: dly_triangle.h:30
MAILLEUR_DELAUNAY::get_triangle
virtual class DLY_TRIANGLE * get_triangle(DLY_NOEUD *n1, DLY_NOEUD *n2, DLY_NOEUD *n3)
Definition: mailleur_delaunay.cpp:550
MAILLEUR_DELAUNAY::modifie_cavite
virtual int modifie_cavite(std::vector< DLY_TETRA * > &cavite, std::vector< DLY_TRIANGLE * > &basetri, int nbbase, double x, double y, double z)
Definition: mailleur_delaunay.cpp:323
MAILLEUR_DELAUNAY::ajouter_front
virtual void ajouter_front(double crit, DLY_SEGMENT *seg)
Definition: mailleur_delaunay.cpp:299
MAILLEUR_DELAUNAY::transfert_maillage
virtual void transfert_maillage(std::vector< class DLY_NOEUD * > *tabn, std::vector< class DLY_TRIANGLE * > *tabe2d, std::vector< class DLY_TETRA * > *tabe3d)
Definition: mailleur_delaunay.cpp:602
MAILLEUR_DELAUNAY::raffine_maillage
virtual void raffine_maillage(void)
Definition: mailleur_delaunay.cpp:224
MAILLEUR_DELAUNAY::retirer_front
virtual void retirer_front(DLY_SEGMENT *seg)
Definition: mailleur_delaunay.cpp:313
BOITE_3D
Definition: ot_boite_3d.h:27
MAILLEUR_DELAUNAY
Definition: mailleur_delaunay.h:36
mailleur3d.h
MAILLEUR_DELAUNAY::znoeud
std::vector< double > znoeud
Definition: mailleur_delaunay.h:82
MG_GROUPE_TOPOLOGIQUE
Definition: mg_groupe_topologique.h:31
MAILLEUR_DELAUNAY::xnoeud
std::vector< double > xnoeud
Definition: mailleur_delaunay.h:80
MAILLEUR_DELAUNAY::ajouter_noeud
virtual void ajouter_noeud(double &x, double &y, double &z, double epsbordure=0.01)
Definition: mailleur_delaunay.cpp:92
MAILLEUR_DELAUNAY::tabtri
std::vector< class DLY_TRIANGLE * > tabtri
Definition: mailleur_delaunay.h:69
MAILLEUR
Definition: mailleur.h:33
MG_MAILLAGE
Definition: mg_maillage.h:62
MAILLEUR_DELAUNAY::tabseg
std::vector< class DLY_SEGMENT * > tabseg
Definition: mailleur_delaunay.h:70
DLY_TETRA
Definition: dly_tetra.h:30
MAILLEUR_DELAUNAY::ynoeud
std::vector< double > ynoeud
Definition: mailleur_delaunay.h:81
MAILLEUR_DELAUNAY::carte
FCT_TAILLE * carte
Definition: mailleur_delaunay.h:66
MAILLEUR_DELAUNAY::cree_tetra
virtual class DLY_TETRA * cree_tetra(class DLY_NOEUD *n1, DLY_NOEUD *n2, DLY_NOEUD *n3, DLY_NOEUD *n4)
Definition: mailleur_delaunay.cpp:495
MAILLEUR_DELAUNAY::niveau_optimisation
int niveau_optimisation
Definition: mailleur_delaunay.h:75
m
#define m(i, j)