#include <IntersectionCurve.h>
Inheritance diagram for Go::InterpolatedIntersectionCurve:
Public Member Functions | |
virtual | ~InterpolatedIntersectionCurve () |
virtual void | refine (const double &pos_tol, const double &angle_tol) |
Refine the curve (which means to increase the number of IntersectionPoint s defining it), so that the curve matches a specific positional and angle tolerance. | |
virtual boost::shared_ptr< ParamCurve > | getCurve () const |
Get out a (shared) pointer to a parametric curve that approximates this IntersectionCurve. | |
virtual boost::shared_ptr< ParamCurve > | getParamCurve (int obj_nmb) const |
Get out a (shared) pointer to the curve in the parametric plane of the first or second object. | |
virtual bool | isIsocurve () const |
Determine if the IntersectionCurve is in fact representing an isoparametric intersection. | |
virtual bool | isDegenerated () const |
Determine if the IntersectionCurve is in fact a degenerated curve (a single point in space). | |
virtual void | getParamSpan (double &start, double &end) const |
Get the start and end value for the parametric span of the IntersectionCurve. | |
virtual void | evaluateAt (double pval, Point &pos, Point &tan) |
Evaluate the IntersectionCurve at parameter value pval. | |
virtual bool | getGuidePointTangent (boost::shared_ptr< IntersectionPoint > pt, Point &tan, int type) const |
Get the tangent of a guidepoint that we know lies on the curve (just using the getTangent() function of the guidepoint can be deceiving, as it is not necessarily unique). | |
Friends | |
template<class iterator> | |
boost::shared_ptr< IntersectionCurve > | constructIntersectionCurve (const iterator begin, const iterator end) |
Definition at line 389 of file IntersectionCurve.h.
virtual void Go::InterpolatedIntersectionCurve::refine | ( | const double & | pos_tol, | |
const double & | angle_tol | |||
) | [virtual] |
Refine the curve (which means to increase the number of IntersectionPoint s defining it), so that the curve matches a specific positional and angle tolerance.
pos_tol | the positional tolerance that the curve should match after refinement. | |
angle_tol | the angular tolerance that the tangent of the curve should match after refinement. |
Implements Go::IntersectionCurve.
virtual boost::shared_ptr<ParamCurve> Go::InterpolatedIntersectionCurve::getParamCurve | ( | int | obj_nmb | ) | const [virtual] |
Get out a (shared) pointer to the curve in the parametric plane of the first or second object.
Should only be called when the concerned object is 2-parametric.
obj_nmb | should be either 1 or 2, depending on whether you want to get the parametric curve in object 1 or object 2. |
Implements Go::IntersectionCurve.
virtual bool Go::InterpolatedIntersectionCurve::isIsocurve | ( | ) | const [inline, virtual] |
Determine if the IntersectionCurve is in fact representing an isoparametric intersection.
Implements Go::IntersectionCurve.
Definition at line 401 of file IntersectionCurve.h.
virtual bool Go::InterpolatedIntersectionCurve::isDegenerated | ( | ) | const [inline, virtual] |
Determine if the IntersectionCurve is in fact a degenerated curve (a single point in space).
Implements Go::IntersectionCurve.
Definition at line 404 of file IntersectionCurve.h.
virtual void Go::InterpolatedIntersectionCurve::getParamSpan | ( | double & | start, | |
double & | end | |||
) | const [inline, virtual] |
Get the start and end value for the parametric span of the IntersectionCurve.
start | upon function return this variable will contain the start value of the parametric span. | |
end | upon function return this variable will contain the end value of the parametric span. |
Implements Go::IntersectionCurve.
Definition at line 407 of file IntersectionCurve.h.
virtual void Go::InterpolatedIntersectionCurve::evaluateAt | ( | double | pval, | |
Point & | pos, | |||
Point & | tan | |||
) | [virtual] |
Evaluate the IntersectionCurve at parameter value pval.
Its position at this parameter value will be returned in pos and its tangent direction will be returned in tan.
pval | the parameter value for which to evaluate the IntersectionCurve. It should be within the parametric span (which can be obtained from GetParamSpan(). |
pos | the calculated position of the point on the curve at parameter pval. |
tan | the calculated tangent of the curve at parameter pval. |
Implements Go::IntersectionCurve.
virtual bool Go::InterpolatedIntersectionCurve::getGuidePointTangent | ( | boost::shared_ptr< IntersectionPoint > | pt, | |
Point & | tan, | |||
int | type | |||
) | const [virtual] |
Get the tangent of a guidepoint that we know lies on the curve (just using the getTangent() function of the guidepoint can be deceiving, as it is not necessarily unique).
pt | shared pointer to the guidepoint. It is supposed to be part of the definition of the curve. | |
type | specifies what kind of tangent the user wants. '1' means the parameter plane tangent for the first object. '2' means the parameter plane tangent for the second object. Other values of 'type' means the tangent in 3D space. |
tan | the requested tangent |
Reimplemented from Go::IntersectionCurve.