Go::SplineCurveInt Class Reference
[Intersections]

Class representing the "intersection object" of a spline curve. More...

#include <SplineCurveInt.h>

Inheritance diagram for Go::SplineCurveInt:

Go::ParamCurveInt Go::ParamGeomInt Go::ParamObjectInt Go::GeomObjectInt List of all members.

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_

Detailed Description

Class representing the "intersection object" of a spline curve.

Definition at line 51 of file SplineCurveInt.h.


Constructor & Destructor Documentation

Go::SplineCurveInt::SplineCurveInt ( boost::shared_ptr< ParamCurve >  curve  )  [explicit]

Constructor.

Parameters:
curve the parametric curve defining the intersection object.

Go::SplineCurveInt::SplineCurveInt ( boost::shared_ptr< ParamCurve >  curve,
ParamGeomInt parent 
) [explicit]

Constructor.

Parameters:
curve the parametric curve defining the intersection object.
parent the parent object to this object. Can be either a curve or a surface.


Member Function Documentation

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.

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

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

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

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

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

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

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

Parameters:
pardir the parameter direction in question. Does not pertain to for a curve.
Returns:
-1 if the curve ends are disjoint, or k if the curve is proven to be C^k continuous.

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.

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

Parameters:
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.
Returns:
The knot closest to the input parameter.

Reimplemented from Go::ParamCurveInt.

virtual bool Go::SplineCurveInt::isSpline (  )  [virtual]

Verify whether the object is a spline.

Returns:
True if 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.

Parameters:
axis1 first vector defining a projection plane
axis2 second vector defining a projection plane
Returns:
The optimized cone angle

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.

Parameters:
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].
Returns:
The rotated box

Reimplemented from Go::ParamCurveInt.


The documentation for this class was generated from the following file:
Generated on Fri Nov 23 12:24:35 2007 for GoTools Intersections Library by  doxygen 1.5.1