shape_doc 0.1
|
#include <surface_parametric.hpp>
Definition at line 39 of file surface_parametric.hpp.
Reimplemented in surface_bspline, and surface_rational< K, N >.
Definition at line 43 of file surface_parametric.hpp.
typedef point_set<V>::PointIterator PointIterator |
Definition at line 44 of file surface_parametric.hpp.
surface_parametric | ( | void | ) | [inline] |
Definition at line 47 of file surface_parametric.hpp.
{} ;
virtual Point* eval | ( | double | u, |
double | v | ||
) | const [pure virtual] |
Referenced by surface_parametric< K >::operator()().
virtual void eval | ( | Point & | p, |
double | u, | ||
double | v | ||
) | const [pure virtual] |
void eval | ( | double * | lp, |
const double * | u, | ||
int | n | ||
) | const [virtual] |
Definition at line 79 of file surface_parametric.hpp.
References mmx::eval().
virtual void get_range | ( | double & | umin, |
double & | umax, | ||
double & | vmin, | ||
double & | vmax | ||
) | const [pure virtual] |
Implemented in surface_rational< K, N >.
virtual Point* operator() | ( | double | u, |
double | v | ||
) | const [inline, virtual] |
Definition at line 54 of file surface_parametric.hpp.
{ return this->eval(u,v); }
void sample | ( | PointIterator | lp, |
unsigned | m, | ||
unsigned | n | ||
) | const [virtual] |
Definition at line 92 of file surface_parametric.hpp.
References mmx::eval(), mmx::shape_ssi::umax(), mmx::shape_ssi::umin(), mmx::shape_ssi::vmax(), and mmx::shape_ssi::vmin().
void sample | ( | PointIterator | lp, |
const double * | u, | ||
unsigned | m, | ||
const double * | v, | ||
unsigned | n | ||
) | const [virtual] |
Definition at line 132 of file surface_parametric.hpp.
References mmx::eval().
void sample | ( | double * | lp, |
unsigned | m, | ||
unsigned | n, | ||
double * | u, | ||
double * | v | ||
) | const [virtual] |
Definition at line 109 of file surface_parametric.hpp.
References mmx::eval(), mmx::shape_ssi::umax(), mmx::shape_ssi::umin(), mmx::shape_ssi::vmax(), and mmx::shape_ssi::vmin().
{ assert(m>1 && n>1); Scalar hu=(this->umax() - this->umin())/(m-1), hv=(this->vmax() - this->vmin())/(n-1); Scalar * u0 =u, su=umin(), * v0=v, sv=vmin(); for (unsigned i=0; i<m;i++){ *u=su; su+=hu; u++; } for (unsigned j=0; j<n;j++){ *v=sv; sv+=hv; v++; } Point p; u=u0; for (unsigned i=0; i<m;i++,u++) { v=v0; for (unsigned j=0; j<n;j++,v++) { this->eval(p,*u,*v); *r=p.x();r++; *r=p.y();r++; *r=p.z();r++; } } }
virtual double umax | ( | void | ) | const [pure virtual] |
Implemented in surface_rational< K, N >.
virtual double umin | ( | void | ) | const [pure virtual] |
Implemented in surface_rational< K, N >.
virtual double vmax | ( | void | ) | const [pure virtual] |
Implemented in surface_rational< K, N >.
virtual double vmin | ( | void | ) | const [pure virtual] |
Implemented in surface_rational< K, N >.