#include <SplineCurveInt.h>
Inheritance diagram for Go::SplineCurveInt:
Public Member Functions | |
SplineCurveInt (boost::shared_ptr< ParamCurve > curve) | |
Constructor. | |
SplineCurveInt (boost::shared_ptr< ParamCurve > curve, ParamGeomInt *parent) | |
Constructor. | |
virtual | ~SplineCurveInt () |
Destructor. | |
virtual boost::shared_ptr< ParamCurveInt > | makeIntObject (boost::shared_ptr< ParamCurve > curve) |
Return an intersection object for the input curve. | |
virtual bool | hasInnerKnots (int pardir) const |
Return true if the object has any inner knots in the specified parameter direction. | |
virtual bool | hasCriticalValsOrKnots (int pardir) const |
Return true if the object has any critical parameter values or inner knots in the specified parameter direction. | |
virtual std::vector< double > | getInnerKnotVals (int pardir, bool sort=false) const |
Return the inner knot values in the specified direction. | |
virtual std::vector< double > | getCriticalValsAndKnots (int pardir) const |
Return the critical parameter values and inner knots for object. | |
virtual int | getMeshSize (int dir) |
Return the size of the geometric sample mesh in the specified direction. | |
virtual double | paramFromMesh (int dir, int idx) |
Return the corresponding mesh parameter. | |
virtual std::vector< double >::iterator | getMesh () |
Return the geometric sample mesh for the parametric function. | |
virtual int | checkPeriodicity (int pardir=0) const |
Check if the object is periodic. | |
virtual int | knotIntervalFuzzy (double &t, double tol) const |
Find the knot interval for which t lies inside, moving the value t if it lies close to a knot. | |
virtual double | nextSegmentVal (double par, bool forward, double tol) const |
Return the value of the knot next to the input parameter par. | |
virtual bool | isSpline () |
Verify whether the object is a spline. | |
virtual const SplineCurve * | getSpline () |
virtual double | getOptimizedConeAngle (Point &axis1, Point &axis2) |
We try to treat problems which will never result in a simple case by shrinking the domain slightly, resulting in smaller cones. | |
virtual RotatedBox | getRotatedBox (std::vector< Point > &axis) const |
Create a box containing the geometric sample mesh in the input coordinate system. | |
Protected Attributes | |
boost::shared_ptr< SplineCurve > | spcv_ |
Definition at line 51 of file SplineCurveInt.h.
Go::SplineCurveInt::SplineCurveInt | ( | boost::shared_ptr< ParamCurve > | curve | ) | [explicit] |
Constructor.
curve | the parametric curve defining the intersection object. |
Go::SplineCurveInt::SplineCurveInt | ( | boost::shared_ptr< ParamCurve > | curve, | |
ParamGeomInt * | parent | |||
) | [explicit] |
Constructor.
curve | the parametric curve defining the intersection object. | |
parent | the parent object to this object. Can be either a curve or a surface. |
virtual boost::shared_ptr<ParamCurveInt> Go::SplineCurveInt::makeIntObject | ( | boost::shared_ptr< ParamCurve > | curve | ) | [virtual] |
Return an intersection object for the input curve.
This object is used as the parent for the intersection object.
curve | the parametric curve defining the intersection object. |
Reimplemented from Go::ParamCurveInt.
virtual bool Go::SplineCurveInt::hasInnerKnots | ( | int | pardir | ) | const [virtual] |
Return true if the object has any inner knots in the specified parameter direction.
pardir | the parameter direction in question. Indexing starts at 0. |
Reimplemented from Go::ParamCurveInt.
virtual bool Go::SplineCurveInt::hasCriticalValsOrKnots | ( | int | pardir | ) | const [virtual] |
Return true if the object has any critical parameter values or inner knots in the specified parameter direction.
pardir | the parameter direction in question. Indexing starts at 0. |
Reimplemented from Go::ParamCurveInt.
virtual std::vector<double> Go::SplineCurveInt::getInnerKnotVals | ( | int | pardir, | |
bool | sort = false | |||
) | const [virtual] |
Return the inner knot values in the specified direction.
pardir | the parameter direction in question. Indexing starts at 0. | |
sort | the returned values may be sorted by the function. |
Reimplemented from Go::ParamCurveInt.
virtual std::vector<double> Go::SplineCurveInt::getCriticalValsAndKnots | ( | int | pardir | ) | const [virtual] |
Return the critical parameter values and inner knots for object.
pardir | the parameter direction in question. Indexing starts at 0. |
Reimplemented from Go::ParamCurveInt.
virtual int Go::SplineCurveInt::getMeshSize | ( | int | dir | ) | [virtual] |
Return the size of the geometric sample mesh in the specified direction.
dir | the parameter direction in question. Indexing starts at 0. |
Reimplemented from Go::ParamCurveInt.
virtual double Go::SplineCurveInt::paramFromMesh | ( | int | dir, | |
int | idx | |||
) | [virtual] |
Return the corresponding mesh parameter.
dir | the parameter direction in question. Indexing starts at 0. | |
idx | the mesh idx in the specified direction. Indexing starts at 0. |
Reimplemented from Go::ParamCurveInt.
virtual int Go::SplineCurveInt::checkPeriodicity | ( | int | pardir = 0 |
) | const [virtual] |
Check if the object is periodic.
Analyze periodicity of curve based on number of repeating knots and control points. The return value is -1 if the curve ends are disjoint, otherwise k if cv is C^k continuous. These are sufficient but not necessary conditions for periodicity, so it is possible that a higher degree of periodicity exists. Should not be called on this layer, should be overruled by inherited class.
pardir | the parameter direction in question. Does not pertain to for a curve. |
Reimplemented from Go::ParamCurveInt.
virtual int Go::SplineCurveInt::knotIntervalFuzzy | ( | double & | t, | |
double | tol | |||
) | const [virtual] |
Find the knot interval for which t lies inside, moving the value t if it lies close to a knot.
t | the parameter value | |
tol | the parametric tolerance deciding if the input parameter t should be moved. |
Reimplemented from Go::ParamCurveInt.
virtual double Go::SplineCurveInt::nextSegmentVal | ( | double | par, | |
bool | forward, | |||
double | tol | |||
) | const [virtual] |
Return the value of the knot next to the input parameter par.
par | the parameter value | |
forward | if true we return the closest knot to the right, otherwise the closest knot to the left. | |
tol | the tolerance to determine if par is already located on the start of the next segment. |
Reimplemented from Go::ParamCurveInt.
virtual bool Go::SplineCurveInt::isSpline | ( | ) | [virtual] |
Verify whether the object is a spline.
Reimplemented from Go::ParamCurveInt.
virtual double Go::SplineCurveInt::getOptimizedConeAngle | ( | Point & | axis1, | |
Point & | axis2 | |||
) | [virtual] |
We try to treat problems which will never result in a simple case by shrinking the domain slightly, resulting in smaller cones.
This is useful for scenarios where the normals are parallell in a boundary point.
axis1 | first vector defining a projection plane | |
axis2 | second vector defining a projection plane |
Reimplemented from Go::ParamCurveInt.
virtual RotatedBox Go::SplineCurveInt::getRotatedBox | ( | std::vector< Point > & | axis | ) | const [virtual] |
Create a box containing the geometric sample mesh in the input coordinate system.
axis | the axis defining the coordinate system. The size of vector axis is 2, the last point is given as the cross product axis[0]axis[1]. |
Reimplemented from Go::ParamCurveInt.