ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mailleur/src/mailleur_bloc.h
Revision: 146
Committed: Thu Aug 21 22:05:37 2008 UTC (16 years, 8 months ago) by francois
Content type: text/plain
Original Path: magic/lib/mailleur/mailleur/src/mailleur_bloc.h
File size: 3009 byte(s)
Log Message:
Acceleration de la destruction dans mailleur 3D. Generalisation de la fonction est dans une face dans mailleur. Changement arete partielle dans vectorisation

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 francois 124 #include "tpl_quadtree.h"
22 francois 120 #include <map>
23    
24    
25     class DLLPORTMAIL MAILLEUR_BLOC:public MAILLEUR
26     {
27     public:
28     MAILLEUR_BLOC(class MG_GESTIONNAIRE* gentier,MG_GESTIONNAIRE* gbloc,int numgeoentier,int numgeobloc,class FCT_TAILLE* fct_taille);
29     ~MAILLEUR_BLOC();
30    
31 francois 123 void maille(int etape);
32 francois 120 void maille(void);
33    
34     private:
35     class MG_SOMMET* verif_noeud_sur_sommet(double *xyz, class MG_GEOMETRIE *geo);
36     class MG_ARETE* verif_noeud_sur_arete(double *xyz, MG_GEOMETRIE *geo,int *num, double *t);
37 francois 124
38     void cree_octree(class MG_MAILLAGE* mai,TPL_OCTREE<class MG_NOEUD*,MG_NOEUD*> **octree);
39     void cree_quadtree(class MG_MAILLAGE* mai,TPL_QUADTREE<class MG_SEGMENT_FRONTIERE*,MG_NOEUD*> **quad,TPL_MAP_ENTITE<MG_SEGMENT_FRONTIERE*> *lstsegfront);
40     void cree_octree(TPL_OCTREE<MG_NOEUD*,MG_NOEUD*> *octree1,TPL_OCTREE<MG_NOEUD*,MG_NOEUD*> **octree2);
41    
42     double calcule_distance_contour_face(double *uv,class MG_FACE* face,int num,TPL_QUADTREE<MG_SEGMENT_FRONTIERE*,MG_NOEUD*> **quad);
43 francois 123 double distance_pt_segment(double *uv,MG_NOEUD* noeud1,MG_NOEUD* noeud2,MG_FACE* face);
44 francois 120 double distance_pt_segment(double *xyz,double *xyz1,double *xyz2);
45 francois 124 double distance_pt_segment(double *uv,double *uv1,double *uv2,MG_FACE* face);
46 francois 120 class MG_NOEUD* chercher(double *xyz,TPL_OCTREE<MG_NOEUD*,MG_NOEUD*> &octree);
47 francois 124 MG_FACE* seg_sur_face(class MG_SEGMENT* seg,MG_GEOMETRIE* geo,int *num,TPL_QUADTREE<MG_SEGMENT_FRONTIERE*,MG_NOEUD*> **quad);
48     MG_FACE* tri_sur_face(class MG_TRIANGLE* tri,MG_GEOMETRIE* geo,int *num,TPL_QUADTREE<MG_SEGMENT_FRONTIERE*,MG_NOEUD*> **quad);
49 francois 120
50    
51     class MG_GESTIONNAIRE* gestentier,*gestbloc;
52     class MG_GEOMETRIE* geoentier,*geobloc;
53     class FCT_TAILLE* carte;
54     class MG_MAILLAGE* maientier,*maibloc,*maitemp;
55     class TPL_OCTREE<class MG_NOEUD*,class MG_NOEUD*> *octreebloc;
56     class TPL_OCTREE<class MG_NOEUD*,class MG_NOEUD*> *octreeentier;
57 francois 124 class TPL_QUADTREE<class MG_SEGMENT_FRONTIERE*,MG_NOEUD*> **quadentier;
58     class TPL_QUADTREE<class MG_SEGMENT_FRONTIERE*,MG_NOEUD*> **quadbloc;
59 francois 146 TPL_MAP_ENTITE<class MG_SEGMENT_FRONTIERE*> lstsegfrontentier;
60 francois 124 TPL_MAP_ENTITE<MG_SEGMENT_FRONTIERE*> lstsegfrontbloc;
61 francois 120 };
62    
63    
64     class MG_NOEUD_ADDITIONNEL_ARETE
65 francois 146 {
66     public:
67     class MG_NOEUD* noeud;
68     double t;
69     };
70 francois 120
71 francois 146
72    
73     //Cr�er une structure de donn�es pour les noeuds sur les ar�te
74     typedef std::map<double,MG_NOEUD_ADDITIONNEL_ARETE,std::less<double> > LISTE_NOEUD_ADD_ARETE;
75     typedef std::map<double,MG_NOEUD_ADDITIONNEL_ARETE,std::less<double> >::iterator IT_LISTE_NOEUD_ADD_ARETE;
76    
77    
78 francois 120 #endif