34 PIR_COURBE::PIR_COURBE(
unsigned long num,PG_COURBE *crb):
MG_COURBE(num),courbe(crb)
36 pos=
new PG_POSITION1D_COURBE((*courbe));
37 t_min=pos->get_tmin();
38 t_max=pos->get_tmax();
41 PIR_COURBE::PIR_COURBE(PG_COURBE *crb):
MG_COURBE(),courbe(crb)
43 pos=
new PG_POSITION1D_COURBE((*courbe));
44 t_min=pos->get_tmin();
45 t_max=pos->get_tmax();
48 PIR_COURBE::PIR_COURBE(PIR_COURBE& mdd):
MG_COURBE(mdd),courbe(mdd.courbe)
50 pos=
new PG_POSITION1D_COURBE((*courbe));
51 t_min=pos->get_tmin();
52 t_max=pos->get_tmax();
57 PIR_COURBE::~PIR_COURBE()
62 void PIR_COURBE::evaluer(
double t,
double *xyz)
64 courbe->evaluer(&t,xyz);
67 void PIR_COURBE::deriver(
double t,
double *xyz)
69 courbe->deriver(&t,xyz);
72 void PIR_COURBE::deriver_seconde(
double t,
double *ddxyz,
double *dxyz,
double *xyz)
76 double dtt[3]={0,0,0};
77 double* d2C[]={pt, dt, dtt};
78 courbe->deriver_seconde(&t,d2C);
96 void PIR_COURBE::inverser(
double& t,
double *xyz,
double precision)
98 if (precision>0.0001*pos->get_longueur()) pos->localiser(xyz,&t,0.0001*pos->get_longueur());
99 else pos->localiser(xyz,&t,precision);
105 double PIR_COURBE::get_longueur(
double t1,
double t2,
double precis)
108 if ( (t1==t_min) && (t2==t_max) )
return pos->get_longueur();
109 return pos->calculer_longueur_segment(t1,t2,pos->evaluer_integrant_longueur(t1),pos->evaluer_integrant_longueur(t2),precis,niveau);
112 int PIR_COURBE::est_periodique(
void)
114 return courbe->estfermee();
117 double PIR_COURBE::get_periode(
void)
119 return courbe->get_periode();
122 void PIR_COURBE::enregistrer(std::ostream& o,
double version)
124 o <<
"%" << get_id() <<
"=COURBE_PIRATE("<< courbe->get_id()<<
");" << std::endl;