Go::ProjectCurve Class Reference
['geometry' - a spline library]

This class represents the curve obtained by projecting a given 3D curve onto a given part of a given 3D surface. More...

#include <ProjectCurve.h>

Inheritance diagram for Go::ProjectCurve:

Go::EvalCurve List of all members.

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

Detailed Description

This class represents the curve obtained by projecting a given 3D curve onto a given part of a given 3D surface.

Definition at line 53 of file ProjectCurve.h.


Constructor & Destructor Documentation

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.

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


Member Function Documentation

virtual Go::Point Go::ProjectCurve::eval ( double  t  )  const [virtual]

Evaluate a point on the curve for a given parameter.

Parameters:
t the parameter for which to evaluate the curve.
Returns:
the evaluated point

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.

Parameters:
t the parameter for which to evaluate the curve.
n the number of derivatives (0 or more)
Return values:
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.

Returns:
the start parameter of the curve.

Implements Go::EvalCurve.

virtual double Go::ProjectCurve::end (  )  const [virtual]

Get the end parameter of the curve.

Returns:
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).

Parameters:
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
Returns:
'true' if the curve approximates the point at the parameter, 'false' otherwise.

Implements Go::EvalCurve.


The documentation for this class was generated from the following file:
Generated on Mon Jun 11 14:48:19 2007 for GoTools Core Library by  doxygen 1.5.1