#include <ProjectCurveAndCrossTan.h>
Inheritance diagram for Go::ProjectCurveAndCrossTan:
Public Member Functions | |
ProjectCurveAndCrossTan (const SplineCurve &space_crv, const SplineCurve &crosstan_crv, const SplineSurface &surf, const Point *start_par_pt, const Point *end_par_pt, double epsgeo, const RectDomain *domain_of_interest=NULL) | |
Constructor. | |
virtual | ~ProjectCurveAndCrossTan () |
Destructor. | |
virtual std::vector< Go::Point > | eval (double t) |
Evaluate the curve set. | |
virtual void | eval (double t, int n, std::vector< std::vector< Go::Point > > &ders) |
Evaluate derivatives in the curve set. | |
virtual double | start () |
Start parameter of domain. | |
virtual double | end () |
End parameter of domain. | |
virtual int | dim () |
Dimension of space (parameter domain, i.e. | |
virtual bool | approximationOK (double par, const std::vector< Go::Point > &approxpos, double tol1, double tol2) |
Whether the approximation is within tolerances in input parameter. | |
virtual int | nmbCvs () |
The number of curves in the curve set. |
In total 3 points are computed: the parameter point of the projection on an input surface, the corresponding space pt and the projected cross tangent point.
Definition at line 56 of file ProjectCurveAndCrossTan.h.
Go::ProjectCurveAndCrossTan::ProjectCurveAndCrossTan | ( | const SplineCurve & | space_crv, | |
const SplineCurve & | crosstan_crv, | |||
const SplineSurface & | surf, | |||
const Point * | start_par_pt, | |||
const Point * | end_par_pt, | |||
double | epsgeo, | |||
const RectDomain * | domain_of_interest = NULL | |||
) |
Constructor.
space_crv | the input space curve to project. | |
crosstan_crv | the cross tangent curve associated with space_crv. | |
surf | the parametric surface onto which to project the two curves. | |
start_par_pt | We may require that the projected curve shall start in a specific point in the parameter domain (input pointer may be NULL). | |
end_par_pt | We may require that the projected curve shall end in a specific point in the parameter domain (input pointer may be NULL). | |
epsgeo | geometric tolerance for the projection. | |
domain_of_interest | if not null, specifies the part of the SplineSurface s parametric domain that will be considered. |
virtual std::vector<Go::Point> Go::ProjectCurveAndCrossTan::eval | ( | double | t | ) | [virtual] |
Evaluate the curve set.
t | parameter in which to evaluate. |
Implements Go::EvalCurveSet.
virtual void Go::ProjectCurveAndCrossTan::eval | ( | double | t, | |
int | n, | |||
std::vector< std::vector< Go::Point > > & | ders | |||
) | [virtual] |
Evaluate derivatives in the curve set.
t | parameter in which to evaluate. | |
n | the number of derivatives to evaluate. | |
ders | the evaluated points in the input parameter. Size of vector is 3, each holding 'n + 1' points. |
Implements Go::EvalCurveSet.
virtual double Go::ProjectCurveAndCrossTan::start | ( | ) | [virtual] |
virtual double Go::ProjectCurveAndCrossTan::end | ( | ) | [virtual] |
virtual int Go::ProjectCurveAndCrossTan::dim | ( | ) | [virtual] |
Dimension of space (parameter domain, i.e.
2).
Implements Go::EvalCurveSet.
virtual bool Go::ProjectCurveAndCrossTan::approximationOK | ( | double | par, | |
const std::vector< Go::Point > & | approxpos, | |||
double | tol1, | |||
double | tol2 | |||
) | [virtual] |
Whether the approximation is within tolerances in input parameter.
par | parameter in which to evaluate. | |
approxpos | whether the input points are within tolerance from the evaluated points (as given by eval()). | |
tol1 | tolerance used to decide approximation accuracy. | |
tol2 | tolerance used to decide approximation accuracy. |
Implements Go::EvalCurveSet.
virtual int Go::ProjectCurveAndCrossTan::nmbCvs | ( | ) | [virtual] |
The number of curves in the curve set.
Implements Go::EvalCurveSet.