Go::Intersector Class Reference
[Intersections]

This class is an abstract class providing an interface to the intersection functionality in GoTools. More...

#include <Intersector.h>

Inheritance diagram for Go::Intersector:

Go::Intersector2Obj Go::IntersectorAlgPar Go::IntersectorFuncConst Go::SfSelfIntersector Go::CvCvIntersector Go::CvPtIntersector Go::PtPtIntersector Go::SfCvIntersector Go::SfPtIntersector Go::SfSfIntersector Go::Par0FuncIntersector Go::Par1FuncIntersector Go::Par2FuncIntersector List of all members.

Public Member Functions

 Intersector ()
 Default constructor.
 Intersector (double epsge, Intersector *prev=0)
 Constructor.
 Intersector (boost::shared_ptr< GeoTol > epsge, Intersector *prev=0)
 Constructor.
virtual ~Intersector ()
 Destructor.
virtual void compute (bool compute_at_boundary=true)
 Compute the current intersections (topology).
virtual void getResult (std::vector< boost::shared_ptr< IntersectionPoint > > &int_points, std::vector< boost::shared_ptr< IntersectionCurve > > &int_curves)
 Get intersection points and curves.
boost::shared_ptr< IntersectionPoolgetIntPool ()
 Get the IntersectionPool for the intersector.
bool validateSiblingPools ()
 Validate this pool and its siblings.
boost::shared_ptr< GeoTolgetTolerance ()
 Get the tolerance object used by this Intersector.
bool hasSingularityInfo ()
 Verify whether singularities has been set.
boost::shared_ptr< SingularityInfogetSingularityInfo ()
 Get info regarding singularities.
void setSingularityInfo (boost::shared_ptr< SingularityInfo > previous, int missing_dir)
 Set info regarding singularities.
void setHighPriSing (double *par)
 Instruct the intersector about known singular points.
bool hasComplexityInfo ()
 Verify whether there has been created info regarding the complexity of the problem.
boost::shared_ptr< ComplexityInfogetComplexityInfo ()
 Get info on the complexity of the problem.
virtual int numParams () const=0
 Get the number of parameter directions for the intersection.
virtual int nmbBdObj (int idx) const
 Count the number of boundary objects belonging to the specified ParamGeomInt.
virtual BoundaryGeomIntgetBoundaryObject (int idx, int bd_idx) const
 Get the specified boundary object belonging to the specified ParamGeomInt.
int nmbRecursions ()
 The current recursion level.
virtual bool isSelfIntersection ()
 Verify whether the surface is self-intersecting.
virtual int isSelfintCase ()
 Check if this intersection algorithm is performed in a self-intersection context.
virtual void addComplexDomain (RectDomain dom)
void writeIntersectionPoints () const
 Write diagnostic information about the intersection points.

Protected Member Functions

virtual bool degTriangleSimple ()
virtual int complexIntercept ()
virtual int complexSimpleCase ()
virtual void doPostIterate ()

Protected Attributes

boost::shared_ptr< IntersectionPoolint_results_
std::vector< boost::shared_ptr<
Intersector > > 
sub_intersectors_
Intersectorprev_intersector_
boost::shared_ptr< GeoTolepsge_
boost::shared_ptr< SingularityInfosingularity_info_
boost::shared_ptr< ComplexityInfocomplexity_info_

Friends

class SfSfIntersector
class IntersectionPool

Detailed Description

This class is an abstract class providing an interface to the intersection functionality in GoTools.

Definition at line 63 of file Intersector.h.


Constructor & Destructor Documentation

Go::Intersector::Intersector ( double  epsge,
Intersector prev = 0 
)

Constructor.

Parameters:
epsge the geometric tolerance for the intersector.
prev the previous intersector.

Go::Intersector::Intersector ( boost::shared_ptr< GeoTol epsge,
Intersector prev = 0 
)

Constructor.

Parameters:
epsge the geometric tolerance for the intersector.
prev the previous intersector.


Member Function Documentation

virtual void Go::Intersector::compute ( bool  compute_at_boundary = true  )  [virtual]

Compute the current intersections (topology).

Parameters:
compute_at_boundary if true we will include computation of boundary intersections.

Reimplemented in Go::IntersectorAlgPar, and Go::SfSelfIntersector.

virtual void Go::Intersector::getResult ( std::vector< boost::shared_ptr< IntersectionPoint > > &  int_points,
std::vector< boost::shared_ptr< IntersectionCurve > > &  int_curves 
) [virtual]

