|
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 >.