MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
step_courbe.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_courbe.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_courbe.h"
29 
30 
31 
32 
33 
34 STEP_COURBE::STEP_COURBE(unsigned long num,ST_COURBE *crb):MG_COURBE(num),courbe(crb)
35 {
38 }
39 
41 {
44 }
45 
46 STEP_COURBE::STEP_COURBE(STEP_COURBE& mdd):MG_COURBE(mdd),courbe(mdd.courbe)
47 {
48  t_min=mdd.t_min;
49  t_max=mdd.t_max;
50 }
51 
52 
53 
55 {
56 }
57 
58 void STEP_COURBE::evaluer(double t,double *xyz)
59 {
60  courbe->evaluer(t,xyz);
61 }
62 
63 void STEP_COURBE::deriver(double t,double *xyz)
64 {
65  courbe->deriver(t,xyz);
66 }
67 
68 void STEP_COURBE::deriver_seconde(double t,double *ddxyz,double *dxyz,double *xyz)
69 {
70  double pt[3]={0,0,0};
71  double dt[3]={0,0,0};
72  double dtt[3]={0,0,0};
73  courbe->deriver_seconde(t,dtt,dt,pt);
74  if (xyz!=NULL)
75  {
76  xyz[0]=pt[0];
77  xyz[1]=pt[1];
78  xyz[2]=pt[2];
79  }
80  if (dxyz!=NULL)
81  {
82  dxyz[0]=dt[0];
83  dxyz[1]=dt[1];
84  dxyz[2]=dt[2];
85  }
86  ddxyz[0]=dtt[0];
87  ddxyz[1]=dtt[1];
88  ddxyz[2]=dtt[2];
89 }
90 
91 void STEP_COURBE::inverser(double& t,double *xyz,double precision)
92 {
93  courbe->inverser(t,xyz,precision);
94 }
95 
96 bool STEP_COURBE::est_sur_courbe(double* xyz, double precision)
97 {
98  std::cout <<" *** STEP_COURBE::est_sur_courbe : FONCTION NON IMPLEMENTE ***" << std::endl;
99 return false;
100 }
101 
102 double STEP_COURBE::get_longueur(double t1,double t2,double precis)
103 {
104  return courbe->get_longueur(t1,t2);
105 }
106 
108 {
109  return courbe->est_periodique();
110 }
111 
113 {
114  return courbe->get_periode();
115 }
116 
117 void STEP_COURBE::enregistrer(std::ostream& o,double version)
118 {
119  o << "%" << get_id() << "=COURBE_STEP("<< courbe->get_id()<< ");" << std::endl;
120 }
121 
122 
124 {
125  return courbe->get_type_geometrique(param);
126 }
127 
128 
129 void STEP_COURBE:: get_param_NURBS(int& indx_premier_ptctr,TPL_LISTE_ENTITE<double> &param)
130 {
131  return courbe->get_param_NURBS(indx_premier_ptctr,param);
132 }
133 
134 
135 #endif
136 
137 
STEP_COURBE::get_param_NURBS
virtual void get_param_NURBS(int &indx_premier_ptctr, TPL_LISTE_ENTITE< double > &param)
Definition: step_courbe.cpp:129
gestionversion.h
STEP_COURBE::~STEP_COURBE
virtual ~STEP_COURBE()
Definition: step_courbe.cpp:54
MG_IDENTIFICATEUR::get_id
unsigned long get_id()
Definition: mg_identificateur.cpp:53
ST_COURBE::get_type_geometrique
virtual int get_type_geometrique(TPL_LISTE_ENTITE< double > &param)=0
STEP_COURBE::get_periode
virtual double get_periode(void)
Definition: step_courbe.cpp:112
STEP_COURBE::get_longueur
virtual double get_longueur(double t1, double t2, double precis=1e-6)
Definition: step_courbe.cpp:102
STEP_COURBE::est_sur_courbe
virtual bool est_sur_courbe(double *xyz, double precision=1e-6)
Definition: step_courbe.cpp:96
MG_COURBE
Definition: mg_courbe.h:30
STEP_COURBE::deriver_seconde
virtual void deriver_seconde(double t, double *ddxyz, double *dxyz=NULL, double *xyz=NULL)
Definition: step_courbe.cpp:68
ST_COURBE::deriver
virtual void deriver(double t, double *xyz)=0
ST_COURBE::get_tmax
virtual double get_tmax()=0
MG_COURBE::t_min
double t_min
Definition: mg_courbe.h:61
ST_COURBE::get_param_NURBS
virtual void get_param_NURBS(int &indx_premier_ptctr, TPL_LISTE_ENTITE< double > &param)=0
MG_COURBE::t_max
double t_max
Definition: mg_courbe.h:62
STEP_COURBE::enregistrer
virtual void enregistrer(std::ostream &o, double version)
Definition: step_courbe.cpp:117
STEP_COURBE::est_periodique
virtual int est_periodique(void)
Definition: step_courbe.cpp:107
ST_COURBE::inverser
virtual void inverser(double &t, double *xyz, double precision=1e-6)=0
ST_COURBE::get_tmin
virtual double get_tmin()=0
STEP_COURBE
Definition: step_courbe.h:32
ST_COURBE::evaluer
virtual void evaluer(double t, double *xyz)=0
STEP_COURBE::inverser
virtual void inverser(double &t, double *xyz, double precision=1e-6)
Definition: step_courbe.cpp:91
STEP_COURBE::courbe
ST_COURBE * courbe
Definition: step_courbe.h:55
ST_COURBE::get_periode
virtual double get_periode(void)=0
TPL_LISTE_ENTITE< double >
step_courbe.h
ST_COURBE::deriver_seconde
virtual void deriver_seconde(double t, double *ddxyz, double *dxyz=NULL, double *xyz=NULL)=0
ST_COURBE::est_periodique
virtual int est_periodique(void)=0
ST_IDENTIFICATEUR::get_id
virtual unsigned long get_id()
Definition: st_ident.cpp:42
ST_COURBE::get_longueur
virtual double get_longueur(double t1, double t2, double precis=1e6)=0
STEP_COURBE::evaluer
virtual void evaluer(double t, double *xyz)
Definition: step_courbe.cpp:58
STEP_COURBE::STEP_COURBE
STEP_COURBE(unsigned long num, ST_COURBE *crb)
Definition: step_courbe.cpp:34
STEP_COURBE::get_type_geometrique
virtual int get_type_geometrique(TPL_LISTE_ENTITE< double > &param)
Definition: step_courbe.cpp:123
STEP_COURBE::deriver
virtual void deriver(double t, double *xyz)
Definition: step_courbe.cpp:63
ST_COURBE
Definition: st_courbe.h:33