ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mailleur/src/mailleur_bloc.h
Revision: 120
Committed: Tue Jul 8 19:31:35 2008 UTC (16 years, 10 months ago) by francois
Content type: text/plain
Original Path: magic/lib/mailleur/mailleur/src/mailleur_bloc.h
File size: 2538 byte(s)
Log Message:
ajout du mailleur par bloc pour l optimisation

File Contents

# User Rev Content
1 francois 120 //---------------------------------------------------------------------------
2    
3     #ifndef mailleur_blocH
4     #define mailleur_blocH
5     //---------------------------------------------------------------------------
6    
7    
8    
9     #ifdef WINDOWS_VERSION
10     #ifdef BUILT_DLL_MAILLEUR
11     #define DLLPORTMAIL __declspec(dllexport)
12     #else
13     #define DLLPORTMAIL __declspec(dllimport)
14     #endif
15     #else
16     #define DLLPORTMAIL
17     #endif
18    
19     #include "mailleur.h"
20     #include "tpl_octree.h"
21     #include <map>
22    
23    
24     class DLLPORTMAIL MAILLEUR_BLOC:public MAILLEUR
25     {
26     public:
27     MAILLEUR_BLOC(class MG_GESTIONNAIRE* gentier,MG_GESTIONNAIRE* gbloc,int numgeoentier,int numgeobloc,class FCT_TAILLE* fct_taille);
28     ~MAILLEUR_BLOC();
29    
30     void maille(void);
31    
32     private:
33     class MG_SOMMET* verif_noeud_sur_sommet(double *xyz, class MG_GEOMETRIE *geo);
34     class MG_ARETE* verif_noeud_sur_arete(double *xyz, MG_GEOMETRIE *geo,int *num, double *t);
35     class MG_FACE* verif_noeud_sur_face(double *xyz, MG_GEOMETRIE *geo,int *num,TPL_OCTREE<class MG_SEGMENT*,class MG_NOEUD*> *octree);
36     void cree_octree(class MG_MAILLAGE* mai,class TPL_OCTREE<class MG_SEGMENT*,class MG_NOEUD*> **octreeseg,TPL_OCTREE<MG_NOEUD*,MG_NOEUD*> **octree);
37     double calcule_distance_contour_face(double *xyz,double *uv,MG_FACE* face,TPL_OCTREE<MG_SEGMENT*,MG_NOEUD*> *octree);
38     double distance_pt_segment(double *xyz,double *xyz1,double *xyz2);
39     class MG_NOEUD* chercher(double *xyz,TPL_OCTREE<MG_NOEUD*,MG_NOEUD*> &octree);
40     MG_FACE* seg_sur_face(MG_SEGMENT* seg,MG_GEOMETRIE* geo,int *num,TPL_OCTREE<MG_SEGMENT*,MG_NOEUD*> *octree);
41     MG_FACE* tri_sur_face(class MG_TRIANGLE* tri,MG_GEOMETRIE* geo,int *num,TPL_OCTREE<MG_SEGMENT*,MG_NOEUD*> *octree);
42    
43    
44     class MG_GESTIONNAIRE* gestentier,*gestbloc;
45     class MG_GEOMETRIE* geoentier,*geobloc;
46     class FCT_TAILLE* carte;
47     class MG_MAILLAGE* maientier,*maibloc,*maitemp;
48     class TPL_OCTREE<class MG_SEGMENT*,class MG_NOEUD*> *octreeblocseg;
49     class TPL_OCTREE<class MG_SEGMENT*,class MG_NOEUD*> *octreeentierseg;
50     class TPL_OCTREE<class MG_NOEUD*,class MG_NOEUD*> *octreebloc;
51     class TPL_OCTREE<class MG_NOEUD*,class MG_NOEUD*> *octreeentier;
52    
53     };
54    
55    
56     class MG_NOEUD_ADDITIONNEL_ARETE
57     {
58     public:
59     class MG_NOEUD* noeud;
60     double t;
61     };
62    
63    
64    
65     //Créer une structure de données pour les noeuds sur les arête
66     typedef std::map<double,MG_NOEUD_ADDITIONNEL_ARETE,std::less<double> > LISTE_NOEUD_ADD_ARETE;
67     typedef std::map<double,MG_NOEUD_ADDITIONNEL_ARETE,std::less<double> >::iterator IT_LISTE_NOEUD_ADD_ARETE;
68    
69    
70     #endif