MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
CAD4FE_LocalEdgeCriteria.h
Aller à la documentation de ce fichier.
1 //####//------------------------------------------------------------
2 //####//------------------------------------------------------------
3 //####// MAGiC
4 //####// Jean Christophe Cuilliere et Vincent FRANCOIS
5 //####// Departement de Genie Mecanique - UQTR
6 //####//------------------------------------------------------------
7 //####// MAGIC est un projet de recherche de l equipe ERICCA
8 //####// du departement de genie mecanique de l Universite du Quebec a Trois Rivieres
9 //####// http://www.uqtr.ca/ericca
10 //####// http://www.uqtr.ca/
11 //####//------------------------------------------------------------
12 //####//------------------------------------------------------------
13 //####//
14 //####// CAD4FE_LocalEdgeCriteria.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:56 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 
23 #ifndef CAD4FE_LocalEdgeCriteriaH
24 #define CAD4FE_LocalEdgeCriteriaH
25 
26 #include "CAD4FE_MCT_Platform.h"
27 
28 class MG_SEGMENT;
29 class MG_MAILLAGE;
30 
31 namespace CAD4FE {
32 
33 class MCEdge;
34 class MCAA;
35 class Intersection_Plane_MG_MAILLAGE;
36 
38 public:
39  LocalEdgeCriteria(MG_SEGMENT *, MCAA * __mcaa, MG_MAILLAGE * __mesh, MG_SEGMENT * __startSeg);
41  std::string InventorText();
43  MCEdge * GetEdge();
44  double GetFaceWidth();
45  double GetEpsilon();
46  double GetDeviationAngle();
47  double DeletionScore() const;
48  double DeletionScore_DeviationAngle() const;
49  double DeletionScore_FaceWidth() const;
50  // double DeletionScore_OppositeEdge() const;
51  // void Set_DeletionScore_OppositeEdge(double);
52  void GetPolylineVertex(int i, float * __vec3f) const;
53  unsigned GetPolylineVerticesCount() const;
54  bool IsTouchingEdge(MCEdge * __mcEdge);
56  bool IsTouchingSegment(MG_SEGMENT * __segment);
57  bool IsStartSegment(MG_SEGMENT * __segment);
58  MCEdge * GetTouchingEdge(int);
59  double GetLengthToTouchingEdge(int);
60  double GetMeshSize();
61  double * GetTouchingEdgePoint(int __index);
63  double * GetClosestTouchingEdgePoint();
64  void Update(bool __reconstructNormalOffset = true);
65  void CheckMCTess();
66 
71  int time;
72 
73 private:
75  double _P[3], _N[3];
77  double _meshSize;
84  double _segment[3][3];
85  double *_point;
87  std::set <MCEdge *> _setTouchingEdge;
88  // double _deletionScoreOppositeEdge;
89 };
90 
91 }
92 
93 #endif
94 
void Update(bool __reconstructNormalOffset=true)
std::set< MCEdge * > _setTouchingEdge
void GetPolylineVertex(int i, float *__vec3f) const
bool IsTouchingEdge(MCEdge *__mcEdge)
LocalEdgeCriteria(MG_SEGMENT *, MCAA *__mcaa, MG_MAILLAGE *__mesh, MG_SEGMENT *__startSeg)
bool IsStartSegment(MG_SEGMENT *__segment)
bool IsTouchingSegment(MG_SEGMENT *__segment)
double * GetTouchingEdgePoint(int __index)
Intersection_Plane_MG_MAILLAGE * _normalOffset