MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
occ_surface.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 //####// occ_surface.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:55 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 
23 #ifdef BREP_OCC
24 #ifndef OCC_SurfaceH
25 #define OCC_SurfaceH
26 
27 
28 
29 
30 #include "mg_surface.h"
31 #include "Geom_Surface.hxx"
32 #include "occ_fonction.h"
33 #include "occ_fonction_v2015.h"
34 #include "occ_fonction_v2017.h"
35 #include "TopoDS_Face.hxx"
36 #include <map>
37 
38 class OCC_SURFACE:public MG_SURFACE
39 {
40 public:
41  OCC_SURFACE(unsigned long num, TopoDS_Face srf, OCC_FONCTION* fonc);
42  OCC_SURFACE(TopoDS_Face srf, OCC_FONCTION* fonc);
44  virtual ~OCC_SURFACE();
45  virtual void evaluer(double *uv,double *xyz);
46  virtual void deriver(double *uv,double *xyzdu, double *xyzdv);
47  virtual void deriver_seconde(double *uv,double* xyzduu,double* xyzduv,double* xyzdvv,double *xyz, double *xyzdu, double *xyzdv);
48  virtual void inverser(double *uv,double *xyz,double precision=1e-6);
49  virtual bool est_sur_surface(double *xyz,double precision=1e-6);
50  virtual int est_periodique_u(void);
51  virtual int est_periodique_v(void);
52  virtual double get_periode_u(void);
53  virtual double get_periode_v(void);
54  virtual void enregistrer(std::ostream& o,double version);
56  virtual void get_param_NURBS(int& indx_premier_ptctr,TPL_LISTE_ENTITE<double> &param);
57  virtual void get_liste_pole(std::vector<double> *liste_pole,double eps);
58 
59 
60 
61 
62  virtual void get_triangulation(class MG_MAILLAGE* mai,class MG_FACE* face,std::multimap<double,class MG_NOEUD*,std::less<double> >& tabnoeudfusm,double eps,int mode);
63  virtual void get_echantillonnage(int numechantillon,std::vector<double> &tab,double eps,double angle_dev);
64 
65 
66 protected:
67  virtual void inverser2(double *uv,double *xyz,double precision=1e-6);
68  virtual void analyse_bspline(void);
69  TopoDS_Face face;
71  Handle(Geom_Surface) surface;
74  double periode_u;
75  double periode_v;
76 
77 };
78 #endif
79 #endif
virtual void get_echantillonnage(int numechantillon, std::vector< double > &tab, double eps, double angle_dev)
virtual void deriver_seconde(double *uv, double *xyzduu, double *xyzduv, double *xyzdvv, double *xyz, double *xyzdu, double *xyzdv)
virtual void enregistrer(std::ostream &o, double version)
virtual void inverser(double *uv, double *xyz, double precision=1e-6)
virtual double get_periode_v(void)
virtual void evaluer(double *uv, double *xyz)
virtual double get_periode_u(void)
virtual void analyse_bspline(void)
OCC_FONCTION * fonction1
Definition: occ_surface.h:70
virtual int est_periodique_v(void)
double periode_v
Definition: occ_surface.h:75
virtual void get_liste_pole(std::vector< double > *liste_pole, double eps)
virtual void get_triangulation(class MG_MAILLAGE *mai, class MG_FACE *face, std::multimap< double, class MG_NOEUD *, std::less< double > > &tabnoeudfusm, double eps, int mode)
int estperiodev
Definition: occ_surface.h:73
virtual void deriver(double *uv, double *xyzdu, double *xyzdv)
virtual bool est_sur_surface(double *xyz, double precision=1e-6)
virtual void inverser2(double *uv, double *xyz, double precision=1e-6)
TopoDS_Face face
Definition: occ_surface.h:69
int estperiodeu
Definition: occ_surface.h:72
virtual int get_type_geometrique(TPL_LISTE_ENTITE< double > &param)
OCC_SURFACE(unsigned long num, TopoDS_Face srf, OCC_FONCTION *fonc)
Definition: occ_surface.cpp:74
double periode_u
Definition: occ_surface.h:74
virtual ~OCC_SURFACE()
virtual int est_periodique_u(void)
virtual void get_param_NURBS(int &indx_premier_ptctr, TPL_LISTE_ENTITE< double > &param)
Handle(Geom_Surface) surface