#include <ProjectCurve.h>
Inheritance diagram for Go::ProjectCurve:
Public Member Functions | |
ProjectCurve (boost::shared_ptr< Go::SplineCurve > &space_crv, boost::shared_ptr< Go::SplineSurface > &surf, boost::shared_ptr< Go::Point > &start_par_pt, boost::shared_ptr< Go::Point > &end_par_pt, double epsgeo, const RectDomain *domain_of_interest=NULL) | |
Constructor, taking one 3D curve and one 3D surface. | |
virtual | ~ProjectCurve () |
virtual destructor ensures safe inheritance | |
virtual Go::Point | eval (double t) const |
Evaluate a point on the curve for a given parameter. | |
virtual void | eval (double t, int n, Go::Point der[]) const |
Evaluate a point and a certain number of derivatives on the curve for a given parameter. | |
virtual double | start () const |
Get the start parameter of the curve. | |
virtual double | end () const |
Get the end parameter of the curve. | |
virtual int | dim () const |
Inherited from EvalCurve::dim(). | |
virtual bool | approximationOK (double par, Go::Point approxpos, double tol1, double tol2) const |
Inherited from EvalCurve::approximationOK(). |
Definition at line 53 of file ProjectCurve.h.
Go::ProjectCurve::ProjectCurve | ( | boost::shared_ptr< Go::SplineCurve > & | space_crv, | |
boost::shared_ptr< Go::SplineSurface > & | surf, | |||
boost::shared_ptr< Go::Point > & | start_par_pt, | |||
boost::shared_ptr< Go::Point > & | end_par_pt, | |||
double | epsgeo, | |||
const RectDomain * | domain_of_interest = NULL | |||
) |
Constructor, taking one 3D curve and one 3D surface.
The user may additionally provide explicit values for the start and end points of the curve (supposedly on the surface) as well as specifying the parameter domain of interest of the surface.
space_crv | the 3D space curve that will be projected onto a surface | |
surf | the 3D surface that we will project the space curve onto | |
start_par_pt | explicit position of start point (can be a zero pointer, in which case the start point will be evaluated by projection, just like any other point). | |
end_par_pt | explicit position of end point (can be a zero pointer, in which case the start point will be evaluated by projection, just like any other point). | |
epsgeo | geometric tolerance to use when projecting curve onto surface, and when using the approximationOK() function. | |
domain_of_interest | if the user wants to limit the surface to a certain parametric domain, it can be specified here. |
virtual Go::Point Go::ProjectCurve::eval | ( | double | t | ) | const [virtual] |
Evaluate a point on the curve for a given parameter.
t | the parameter for which to evaluate the curve. |
Implements Go::EvalCurve.
virtual void Go::ProjectCurve::eval | ( | double | t, | |
int | n, | |||
Go::Point | der[] | |||
) | const [virtual] |
Evaluate a point and a certain number of derivatives on the curve for a given parameter.
t | the parameter for which to evaluate the curve. | |
n | the number of derivatives (0 or more) |
der | pointer to an array of Points where the result will be written. The position will be stored first, then the first derivative (tangent), then the second, etc.. NB: For most (all) derived classes of 'EvalCurve', the implementation actually only supports the computation of one derivative, i.e. if n > 1, only one derivative will be computed anyway. |
Implements Go::EvalCurve.
virtual double Go::ProjectCurve::start | ( | ) | const [virtual] |
Get the start parameter of the curve.
Implements Go::EvalCurve.
virtual double Go::ProjectCurve::end | ( | ) | const [virtual] |
Get the end parameter of the curve.
Implements Go::EvalCurve.
virtual int Go::ProjectCurve::dim | ( | ) | const [virtual] |
Inherited from EvalCurve::dim().
For this class, the returned dimension will be that of the surface parameter domain, ie. 2, NOT that of the space curve.
Implements Go::EvalCurve.
virtual bool Go::ProjectCurve::approximationOK | ( | double | par, | |
Go::Point | approxpos, | |||
double | tol1, | |||
double | tol2 | |||
) | const [virtual] |
Inherited from EvalCurve::approximationOK().
For this class, the specified tolerances are not used; the internally stored 'epsgeo' value is used as tolerance (this value was specified in the constructor).
par | the parameter at which to check the curve | |
approxpos | the position we want to check whether or not the curve approximates for parameter 'par'. | |
tol1 | unused | |
tol2 | unused |
Implements Go::EvalCurve.