ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mailleur/src/mailleur_stl.h
Revision: 1082
Committed: Thu Dec 23 21:17:26 2021 UTC (3 years, 4 months ago) by francois
Content type: text/plain
Original Path: magic/lib/mailleur_auto/src/mailleur_stl.h
File size: 2490 byte(s)
Log Message:
correction de bug dans le generateur de particule RSA et DCR
+ ajout mailleur_stl (a ameliorer)

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     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.);
24     MAILLEUR_STL(MAILLEUR_STL &mdd);
25     virtual ~MAILLEUR_STL();
26    
27     virtual int maille(class MG_GROUPE_TOPOLOGIQUE* mggt=NULL);
28     virtual void change_angle_arete(double val);
29     virtual double get_angle_arete(void);
30     virtual void change_pas(int val);
31     virtual void change_nx(int val);
32     virtual void change_ny(int val);
33     virtual void change_nz(int val);
34     virtual void change_nxnynz(int nvx,int nvy,int nvz);
35     virtual void change_qualmaxaoptimiser(double val);
36     virtual void change_nbpasseoptimisation(int nb);
37    
38     protected:
39     virtual void adapte_carte(void);
40     virtual void determine_arete(void);
41     virtual void prepare_projection(void);
42     virtual void cree_maillage(void);
43     virtual int optimise_maillage(void);
44     virtual int bouge_point(MG_NOEUD* mg_noeud,double& crit,double& x,double& y, double& z);
45    
46     virtual void calcul_nouveau_noeud_et_etoile(MG_SEGMENT* seg,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);
47     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);
48     virtual bool respecte_delaunay(double x,double y,double z,MG_TRIANGLE* tri);
49     virtual MG_TRIANGLE* get_voisin(MG_TRIANGLE* tri,int cote);
50     virtual void ajouter_seg_a_discretiser(MG_SEGMENT* seg);
51     virtual void supprimer_seg_a_discretiser(MG_SEGMENT* seg);
52     virtual void projete_point_sur_triangulation(double x,double y,double z,double &nvx,double &nvy,double &nvz);
53    
54    
55     MG_MAILLAGE *maiin,*mai;
56     FCT_TAILLE *metrique,*metrique2;
57     MG_GESTIONNAIRE *gest,*gesttmp;
58     double angle_arete;
59     double angle_limite;
60     double limite_discretisation;
61     int pas;
62     std::multimap<double,MG_SEGMENT*,std::greater<double > > lstsegadiscretiser;
63     TPL_OCTREE<MG_TRIANGLE*,MG_NOEUD*> octree;
64     int nx,ny,nz;
65     double qualmaxaopt;
66     int nbcoucheopt;
67    
68     };
69    
70    
71    
72    
73    
74    
75    
76    
77    
78    
79    
80    
81    
82    
83    
84    
85     #endif