MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
CAD4FE_CoVertexCriteria.cpp
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_CoVertexCriteria.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:56 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 
23 #pragma hdrstop
24 
25 #include "gestionversion.h"
26 
27 #include "CAD4FE_MCBody.h"
28 #include "CAD4FE_PolyCurve.h"
29 #include "CAD4FE_MCEdge.h"
30 #include "CAD4FE_MCVertex.h"
31 #include "CAD4FE_mg_utils.h"
32 #include "CAD4FE_Criteria.h"
33 #include "CAD4FE_ColorMap.h"
34 
36 
37 
38 #pragma package(smart_init)
39 
40 using namespace CAD4FE;
41 
42 CovertexCriteria::CovertexCriteria(MG_COSOMMET * __covertex, double __meshSize)
43 : _covertex(__covertex), _meshSize(__meshSize)
44 {
45  double t = _covertex->get_t();
46  double tmin = _covertex->get_arete()->get_tmin();
47  double tmax = _covertex->get_arete()->get_tmax();
48  _offsetT = ( t < tmax ) ? _meshSize : t - _meshSize;
49 
50  _touchingCovertex = NULL;
51  if (_offsetT < tmin)
52  {
54  _offsetT = tmin;
55  }
56  else if (_offsetT > tmax)
57  {
59  _offsetT = tmax;
60  }
61 
62  PolyCurve * polycurve = (PolyCurve *) _covertex->get_arete()->get_courbe();
63  polycurve->evaluer(_offsetT, _offsetPoint, false);
64  _length = polycurve->get_longueur(_offsetT, t);
65 }
66 
68 {
69  return _covertex;
70 }
71 
73 {
74  return (MCEdge*)_covertex->get_arete();
75 }
76 
78 {
79  return (_touchingCovertex->get_sommet() == __mcVertex);
80 }
81 
83 {
84  return _touchingCovertex;
85 }
86 
88 {
89  return _length;
90 }
91 
93 {
94  return _offsetPoint;
95 }
bool IsTouchingVertex(MCVertex *__mcVertex) const
CovertexCriteria(MG_COSOMMET *__covertex, double __meshSize)
MG_COSOMMET * GetCovertex() const
MG_COSOMMET * GetTouchingCovertex() const
void evaluer(double __s, double __X[3])
double get_longueur(double __s_min=-1, double __s_max=-1, double precision=1E-6)
virtual double get_tmax(void)
Definition: mg_arete.cpp:184
virtual double get_tmin(void)
Definition: mg_arete.cpp:179
virtual class MG_COURBE * get_courbe(void)
Definition: mg_arete.cpp:89
virtual class MG_COSOMMET * get_cosommet2(void)
Definition: mg_arete.cpp:85
virtual class MG_COSOMMET * get_cosommet1(void)
Definition: mg_arete.cpp:81
virtual MG_SOMMET * get_sommet(void)
Definition: mg_cosommet.cpp:83
virtual MG_ARETE * get_arete(void)
Definition: mg_cosommet.cpp:88
double get_t()
Definition: mg_cosommet.cpp:99