ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/CAD4FE/src/CAD4FE_LocalEdgeCriteria.h
Revision: 1158
Committed: Thu Jun 13 22:18:49 2024 UTC (11 months ago) by francois
Content type: text/plain
File size: 3283 byte(s)
Log Message:
compatibilité Ubuntu 22.04
Suppression des refeences à Windows
Ajout d'une banière

File Contents

# User Rev Content
1 francois 1158 //####//------------------------------------------------------------
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 foucault 27
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    
37 francois 1158 class LocalEdgeCriteria {
38 foucault 27 public:
39     LocalEdgeCriteria(MG_SEGMENT *, MCAA * __mcaa, MG_MAILLAGE * __mesh, MG_SEGMENT * __startSeg);
40     ~LocalEdgeCriteria();
41     std::string InventorText();
42     MG_SEGMENT * GetSegment();
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);
55     void InitSetOfTouchingEdges();
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);
62     MCEdge * GetClosestTouchingEdge();
63     double * GetClosestTouchingEdgePoint();
64     void Update(bool __reconstructNormalOffset = true);
65     void CheckMCTess();
66    
67     /**
68     * time : represent at which step this criterion
69     * was last updated
70     */
71     int time;
72    
73     private:
74     MCEdge * _mcEdge;
75     double _P[3], _N[3];
76     MG_SEGMENT * _seg, *_startSeg;
77     double _meshSize;
78     Intersection_Plane_MG_MAILLAGE * _normalOffset;
79     MG_MAILLAGE * _mesh;
80     MCEdge * _oppositeEdges[2];
81     MCAA * _mcaa;
82     int _oppositeEdgesPolylineIndices[2];
83     double _lengthToOppositeEdges[2];
84     double _segment[3][3];
85     double *_point;
86     double _faceWidth, _epsilon, _deviationAngle;
87     std::set <MCEdge *> _setTouchingEdge;
88     // double _deletionScoreOppositeEdge;
89     };
90    
91     }
92    
93     #endif
94