ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mailleur/src/mailleur_stl.h
Revision: 1111
Committed: Tue Apr 4 13:48:28 2023 UTC (2 years, 2 months ago) by francois
Content type: text/plain
Original Path: magic/lib/mailleur_auto/src/mailleur_stl.h
File size: 2873 byte(s)
Log Message:
mailleur STL avec surface ouverte + liste de noeud contraint 

File Contents

# User Rev Content
1 francois 1082 #ifndef _MAILLEUR_STL_
2     #define _MAILLEUR_STL_
3    
4     #include "mailleur.h"
5     #include <vector>
6     #include <math.h>
7     #include <map>
8     #include "tpl_liste_entite.h"
9     #include "ot_mathematique.h"
10     #include <tpl_octree.h>
11    
12    
13     class MG_MAILLAGE;
14     class FCT_TAILLE;
15     class MG_GESTIONNAIRE;
16     class MG_SEGMENT;
17     class MG_TRIANGLE;
18     class MG_NOEUD;
19    
20     class MAILLEUR_STL:public MAILLEUR
21     {
22     public:
23 francois 1111 MAILLEUR_STL(MG_MAILLAGE* maiori,MG_GESTIONNAIRE* gt,FCT_TAILLE* carte,double limite=1.2,double angle1=M_PI/7.,double angle2=M_PI/9,char * nomfichierpoint=NULL);
24 francois 1082 MAILLEUR_STL(MAILLEUR_STL &mdd);
25     virtual ~MAILLEUR_STL();
26    
27     virtual int maille(class MG_GROUPE_TOPOLOGIQUE* mggt=NULL);
28 francois 1111 virtual void change_fichierpoint(char *nom);
29 francois 1082 virtual void change_angle_arete(double val);
30     virtual double get_angle_arete(void);
31     virtual void change_pas(int val);
32     virtual void change_nx(int val);
33     virtual void change_ny(int val);
34     virtual void change_nz(int val);
35     virtual void change_nxnynz(int nvx,int nvy,int nvz);
36     virtual void change_qualmaxaoptimiser(double val);
37     virtual void change_nbpasseoptimisation(int nb);
38    
39     protected:
40 francois 1111 virtual bool fichierpointexiste(void);
41 francois 1082 virtual void adapte_carte(void);
42     virtual void determine_arete(void);
43     virtual void prepare_projection(void);
44     virtual void cree_maillage(void);
45     virtual int optimise_maillage(void);
46 francois 1083 virtual void valide_maillage(void);
47     virtual void verification_conformite(void);
48 francois 1082 virtual int bouge_point(MG_NOEUD* mg_noeud,double& crit,double& x,double& y, double& z);
49    
50 francois 1111 virtual void calcul_nouveau_noeud(MG_SEGMENT* seg,double& x, double& y, double& z,OT_VECTEUR_3D &normale);
51     virtual void calcul_etoile(MG_SEGMENT* seg,MG_TRIANGLE *tri,double &x,double &y,double &z,OT_VECTEUR_3D &normale,TPL_LISTE_ENTITE<MG_TRIANGLE*> &listuniquetri,std::map<unsigned long,std::pair<MG_SEGMENT*,int> > &lstsegment);
52     virtual void maillage_et_segadiscretiser_update(MG_SEGMENT* segbase,double x,double y,double z,OT_VECTEUR_3D normale,TPL_LISTE_ENTITE<MG_TRIANGLE*> &listuniquetri,std::map<unsigned long,std::pair<MG_SEGMENT*,int> > &lstsegment,TPL_LISTE_ENTITE<MG_TRIANGLE *>& listnouvtri,bool contraint);
53 francois 1082 virtual bool respecte_delaunay(double x,double y,double z,MG_TRIANGLE* tri);
54     virtual MG_TRIANGLE* get_voisin(MG_TRIANGLE* tri,int cote);
55     virtual void ajouter_seg_a_discretiser(MG_SEGMENT* seg);
56     virtual void supprimer_seg_a_discretiser(MG_SEGMENT* seg);
57     virtual void projete_point_sur_triangulation(double x,double y,double z,double &nvx,double &nvy,double &nvz);
58    
59    
60     MG_MAILLAGE *maiin,*mai;
61     FCT_TAILLE *metrique,*metrique2;
62     MG_GESTIONNAIRE *gest,*gesttmp;
63     double angle_arete;
64     double angle_limite;
65     double limite_discretisation;
66     int pas;
67     std::multimap<double,MG_SEGMENT*,std::greater<double > > lstsegadiscretiser;
68     TPL_OCTREE<MG_TRIANGLE*,MG_NOEUD*> octree;
69     int nx,ny,nz;
70     double qualmaxaopt;
71     int nbcoucheopt;
72 francois 1111 char fichierpoint[5000];
73 francois 1082
74     };
75    
76    
77    
78    
79    
80    
81    
82    
83    
84    
85    
86    
87    
88    
89    
90    
91     #endif