ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/CAD4FE/src/CAD4FE_MakeLoops.h
Revision: 27
Committed: Thu Jul 5 15:26:40 2007 UTC (17 years, 10 months ago) by foucault
Content type: text/plain
Original Path: magic/lib/CAD4FE/CAD4FE/src/CAD4FE_MakeLoops.h
File size: 1801 byte(s)
Log Message:

File Contents

# User Rev Content
1 foucault 27 //---------------------------------------------------------------------------
2    
3     #ifndef CAD4FE_MakeLoopsH
4     #define CAD4FE_MakeLoopsH
5     //---------------------------------------------------------------------------
6    
7     #include <map>
8     #include <string>
9    
10     class CoEdge;
11     class MG_FACE;
12     class MG_COARETE;
13     class MG_ARETE;
14    
15     namespace CAD4FE {
16    
17     class MakeLoops {
18     public:
19     class CoEdge {
20     public:
21     CoEdge();
22     CoEdge(MG_FACE * __face, MG_ARETE * __e, int __sense);
23     ~CoEdge();
24     int Sense();
25     MG_ARETE * Edge();
26     MG_FACE * Face();
27     bool IsInverse(CoEdge & __mcEdgeSense);
28     MG_SOMMET * StartVertex();
29     MG_SOMMET * EndVertex();
30     MG_COSOMMET * StartCoVertex();
31     MG_COSOMMET * EndCoVertex();
32     bool IsAfter(CoEdge & __mcEdgeSense);
33     bool IsBefore(CoEdge & __mcEdgeSense);
34     OT_VECTEUR_3D StartDir();
35     OT_VECTEUR_3D EndDir();
36     OT_VECTEUR_3D StartMeshDir(MG_MAILLAGE * __mesh);
37     OT_VECTEUR_3D EndMeshDir(MG_MAILLAGE * __mesh);
38     OT_VECTEUR_3D MeshDir(MG_MAILLAGE * __mesh, MG_SOMMET * __v, int __meshSense);
39     double MeshAngleInPlane(CoEdge & __coEdge, OT_VECTEUR_3D & __normal, MG_MAILLAGE * __mesh);
40     double AngleInPlane(CoEdge & __coEdge, OT_VECTEUR_3D & __normal);
41     double AngleInPlane(OT_VECTEUR_3D & dir1_3D, OT_VECTEUR_3D & dir2_3D, OT_VECTEUR_3D & __normal);
42    
43     MG_ARETE * e;
44     MG_FACE * f;
45     CoEdge * prev;
46     CoEdge * next;
47     int sense;
48     };
49    
50     public:
51     MakeLoops(std::vector <MG_FACE*> __faceList, std::vector <MG_ARETE*> __edgeList, std::vector <int> __senseList);
52     ~MakeLoops();
53     void GetFaceLoops(MG_FACE* __face, std::vector < std::vector < CoEdge *> > & __loops );
54     std::string PrintFaceNormalAtVertices(MG_FACE * __face);
55     protected:
56     std::map < MG_FACE * , std::set < CoEdge * > > _mapFaceCoEdge;
57     };
58    
59     }
60    
61    
62     #endif
63