#include <Intersector.h>
Inheritance diagram for Go::Intersector:
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< IntersectionPool > | getIntPool () |
Get the IntersectionPool for the intersector. | |
bool | validateSiblingPools () |
Validate this pool and its siblings. | |
boost::shared_ptr< GeoTol > | getTolerance () |
Get the tolerance object used by this Intersector. | |
bool | hasSingularityInfo () |
Verify whether singularities has been set. | |
boost::shared_ptr< SingularityInfo > | getSingularityInfo () |
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< ComplexityInfo > | getComplexityInfo () |
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 BoundaryGeomInt * | getBoundaryObject (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< IntersectionPool > | int_results_ |
std::vector< boost::shared_ptr< Intersector > > | sub_intersectors_ |
Intersector * | prev_intersector_ |
boost::shared_ptr< GeoTol > | epsge_ |
boost::shared_ptr< SingularityInfo > | singularity_info_ |
boost::shared_ptr< ComplexityInfo > | complexity_info_ |
Friends | |
class | SfSfIntersector |
class | IntersectionPool |
Definition at line 63 of file Intersector.h.
Go::Intersector::Intersector | ( | double | epsge, | |
Intersector * | prev = 0 | |||
) |
Constructor.
epsge | the geometric tolerance for the intersector. | |
prev | the previous intersector. |
Go::Intersector::Intersector | ( | boost::shared_ptr< GeoTol > | epsge, | |
Intersector * | prev = 0 | |||
) |
Constructor.
epsge | the geometric tolerance for the intersector. | |
prev | the previous intersector. |
virtual void Go::Intersector::compute | ( | bool | compute_at_boundary = true |
) | [virtual] |
Compute the current intersections (topology).
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.
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.
Definition at line 100 of file Intersector.h.
References int_results_.
bool Go::Intersector::validateSiblingPools | ( | ) |
Validate this pool and its siblings.
boost::shared_ptr<GeoTol> Go::Intersector::getTolerance | ( | ) | [inline] |
Get the tolerance object used by this Intersector.
Definition at line 111 of file Intersector.h.
References epsge_.
bool Go::Intersector::hasSingularityInfo | ( | ) | [inline] |
Verify whether 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.
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.
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.
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.
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.
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.
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.
idx | refers to obj1 or obj2. Indexing starts at 0. |
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.
idx | refers to obj1 or obj2. Indexing starts at 0. | |
bd_idx | index of the boundary object in the ParamGeomInt. |
Reimplemented in Go::Intersector2Obj.
Definition at line 175 of file Intersector.h.
int Go::Intersector::nmbRecursions | ( | ) | [inline] |
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.
Reimplemented in Go::SfSelfIntersector.
Definition at line 190 of file Intersector.h.