ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/CAD4FE/src/CAD4FE_LocalEdgeCriteria.h
Revision: 253
Committed: Tue Jul 13 19:40:46 2010 UTC (14 years, 10 months ago) by francois
Content type: text/plain
File size: 2367 byte(s)
Log Message:
changement de hiearchie et utilisation de ccmake + mise a jour

File Contents

# User Rev Content
1 foucault 27 //---------------------------------------------------------------------------
2    
3     #ifndef CAD4FE_LocalEdgeCriteriaH
4     #define CAD4FE_LocalEdgeCriteriaH
5    
6     #include "CAD4FE_MCT_Platform.h"
7    
8     //---------------------------------------------------------------------------
9     class MG_SEGMENT;
10     class MG_MAILLAGE;
11    
12     namespace CAD4FE {
13    
14     class MCEdge;
15     class MCAA;
16     class Intersection_Plane_MG_MAILLAGE;
17    
18     class CAD4FE_MCT_ITEM LocalEdgeCriteria {
19     public:
20     LocalEdgeCriteria(MG_SEGMENT *, MCAA * __mcaa, MG_MAILLAGE * __mesh, MG_SEGMENT * __startSeg);
21     ~LocalEdgeCriteria();
22     std::string InventorText();
23     MG_SEGMENT * GetSegment();
24     MCEdge * GetEdge();
25     double GetFaceWidth();
26     double GetEpsilon();
27     double GetDeviationAngle();
28     double DeletionScore() const;
29     double DeletionScore_DeviationAngle() const;
30     double DeletionScore_FaceWidth() const;
31     // double DeletionScore_OppositeEdge() const;
32     // void Set_DeletionScore_OppositeEdge(double);
33     void GetPolylineVertex(int i, float * __vec3f) const;
34     unsigned GetPolylineVerticesCount() const;
35     bool IsTouchingEdge(MCEdge * __mcEdge);
36     void InitSetOfTouchingEdges();
37     bool IsTouchingSegment(MG_SEGMENT * __segment);
38     bool IsStartSegment(MG_SEGMENT * __segment);
39     MCEdge * GetTouchingEdge(int);
40     double GetLengthToTouchingEdge(int);
41     double GetMeshSize();
42     double * GetTouchingEdgePoint(int __index);
43     MCEdge * GetClosestTouchingEdge();
44     double * GetClosestTouchingEdgePoint();
45     void Update(bool __reconstructNormalOffset = true);
46     void CheckMCTess();
47    
48     /**
49     * time : represent at which step this criterion
50     * was last updated
51     */
52     int time;
53    
54     private:
55     MCEdge * _mcEdge;
56     double _P[3], _N[3];
57     MG_SEGMENT * _seg, *_startSeg;
58     double _meshSize;
59     Intersection_Plane_MG_MAILLAGE * _normalOffset;
60     MG_MAILLAGE * _mesh;
61     MCEdge * _oppositeEdges[2];
62     MCAA * _mcaa;
63     int _oppositeEdgesPolylineIndices[2];
64     double _lengthToOppositeEdges[2];
65     double _segment[3][3];
66     double *_point;
67     double _faceWidth, _epsilon, _deviationAngle;
68     std::set <MCEdge *> _setTouchingEdge;
69     // double _deletionScoreOppositeEdge;
70     };
71    
72     }
73    
74     #endif
75