#include <ParamGeomInt.h>
Inheritance diagram for Go::ParamGeomInt:
Public Member Functions | |
ParamGeomInt (ParamGeomInt *parent=0) | |
Constructor. | |
virtual | ~ParamGeomInt () |
Destructor. | |
virtual int | dimension () const=0 |
The dimension of the geometric space. | |
virtual int | checkPeriodicity (int pardir) const |
Check if the object is periodic. | |
virtual void | subdivide (int pardir, double par, std::vector< boost::shared_ptr< ParamGeomInt > > &subdiv_objs, std::vector< boost::shared_ptr< ParamGeomInt > > &bd_objs)=0 |
Subdivide the object in the specified parameter direction and parameter value. | |
virtual CompositeBox | compositeBox () const=0 |
Return the CompositeBox for the parametric object. | |
virtual DirectionCone | directionCone () const=0 |
A cone which contains all normals of the object. | |
bool | coneLargerThanPi () |
Check if the associated direction cone has an angle larger than pi. | |
virtual DirectionCone | reducedDirectionCone (bool reduce_at_bd[4], double epsge) const |
Try to make a smaller direction cone. | |
virtual void | getBoundaryObjects (std::vector< boost::shared_ptr< BoundaryGeomInt > > &bd_objs)=0 |
Return the boundary objects of this object. | |
virtual int | getMeshSize (int dir)=0 |
Return the size of the geometric sample mesh in the specified direction. | |
virtual double | paramFromMesh (int dir, int idx)=0 |
Return the corresponding mesh parameter. | |
virtual std::vector< double >::iterator | getMesh ()=0 |
Return the geometric sample mesh for the parametric function. | |
int | nmbBdObj () const |
Return the number of boundary objects. | |
BoundaryGeomInt * | getBoundaryObject (int bd_idx) const |
Return the specified boundary object. | |
virtual int | isDegenerate (double epsge, int dir) |
Return true if the object is degenerate in the specified direction. | |
virtual bool | isDegenerate (double epsge, int dir, double *par)=0 |
Return true if the object is degenerate in the specified direction and parameter. | |
virtual bool | isLinear (double epsge) |
Check the linearity of the object. | |
virtual bool | isSpline ()=0 |
Return whether or not the object is a spline. | |
virtual double | getOptimizedConeAngle (Point &axis1, Point &axis2)=0 |
We try to treat problems which will never result in a simple case by shrinking the domain slightly, resulting in smaller cones. | |
Protected Attributes | |
std::vector< boost::shared_ptr< BoundaryGeomInt > > | boundary_obj_ |
Definition at line 58 of file ParamGeomInt.h.
Go::ParamGeomInt::ParamGeomInt | ( | ParamGeomInt * | parent = 0 |
) | [inline] |
Constructor.
parent | the parent to this intersection object. |
Definition at line 62 of file ParamGeomInt.h.
virtual int Go::ParamGeomInt::checkPeriodicity | ( | int | pardir | ) | const [inline, 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. |
Reimplemented in Go::ParamCurveInt, Go::ParamSurfaceInt, Go::SplineCurveInt, and Go::SplineSurfaceInt.
Definition at line 80 of file ParamGeomInt.h.
virtual void Go::ParamGeomInt::subdivide | ( | int | pardir, | |
double | par, | |||
std::vector< boost::shared_ptr< ParamGeomInt > > & | subdiv_objs, | |||
std::vector< boost::shared_ptr< ParamGeomInt > > & | bd_objs | |||
) | [pure virtual] |
Subdivide the object in the specified parameter direction and parameter value.
pardir | direction in which to subdive. Indexing starts at 0. | |
par | parameter in which to subdivide. | |
subdiv_objs | The subparts of this object. Of the same geometric dimension as this object. | |
bd_objs | the boundaries between the returned subdiv_objs. Of geometric dimension 1 less than this object. |
Implemented in Go::ParamCurveInt, Go::ParamPointInt, and Go::ParamSurfaceInt.
virtual CompositeBox Go::ParamGeomInt::compositeBox | ( | ) | const [pure virtual] |
Return the CompositeBox for the parametric object.
Implements Go::ParamObjectInt.
Implemented in Go::ParamCurveInt, Go::ParamPointInt, and Go::ParamSurfaceInt.
virtual DirectionCone Go::ParamGeomInt::directionCone | ( | ) | const [pure virtual] |
A cone which contains all normals of the object.
Implemented in Go::ParamCurveInt, Go::ParamPointInt, Go::ParamSurfaceInt, and Go::SplineSurfaceInt.
virtual DirectionCone Go::ParamGeomInt::reducedDirectionCone | ( | bool | reduce_at_bd[4], | |
double | epsge | |||
) | const [virtual] |
Try to make a smaller direction cone.
reduce_at_bd | indicates which boundaries the reduction attempt should be made | |
epsge | the geometric tolerancedefining degeneracy |
Reimplemented in Go::SplineSurfaceInt.
virtual void Go::ParamGeomInt::getBoundaryObjects | ( | std::vector< boost::shared_ptr< BoundaryGeomInt > > & | bd_objs | ) | [pure virtual] |
Return the boundary objects of this object.
bd_objs | the boundary objects of this object. |
Implemented in Go::ParamCurveInt, Go::ParamPointInt, Go::ParamSurfaceInt, and Go::SplineSurfaceInt.
virtual int Go::ParamGeomInt::getMeshSize | ( | int | dir | ) | [pure virtual] |
Return the size of the geometric sample mesh in the specified direction.
dir | the parameter direction in question. Indexing starts at 0. |
Implemented in Go::ParamCurveInt, Go::ParamPointInt, Go::ParamSurfaceInt, Go::SplineCurveInt, and Go::SplineSurfaceInt.
virtual double Go::ParamGeomInt::paramFromMesh | ( | int | dir, | |
int | idx | |||
) | [pure 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. |
Implemented in Go::ParamCurveInt, Go::ParamPointInt, Go::ParamSurfaceInt, Go::SplineCurveInt, and Go::SplineSurfaceInt.
int Go::ParamGeomInt::nmbBdObj | ( | ) | const [inline] |
Return the number of boundary objects.
Definition at line 143 of file ParamGeomInt.h.
References boundary_obj_.
BoundaryGeomInt* Go::ParamGeomInt::getBoundaryObject | ( | int | bd_idx | ) | const [inline] |
Return the specified boundary object.
bd_idx | index of the boundary object. |
Definition at line 149 of file ParamGeomInt.h.
References boundary_obj_.
virtual int Go::ParamGeomInt::isDegenerate | ( | double | epsge, | |
int | dir | |||
) | [inline, virtual] |
Return true if the object is degenerate in the specified direction.
Specialized for surface
epsge | the geometric tolerance defining degeneracy. | |
dir | the parameter direction in question. |
Reimplemented in Go::ParamSurfaceInt.
Definition at line 159 of file ParamGeomInt.h.
virtual bool Go::ParamGeomInt::isDegenerate | ( | double | epsge, | |
int | dir, | |||
double * | par | |||
) | [pure virtual] |
Return true if the object is degenerate in the specified direction and parameter.
epsge | the geometric tolerance defining degeneracy. | |
dir | the parameter direction in question. | |
par | the parameter in which to evaluate. Size of array should be equal to numParams(). |
Reimplemented from Go::ParamObjectInt.
Implemented in Go::ParamCurveInt, Go::ParamPointInt, and Go::ParamSurfaceInt.
virtual bool Go::ParamGeomInt::isSpline | ( | ) | [pure virtual] |
Return whether or not the object is a spline.
Implemented in Go::ParamCurveInt, Go::ParamPointInt, Go::ParamSurfaceInt, Go::SplineCurveInt, and Go::SplineSurfaceInt.
virtual double Go::ParamGeomInt::getOptimizedConeAngle | ( | Point & | axis1, | |
Point & | axis2 | |||
) | [pure 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.
Implemented in Go::ParamCurveInt, Go::ParamPointInt, Go::ParamSurfaceInt, Go::SplineCurveInt, and Go::SplineSurfaceInt.