MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
CAD4FE_PolySurface.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_PolySurface.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:55 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 
23 #ifndef CAD4FE_PolySurfaceH
24 #define CAD4FE_PolySurfaceH
25 
26 #include "mg_geometrie.h"
27 #include "mg_face.h"
28 
29 #include <map>
30 #include <ostream>
31 #include <string>
32 #include <set>
33 
34 
35 
36 
37 class OT_VECTEUR_3D;
38 
39 namespace CAD4FE {
40 
41 class MCVertex;
42 
43 class PolySurface : public MG_SURFACE
44 {
45 public:
48  void InsertSurface(MG_FACE *);
49  void Merge( PolySurface &);
50  bool Contains(MG_FACE * __refFace);
51  bool Contains(MG_ARETE * __refEdge);
52  MG_FACE * GetRefFace(unsigned int __index);
53  std::set<MG_FACE*> & GetRefFaces();
54  unsigned int GetRefFaceCount() ;
55 
56  virtual void evaluer(double *uv,double *xyz);
57  virtual void deriver(double *uv,double *xyzdu, double *xyzdv);
58  virtual void deriver_seconde(double *uv,double* xyzduu,double* xyzduv,double* xyzdvv,double *xyz = NULL , double *xyzdu = NULL , double *xyzdv =NULL);
59  virtual void inverser(double *uv,double *xyz,double precision=1e-6);
60  virtual bool est_sur_surface(double *xyz,double precision=1e-6);
61  virtual int est_periodique_u(void);
62  virtual int est_periodique_v(void);
63  virtual double get_periode_u(void);
64  virtual double get_periode_v(void);
65  virtual void enregistrer(std::ostream& o,double version);
67  void calcul_normale_unitaire(MG_SOMMET *v, double __n[3], int * __nbRefFace);
68  void calcul_normale_unitaire(MCVertex * __mcVertex, double __n[3], int *__nbRefFace);
69  void calcul_normale_unitaire(const std::map<MG_FACE *, OT_VECTEUR_3D > & __tabRefFaceUV, double __n[3], int *__nbRefFace);
70  virtual void get_param_NURBS(int& indx_premier_ptctr,TPL_LISTE_ENTITE<double> &param);
71  virtual void get_liste_pole(std::vector<double> *liste_pole,double eps);
72  virtual void get_echantillonnage(int numechantillonpartri, std::vector<double> &tab, double eps,double angle_dev) {};
73 
74 private:
75  // set of adjacent faces that define this PolySurface
76  std::set<MG_FACE*> _lst_ref_faces;
77 };
78 }
79 
80 #endif
CAD4FE::PolySurface::enregistrer
virtual void enregistrer(std::ostream &o, double version)
Definition: CAD4FE_PolySurface.cpp:133
mg_geometrie.h
CAD4FE::PolySurface::GetRefFaces
std::set< MG_FACE * > & GetRefFaces()
Definition: CAD4FE_PolySurface.cpp:179
MG_SURFACE
Definition: mg_surface.h:31
CAD4FE::PolySurface::est_sur_surface
virtual bool est_sur_surface(double *xyz, double precision=1e-6)
Definition: CAD4FE_PolySurface.cpp:97
CAD4FE::PolySurface::get_periode_v
virtual double get_periode_v(void)
Definition: CAD4FE_PolySurface.cpp:125
CAD4FE::PolySurface::get_echantillonnage
virtual void get_echantillonnage(int numechantillonpartri, std::vector< double > &tab, double eps, double angle_dev)
Definition: CAD4FE_PolySurface.h:72
CAD4FE::PolySurface::Contains
bool Contains(MG_FACE *__refFace)
Definition: CAD4FE_PolySurface.cpp:167
CAD4FE::PolySurface
Definition: CAD4FE_PolySurface.h:43
CAD4FE::PolySurface::deriver_seconde
virtual void deriver_seconde(double *uv, double *xyzduu, double *xyzduv, double *xyzdvv, double *xyz=NULL, double *xyzdu=NULL, double *xyzdv=NULL)
Definition: CAD4FE_PolySurface.cpp:86
CAD4FE::PolySurface::get_param_NURBS
virtual void get_param_NURBS(int &indx_premier_ptctr, TPL_LISTE_ENTITE< double > &param)
Definition: CAD4FE_PolySurface.cpp:295
CAD4FE::PolySurface::GetRefFace
MG_FACE * GetRefFace(unsigned int __index)
Definition: CAD4FE_PolySurface.cpp:172
CAD4FE::PolySurface::Merge
void Merge(PolySurface &)
Definition: CAD4FE_PolySurface.cpp:62
CAD4FE::PolySurface::_lst_ref_faces
std::set< MG_FACE * > _lst_ref_faces
Definition: CAD4FE_PolySurface.h:72
CAD4FE::PolySurface::calcul_normale_unitaire
void calcul_normale_unitaire(MG_SOMMET *v, double __n[3], int *__nbRefFace)
Definition: CAD4FE_PolySurface.cpp:188
CAD4FE::PolySurface::inverser
virtual void inverser(double *uv, double *xyz, double precision=1e-6)
Definition: CAD4FE_PolySurface.cpp:92
CAD4FE::PolySurface::PolySurface
PolySurface()
Definition: CAD4FE_PolySurface.h:46
CAD4FE::PolySurface::InsertSurface
void InsertSurface(MG_FACE *)
Definition: CAD4FE_PolySurface.cpp:56
CAD4FE::MCVertex
Definition: CAD4FE_MCVertex.h:35
CAD4FE::PolySurface::evaluer
virtual void evaluer(double *uv, double *xyz)
Definition: CAD4FE_PolySurface.cpp:74
OT_VECTEUR_3D
Definition: ot_mathematique.h:94
CAD4FE::PolySurface::est_periodique_u
virtual int est_periodique_u(void)
Definition: CAD4FE_PolySurface.cpp:104
CAD4FE::PolySurface::get_periode_u
virtual double get_periode_u(void)
Definition: CAD4FE_PolySurface.cpp:118
CAD4FE
Definition: CAD4FE_ClosestPoint_Segment_MG_ARETE.h:34
TPL_LISTE_ENTITE< double >
CAD4FE::PolySurface::get_type_geometrique
virtual int get_type_geometrique(TPL_LISTE_ENTITE< double > &param)
Definition: CAD4FE_PolySurface.cpp:150
CAD4FE::PolySurface::GetRefFaceCount
unsigned int GetRefFaceCount()
Definition: CAD4FE_PolySurface.cpp:184
MG_ARETE
Definition: mg_arete.h:36
MG_FACE
Definition: mg_face.h:34
MG_SOMMET
Definition: mg_sommet.h:35
CAD4FE::PolySurface::est_periodique_v
virtual int est_periodique_v(void)
Definition: CAD4FE_PolySurface.cpp:111
mg_face.h
CAD4FE::PolySurface::deriver
virtual void deriver(double *uv, double *xyzdu, double *xyzdv)
Definition: CAD4FE_PolySurface.cpp:80
CAD4FE::PolySurface::get_liste_pole
virtual void get_liste_pole(std::vector< double > *liste_pole, double eps)
Definition: CAD4FE_PolySurface.cpp:300