MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
step_surface.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 //####// step_surface.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:55 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 
23 
24 #include "gestionversion.h"
25 
26 #ifdef BREP_STEP
27 
28 #include "step_surface.h"
29 
30 
31 
32 
33 
34 STEP_SURFACE::STEP_SURFACE(unsigned long num,ST_SURFACE *srf):MG_SURFACE(num),surface(srf)
35 {
36 
41 }
42 
44 {
49 }
50 
51 STEP_SURFACE::STEP_SURFACE(STEP_SURFACE& mdd):MG_SURFACE(mdd),surface(mdd.surface)
52 {
53  u_min=mdd.get_umin();
54  u_max=mdd.get_umax();
55  v_min=mdd.get_vmin();
56  v_max=mdd.get_vmax();
57 }
58 
59 
60 
62 {
63 }
64 
65 void STEP_SURFACE::evaluer(double *uv,double *xyz)
66 {
67  surface->evaluer(uv,xyz);
68 }
69 
70 void STEP_SURFACE::deriver(double *uv,double *xyzdu, double *xyzdv)
71 {
72  surface->deriver(uv,xyzdu,xyzdv);
73 }
74 
75 void STEP_SURFACE::deriver_seconde(double *uv,double* xyzduu,double* xyzduv,double* xyzdvv,double *xyz, double *xyzdu, double *xyzdv)
76 {
77 
78  surface->deriver_seconde( uv, xyzduu,xyzduv,xyzdvv,xyz,xyzdu,xyzdv );
79 
80 }
81 
82 void STEP_SURFACE::inverser(double* uv,double *xyz,double precision)
83 {
84  surface->inverser(uv,xyz,precision);
85 }
86 
87 bool STEP_SURFACE::est_sur_surface(double* xyz, double precision)
88 {
89  std::cout <<" *** STEP_SURFACE::est_sur_surface : FONCTION NON IMPLEMENTE ***" << std::endl;
90 return false;
91 
92 }
93 
95 {
96  return surface->est_periodique_u();
97 }
98 
100 {
101  return surface->est_periodique_v();
102 }
103 
105 {
106  if (surface->est_periodique_u()==0) return 0.;
107  return surface->get_periode_u();
108 }
109 
111 {
112  if (surface->est_periodique_v()==0) return 0.;
113  return surface->get_periode_v();
114 }
115 
116 
117 void STEP_SURFACE::enregistrer(std::ostream& o,double version)
118 {
119  o << "%" << get_id() << "=SURFACE_STEP("<< surface->get_id()<< ");" << std::endl;
120 }
121 
122 
123 
125 {
126  return surface->get_type_geometrique(param);
127 }
128 
129 
130 void STEP_SURFACE::get_param_NURBS(int& indx_premier_ptctr,TPL_LISTE_ENTITE<double> &param)
131 {
132  surface->get_param_NURBS(indx_premier_ptctr,param);
133 }
134 
135 void STEP_SURFACE::get_liste_pole(std::vector<double> *liste_pole,double eps)
136 {
137  printf("void STEP_SURFACE::get_liste_pole(std::vector<double> liste_pole) : Fonction non implementee !\n");
138 }
139 
140 
141 
142 
143 
144 
145 #endif
146 
147 
148 
149 
ST_SURFACE::get_periode_u
virtual double get_periode_u(void)=0
STEP_SURFACE::STEP_SURFACE
STEP_SURFACE(unsigned long num, ST_SURFACE *srf)
Definition: step_surface.cpp:34
STEP_SURFACE::get_liste_pole
virtual void get_liste_pole(std::vector< double > *liste_pole, double eps)
Definition: step_surface.cpp:135
STEP_SURFACE::est_periodique_u
virtual int est_periodique_u(void)
Definition: step_surface.cpp:94
gestionversion.h
MG_SURFACE
Definition: mg_surface.h:31
ST_SURFACE::est_periodique_v
virtual int est_periodique_v(void)=0
ST_SURFACE::get_type_geometrique
virtual int get_type_geometrique(TPL_LISTE_ENTITE< double > &param)=0
STEP_SURFACE::deriver_seconde
virtual void deriver_seconde(double *uv, double *xyzduu, double *xyzduv, double *xyzdvv, double *xyz=NULL, double *xyzdu=NULL, double *xyzdv=NULL)
Definition: step_surface.cpp:75
MG_IDENTIFICATEUR::get_id
unsigned long get_id()
Definition: mg_identificateur.cpp:53
ST_SURFACE::evaluer
virtual void evaluer(double *uv, double *xyz)=0
STEP_SURFACE::surface
ST_SURFACE * surface
Definition: step_surface.h:55
STEP_SURFACE::est_sur_surface
virtual bool est_sur_surface(double *xyz, double precision=1e-6)
Definition: step_surface.cpp:87
STEP_SURFACE::est_periodique_v
virtual int est_periodique_v(void)
Definition: step_surface.cpp:99
STEP_SURFACE::get_param_NURBS
virtual void get_param_NURBS(int &indx_premier_ptctr, TPL_LISTE_ENTITE< double > &param)
Definition: step_surface.cpp:130
ST_SURFACE::get_param_NURBS
virtual void get_param_NURBS(int &indx_premier_ptctr, TPL_LISTE_ENTITE< double > &param)=0
STEP_SURFACE::evaluer
virtual void evaluer(double *uv, double *xyz)
Definition: step_surface.cpp:65
ST_SURFACE::get_vmax
virtual double get_vmax(void)=0
STEP_SURFACE::get_type_geometrique
virtual int get_type_geometrique(TPL_LISTE_ENTITE< double > &param)
Definition: step_surface.cpp:124
STEP_SURFACE::~STEP_SURFACE
virtual ~STEP_SURFACE()
Definition: step_surface.cpp:61
MG_SURFACE::get_vmax
virtual double get_vmax()
Definition: mg_surface.cpp:71
ST_SURFACE::deriver_seconde
virtual void deriver_seconde(double *uv, double *xyzduu, double *xyzduv, double *xyzdvv, double *xyz=NULL, double *xyzdu=NULL, double *xyzdv=NULL)=0
MG_SURFACE::u_max
double u_max
Definition: mg_surface.h:64
STEP_SURFACE::get_periode_u
virtual double get_periode_u(void)
Definition: step_surface.cpp:104
MG_SURFACE::v_min
double v_min
Definition: mg_surface.h:65
MG_SURFACE::u_min
double u_min
Definition: mg_surface.h:63
STEP_SURFACE::inverser
virtual void inverser(double *uv, double *xyz, double precision=1e-6)
Definition: step_surface.cpp:82
ST_SURFACE::get_vmin
virtual double get_vmin(void)=0
ST_SURFACE::get_umax
virtual double get_umax(void)=0
ST_SURFACE::get_umin
virtual double get_umin(void)=0
STEP_SURFACE::get_periode_v
virtual double get_periode_v(void)
Definition: step_surface.cpp:110
step_surface.h
ST_SURFACE
Definition: st_surface.h:29
MG_SURFACE::v_max
double v_max
Definition: mg_surface.h:66
MG_SURFACE::get_umax
virtual double get_umax()
Definition: mg_surface.cpp:61
STEP_SURFACE
Definition: step_surface.h:33
ST_SURFACE::inverser
virtual void inverser(double *uv, double *xyz, double precision=1e-6)=0
MG_SURFACE::get_vmin
virtual double get_vmin()
Definition: mg_surface.cpp:66
TPL_LISTE_ENTITE< double >
STEP_SURFACE::deriver
virtual void deriver(double *uv, double *xyzdu, double *xyzdv)
Definition: step_surface.cpp:70
ST_SURFACE::est_periodique_u
virtual int est_periodique_u(void)=0
ST_SURFACE::get_periode_v
virtual double get_periode_v(void)=0
ST_IDENTIFICATEUR::get_id
virtual unsigned long get_id()
Definition: st_ident.cpp:42
MG_SURFACE::get_umin
virtual double get_umin()
Definition: mg_surface.cpp:56
STEP_SURFACE::enregistrer
virtual void enregistrer(std::ostream &o, double version)
Definition: step_surface.cpp:117
ST_SURFACE::deriver
virtual void deriver(double *uv, double *xyzdu, double *xyzdv)=0