Go::ParamGeomInt Class Reference
[Intersections]

This class is a base class providing an interface to the parametric "intersection objects". More...

#include <ParamGeomInt.h>

Inheritance diagram for Go::ParamGeomInt:

Go::ParamObjectInt Go::GeomObjectInt Go::ParamCurveInt Go::ParamPointInt Go::ParamSurfaceInt Go::SplineCurveInt Go::SplineSurfaceInt List of all members.

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.
BoundaryGeomIntgetBoundaryObject (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_

Detailed Description

This class is a base class providing an interface to the parametric "intersection objects".

Definition at line 58 of file ParamGeomInt.h.


Constructor & Destructor Documentation

Go::ParamGeomInt::ParamGeomInt ( ParamGeomInt parent = 0  )  [inline]

Constructor.

Parameters:
parent the parent to this intersection object.

Definition at line 62 of file ParamGeomInt.h.


Member Function Documentation

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.

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

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.

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

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

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

Parameters:
reduce_at_bd indicates which boundaries the reduction attempt should be made
epsge the geometric tolerancedefining degeneracy
Returns:
A direction cone. This is either the same cone or a smaller one.

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.

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

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

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

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

Parameters:
bd_idx index of the boundary object.
Returns:
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

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

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

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


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