MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
acis_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 //####// acis_courbe.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:54 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 
23 
24 #include "gestionversion.h"
25 
26 #ifdef BREP_SAT
27 
28 #include "acis_courbe.h"
29 
30 
31 
32 
33 
34 ACIS_COURBE::ACIS_COURBE(unsigned long num,SAT_COURBE *crb):MG_COURBE(num),courbe(crb)
35 {
38 }
39 
41 {
44 }
45 
46 ACIS_COURBE::ACIS_COURBE(ACIS_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 ACIS_COURBE::evaluer(double t,double *xyz)
59 {
60  courbe->evaluer(t,xyz);
61 }
62 
63 void ACIS_COURBE::deriver(double t,double *xyz)
64 {
65  courbe->deriver(t,xyz);
66 }
67 
68 void ACIS_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 ACIS_COURBE::inverser(double& t,double *xyz,double precision)
92 {
93  courbe->inverser(t,xyz,precision);
94 }
95 
96 bool ACIS_COURBE::est_sur_courbe(double* xyz, double precision)
97 {
98  std::cout <<" *** ACIS_COURBE::est_sur_courbe : FONCTION NON IMPLEMENTE ***" << std::endl;
99  return false;
100 }
101 
102 
103 
104 double ACIS_COURBE::get_longueur(double t1,double t2,double precis)
105 {
106  return courbe->get_longueur(t1,t2);
107 }
108 
110 {
111  return courbe->est_periodique();
112 }
113 
115 {
116  return courbe->get_periode();
117 }
118 
119 void ACIS_COURBE::enregistrer(std::ostream& o,double version)
120 {
121  o << "%" << get_id() << "=COURBE_SAT("<< courbe->get_id()<< ");" << std::endl;
122 }
123 
124 
125 
127 {
128  return courbe->get_type_geometrique(param);
129 }
130 
131 void ACIS_COURBE::get_param_NURBS(int& indx_premier_ptctr,TPL_LISTE_ENTITE<double> &param)
132 {
133  return courbe->get_param_NURBS(indx_premier_ptctr,param);
134 }
135 
136 
137 #endif
138 
139 
SAT_COURBE::get_longueur
virtual double get_longueur(double t1, double t2, double precis=1e6)=0
gestionversion.h
ACIS_COURBE::~ACIS_COURBE
virtual ~ACIS_COURBE()
Definition: acis_courbe.cpp:54
ACIS_COURBE::get_type_geometrique
virtual int get_type_geometrique(TPL_LISTE_ENTITE< double > &param)
Definition: acis_courbe.cpp:126
ACIS_COURBE::est_periodique
virtual int est_periodique(void)
Definition: acis_courbe.cpp:109
SAT_COURBE::evaluer
virtual void evaluer(double t, double *xyz)=0
MG_IDENTIFICATEUR::get_id
unsigned long get_id()
Definition: mg_identificateur.cpp:53
ACIS_COURBE
Definition: acis_courbe.h:34
SAT_COURBE::get_tmin
virtual double get_tmin()=0
ACIS_COURBE::courbe
SAT_COURBE * courbe
Definition: acis_courbe.h:55
SAT_COURBE::get_tmax
virtual double get_tmax()=0
ACIS_COURBE::est_sur_courbe
virtual bool est_sur_courbe(double *xyz, double precision=1e-6)
Definition: acis_courbe.cpp:96
ACIS_COURBE::deriver
virtual void deriver(double t, double *xyz)
Definition: acis_courbe.cpp:63
ACIS_COURBE::get_longueur
virtual double get_longueur(double t1, double t2, double precis=1e-6)
Definition: acis_courbe.cpp:104
MG_COURBE
Definition: mg_courbe.h:30
MG_COURBE::t_min
double t_min
Definition: mg_courbe.h:61
ACIS_COURBE::enregistrer
virtual void enregistrer(std::ostream &o, double version)
Definition: acis_courbe.cpp:119
MG_COURBE::t_max
double t_max
Definition: mg_courbe.h:62
SAT_COURBE::get_param_NURBS
virtual void get_param_NURBS(int &indx_premier_ptctr, TPL_LISTE_ENTITE< double > &param)=0
SAT_COURBE::inverser
virtual void inverser(double &t, double *xyz, double precision=1e-6)=0
ACIS_COURBE::deriver_seconde
virtual void deriver_seconde(double t, double *ddxyz, double *dxyz=NULL, double *xyz=NULL)
Definition: acis_courbe.cpp:68
ACIS_COURBE::inverser
virtual void inverser(double &t, double *xyz, double precision=1e-6)
Definition: acis_courbe.cpp:91
ACIS_COURBE::get_periode
virtual double get_periode(void)
Definition: acis_courbe.cpp:114
SAT_COURBE::get_periode
virtual double get_periode(void)=0
SAT_COURBE::get_type_geometrique
virtual int get_type_geometrique(TPL_LISTE_ENTITE< double > &param)=0
SAT_COURBE::deriver
virtual void deriver(double t, double *xyz)=0
acis_courbe.h
SAT_IDENTIFICATEUR::get_id
unsigned long get_id()
Definition: sat_identificateur.cpp:54
SAT_COURBE::est_periodique
virtual int est_periodique(void)=0
SAT_COURBE::deriver_seconde
virtual void deriver_seconde(double t, double *ddxyz, double *dxyz=NULL, double *xyz=NULL)=0
TPL_LISTE_ENTITE< double >
SAT_COURBE
Definition: sat_courbe.h:33
ACIS_COURBE::get_param_NURBS
virtual void get_param_NURBS(int &indx_premier_ptctr, TPL_LISTE_ENTITE< double > &param)
Definition: acis_courbe.cpp:131
ACIS_COURBE::evaluer
virtual void evaluer(double t, double *xyz)
Definition: acis_courbe.cpp:58
ACIS_COURBE::ACIS_COURBE
ACIS_COURBE(unsigned long num, SAT_COURBE *crb)
Definition: acis_courbe.cpp:34