#include <parametric_surface.hpp>
Definition at line 29 of file parametric_surface.hpp.
Reimplemented in bspline_surface, and rational_surface< C, N, V >.
Definition at line 35 of file parametric_surface.hpp.
typedef point_set<C>::PointIterator PointIterator |
Reimplemented in rational_surface< C, N, V >.
Definition at line 36 of file parametric_surface.hpp.
typedef C Scalar |
Reimplemented in rational_surface< C, N, V >.
Definition at line 33 of file parametric_surface.hpp.
parametric_surface | ( | void | ) | [inline] |
Definition at line 39 of file parametric_surface.hpp.
Definition at line 73 of file parametric_surface.hpp.
References parametric_surface< C, V >::eval().
Implemented in rational_surface< C, N, V >.
Referenced by use< ssi_def, C >::eval(), parametric_surface< C, V >::eval(), and parametric_surface< C, V >::sample().
Definition at line 103 of file parametric_surface.hpp.
References assert, parametric_surface< C, V >::eval(), parametric_surface< C, V >::umax(), parametric_surface< C, V >::umin(), parametric_surface< C, V >::vmax(), and parametric_surface< C, V >::vmin().
00103 { 00104 assert(m>1 && n>1); 00105 Scalar 00106 hu=(this->umax() - this->umin())/(m-1), 00107 hv=(this->vmax() - this->vmin())/(n-1); 00108 00109 Scalar * u0 =u, su=umin(), * v0=v, sv=vmin(); 00110 for (unsigned i=0; i<m;i++){ *u=su; su+=hu; u++; } 00111 for (unsigned j=0; j<n;j++){ *v=sv; sv+=hv; v++; } 00112 00113 u=u0; 00114 for (unsigned i=0; i<m;i++,u++) { 00115 v=v0; 00116 for (unsigned j=0; j<n;j++,v++) { 00117 this->eval(r[0],r[1],r[2],*u,*v); 00118 // *r=x;std::cout<<*r<<" "; 00119 r+=3; 00120 // *r=y;std::cout<<*r<<" "; 00121 // r++; 00122 // *r=z;std::cout<<*r<<" "; 00123 // r++; 00124 // std::cout<<std::endl; 00125 } 00126 } 00127 }
void sample | ( | PointIterator | lp, | |
unsigned | m, | |||
unsigned | n | |||
) | const [inline, virtual] |
Definition at line 86 of file parametric_surface.hpp.
References assert, parametric_surface< C, V >::eval(), parametric_surface< C, V >::umax(), parametric_surface< C, V >::umin(), parametric_surface< C, V >::vmax(), and parametric_surface< C, V >::vmin().
00086 { 00087 assert(m>1 && n>1); 00088 Scalar 00089 hu=(this->umax() - this->umin())/(m-1), u=this->umin(), 00090 hv=(this->vmax() - this->vmin())/(n-1), v; 00091 Point pp; 00092 for (unsigned i=0; i<m;i++) { 00093 v=vmin(); 00094 for (unsigned j=0; j<n;j++,p++) { 00095 this->eval(p->x(),p->y(),p->z(),u,v); 00096 v+=hv; 00097 } 00098 u+=hu; 00099 } 00100 }
void sample | ( | PointIterator | lp, | |
const Scalar * | u, | |||
unsigned | m, | |||
const Scalar * | v, | |||
unsigned | n | |||
) | const [inline, virtual] |
Definition at line 130 of file parametric_surface.hpp.
References assert, and parametric_surface< C, V >::eval().
Referenced by use< ssi_def, C >::sample().
virtual double umax | ( | void | ) | const [pure virtual] |
Implemented in rational_surface< C, N, V >.
Referenced by parametric_surface< C, V >::sample().
virtual double umin | ( | void | ) | const [pure virtual] |
Implemented in rational_surface< C, N, V >.
Referenced by parametric_surface< C, V >::sample().
virtual double vmax | ( | void | ) | const [pure virtual] |
Implemented in rational_surface< C, N, V >.
Referenced by parametric_surface< C, V >::sample().
virtual double vmin | ( | void | ) | const [pure virtual] |
Implemented in rational_surface< C, N, V >.
Referenced by parametric_surface< C, V >::sample().