Get intersection points and curves.

Sends request to IntersectionPool. The intersection points are isolated.

Parameters:
int_points vector of intersection points
int_curves vector of intersection curves

Reimplemented in Go::IntersectorAlgPar.

boost::shared_ptr<IntersectionPool> Go::Intersector::getIntPool (  )  [inline]

Get the IntersectionPool for the intersector.

Returns:
The IntersectionPool.

Definition at line 100 of file Intersector.h.

References int_results_.

bool Go::Intersector::validateSiblingPools (  ) 

Validate this pool and its siblings.

Returns:
true if all the sibling pools are valid, false otherwise

boost::shared_ptr<GeoTol> Go::Intersector::getTolerance (  )  [inline]

Get the tolerance object used by this Intersector.

Returns:
The tolerance object for the intersector.

Definition at line 111 of file Intersector.h.

References epsge_.

bool Go::Intersector::hasSingularityInfo (  )  [inline]

Verify whether singularities has been set.

Returns:
True if info on singularities has been set.

Definition at line 116 of file Intersector.h.

References singularity_info_.

boost::shared_ptr<SingularityInfo> Go::Intersector::getSingularityInfo (  )  [inline]

Get info regarding singularities.

Returns:
The singularify info for the intersector.

Definition at line 121 of file Intersector.h.

References singularity_info_.

void Go::Intersector::setSingularityInfo ( boost::shared_ptr< SingularityInfo previous,
int  missing_dir 
) [inline]

Set info regarding singularities.

Parameters:
previous the singularity info.
missing_dir if the dimension of the intersection problem has been reduced from previous, the index tells us which parameter direction that was removed. Indexing starts at 0.

Definition at line 130 of file Intersector.h.

References singularity_info_.

void Go::Intersector::setHighPriSing ( double *  par  ) 

Instruct the intersector about known singular points.

Parameters:
par the parameter value of the singularity. Size of array should be numParams().

bool Go::Intersector::hasComplexityInfo (  )  [inline]

Verify whether there has been created info regarding the complexity of the problem.

Returns:
True if complexity info has been created.

Definition at line 149 of file Intersector.h.

References complexity_info_.

boost::shared_ptr<ComplexityInfo> Go::Intersector::getComplexityInfo (  )  [inline]

Get info on the complexity of the problem.

Returns:
Info on the complexity of the problem.

Definition at line 154 of file Intersector.h.

References complexity_info_.

virtual int Go::Intersector::numParams (  )  const [pure virtual]

Get the number of parameter directions for the intersection.

Returns:
The number of parameter directions for the intersection.

Implemented in Go::CvCvIntersector, Go::CvPtIntersector, Go::IntersectorAlgPar, Go::Par0FuncIntersector, Go::Par1FuncIntersector, Go::Par2FuncIntersector, Go::PtPtIntersector, Go::SfCvIntersector, Go::SfPtIntersector, Go::SfSelfIntersector, and Go::SfSfIntersector.

virtual int Go::Intersector::nmbBdObj ( int  idx  )  const [inline, virtual]

Count the number of boundary objects belonging to the specified ParamGeomInt.

Parameters:
idx refers to obj1 or obj2. Indexing starts at 0.
Returns:
The number of boundary objects.

Reimplemented in Go::Intersector2Obj.

Definition at line 166 of file Intersector.h.

virtual BoundaryGeomInt* Go::Intersector::getBoundaryObject ( int  idx,
int  bd_idx 
) const [inline, virtual]

Get the specified boundary object belonging to the specified ParamGeomInt.

Parameters:
idx refers to obj1 or obj2. Indexing starts at 0.
bd_idx index of the boundary object in the ParamGeomInt.
Returns:
The boundary object.

Reimplemented in Go::Intersector2Obj.

Definition at line 175 of file Intersector.h.

int Go::Intersector::nmbRecursions (  )  [inline]

The current recursion level.

Returns:
The current recursion level.

Definition at line 180 of file Intersector.h.

References nmbRecursions(), and prev_intersector_.

Referenced by nmbRecursions().

virtual bool Go::Intersector::isSelfIntersection (  )  [inline, virtual]

Verify whether the surface is self-intersecting.

Returns:
True if the surface is self-intersecting.

Reimplemented in Go::SfSelfIntersector.

Definition at line 190 of file Intersector.h.


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