Intersections


Classes

struct  Go::Alg2DElem
 Struct that represents a monomial in two variables. More...
class  Go::AlgObj2DInt
 Class for 2-dimensional algebraic intersection objects. More...
struct  Go::Alg3DElem
 Struct that represents a monomial in three variables. More...
class  Go::AlgObj3DInt
 Class for 3-dimensional algebraic intersection objects. More...
class  Go::AlgObjectInt
 This class is a purely abstract base class, providing an interface to the algebraic intersection objects. More...
struct  Go::BoundaryFunctionInt
 This struct is a helper struct that bundles boundary information for an object of type ParamFunctionInt. More...
struct  Go::BoundaryGeomInt
 This struct is a helper struct that bundles boundary information for an object of type ParamGeomInt. More...
class  Go::ComplexityInfo
 This class contains statistical information used to check whether an intersection problem is simplified during recursive subdivision. More...
class  Go::CvCvIntersector
 Class that performs intersection between two parametric curves. More...
class  Go::CvPtIntersector
 This class performs intersection between a parametric curve and a point. More...
class  Go::CylinderInt
 Class for cylindrical algebraic intersection objects. More...
class  Go::GeomObjectInt
 This class is an abstract base class providing an interface to the "intersection objects". More...
class  Go::GeoTol
 Class handling various tolerances. More...
class  Go::Zero_Parameter_Span_Error
class  Go::IntersectionCurve
 Object describing the curve that results from an intersection of two geometrical objects. More...
class  Go::DegeneratedIntersectionCurve
 IntersectionCurve that is degenerated into a single point. More...
class  Go::NonEvaluableIntersectionCurve
 IntersectionCurve that cannot be evaluated. More...
class  Go::IsoparametricIntersectionCurve
 IntersectionCurve defined by an isoparametric curve that can be picked from the underlying object. More...
class  Go::InterpolatedIntersectionCurve
 IntersectionCurve that is defined by Hermite interpolation of a number of guidepoints. More...
class  Go::IntersectionLink
 This class represents a link between two intersection points. More...
class  Go::IntersectionPoint
 Object describing a point located on the intersection of two geometrical objects. More...
struct  Go::CachedInterval
 Helper struct for saving bracketed bounds of influence areas. More...
struct  Go::IntPtInfo
 Struct that holds diagnostic information about an intersection point. More...
class  Go::IntersectionPool
 Class providing access to the intersection points and surfaces related to a particular subproblem. More...
struct  Go::BoundaryIntersectionData
 Helper struct to be used with IntersectionPool::intersectAlongCommonBoundary(). More...
struct  Go::raw_pointer_comp< T >
class  Go::CrossesValue
class  Go::TestInDomain
class  Go::ClosestPointCalculator
class  Go::LockedDirDistFunc
class  Go::ConnectionFunctor
class  Go::Intersector
 This class is an abstract class providing an interface to the intersection functionality in GoTools. More...
class  Go::Intersector2Obj
 This class is an abstract class providing an interface to the intersection functionality in GoTools. More...
class  Go::IntersectorAlgPar
 This class is an interface class used to compute the intersection between an algebraic object and a parametric object. More...
class  Go::IntersectorFuncConst
 This class is an interface class for finding the intersection between a parametric function (with range R) and a constant. More...
class  Go::Line2DInt
 Class representing an algebraic line in 2-dimensional space. More...
class  Go::Par0FuncIntersector
 This class is performing intersections between two constants. More...
class  Go::Par1FuncIntersector
 This class is performing intersections between a 1-dimensional parametric curve and a constant. More...
class  Go::Par2FuncIntersector
 This class is performing intersections between a 1-dimensional parametric surface and a constant. More...
class  Go::Param0FunctionInt
 This is a class that represents the "intersection object" of a scalar (a "0-variate" function). More...
class  Go::Param1FunctionInt
 Class that represents an "intersection object" of a parametric curve of dimension 1. More...
class  Go::Param2FunctionInt
 Class that represents the "intersection object" of a parametric surface of dimension 1. More...
class  Go::ParamCurveInt
 This class represents the "intersection object" of a parametric curve. More...
class  Go::ParamFunctionInt
 This class is a base class providing an interface to the parametric "intersection objects" with 1-dimensional range. More...
class  Go::ParamGeomInt
 This class is a base class providing an interface to the parametric "intersection objects". More...
class  Go::ParamObjectInt
 This class is a base class providing an interface to the "intersection objects". More...
class  Go::ParamPointInt
 Class representing the "intersection object" of a parametric curve. More...
class  Go::ParamSurfaceInt
 Class that represents the "intersection object" of a parametric surface. More...
class  Go::PlaneInt
 Class representing planar algebraic intersection objects. More...
class  Go::PtPtIntersector
 This class performs intersection between two points. More...
struct  Go::SecondOrderProperties
class  Go::SfCvIntersector
 This class performs intersection between a parametric surface and a parametric curve. More...
class  Go::SfPtIntersector
 This class performs intersection between a parametric surface and a point. More...
struct  Go::SingBox
struct  Go::SingUnion
class  Go::SfSelfIntersector
 This class finds self-intersections for a parametric surface. More...
class  Go::SfSfIntersector
 This class performs intersection between two parametric surfaces. More...
class  Go::SingularityInfo
 This class contains information about singularities in an intersection problem. More...
class  Go::SphereInt
 Class representing spherical algebraic intersection objects. More...
class  Go::Spline1FunctionInt
 Class that represents the "intersection object" of a spline curve of dimension 1. More...
class  Go::Spline2FunctionInt
 This class represents the "intersection object" of a spline surface of dimension 1. More...
class  Go::SplineCurveInt
 Class representing the "intersection object" of a spline curve. More...
class  Go::SplineSurfaceInt
 This class represents the "intersection object" of a spline surface. More...
class  Go::SurfaceAssembly

Enumerations

enum  NodeStatus
enum  Go::EvalKind
enum  Go::TangentDomain
enum  Go::EstimateDirection
enum  Go::IntPtClassification {
  Go::DIR_UNDEF = 0, Go::DIR_IN, Go::DIR_OUT, Go::DIR_PARALLEL,
  Go::DIR_PERPENDICULAR, Go::DIR_HIGHLY_SINGULAR, Go::DIR_TOUCH
}
 Enumeration used to classify the direction of an intersection curve passing through an intersection point with respect to surface boundaries. More...
enum  Go::IntPtLocation {
  Go::LOC_OUTSIDE_BOTH = 0, Go::LOC_INSIDE_BOTH, Go::LOC_EDGE_ONE, Go::LOC_CORNER_ONE,
  Go::LOC_CORNER_BOTH, Go::LOC_EDGE_BOTH
}
 Enumeration used to classify the location of an intersection point in the parameter domain of the object. More...
enum  Go::LinkType {
  Go::LINK_UNDEFINED = 0, Go::SIMPLE_CONE, Go::SIMPLE_MONOTONE, Go::SIMPLE_IMPLICIT,
  Go::SIMPLE_TWO_POINTS, Go::COINCIDENCE_CVPT, Go::COINCIDENCE_CVCV, Go::COINCIDENCE_SFCV,
  Go::COINCIDENCE_SFPT, Go::MICRO_CVCV, Go::MICRO_SFPT, Go::MICRO_SFCV,
  Go::MICRO_SFSF, Go::MICRO_PAR1FUNC, Go::MICRO_PAR2FUNC, Go::LINEAR_CVCV,
  Go::LINEAR_SFCV, Go::LINEAR_SFSF, Go::MERGED_UNDEFINED, Go::MERGED_SIMPLE_CONE,
  Go::MERGED_SIMPLE_MONOTONE, Go::MERGED_SIMPLE_CONE_MONOTONE, Go::MERGED_COINCIDENCE_SFCV_SFCV, Go::DEG_TRIANGLE,
  Go::POST_ITERATE, Go::BRANCH_CONNECTION, Go::COMPLEX_SFSF, Go::SPLIT_LINK,
  Go::REPAIRED_MISSING_LINK, Go::INSIDE_OUTSIDE_SINGULARITY_BOX
}
 A classification of IntersectionLink objects. More...
enum  Go::SingularityClassification
 This enum classifies the type of singularity.
enum  Go::SingularityType {
  Go::ORDINARY_POINT = 0, Go::TANGENTIAL_POINT, Go::ISOLATED_POINT, Go::BRANCH_POINT,
  Go::HIGHER_ORDER_POINT
}
 A classification of an IntersectionPoint, based on the nature of the intersection on which it lies. More...
enum  Go::SubdivisionClassification
 This enum classifies the type of subdivision.

Functions

int Go::checkCoincide (ParamCurveInt *curve, double start, double end, boost::shared_ptr< GeoTol > tol, ParamCurveInt *other, double other_start, double other_end)
 Check if two curves are coinciding between parameters start and end on this curve, and other_start and other_end on the other curve.
int Go::checkCoincide (ParamCurveInt *curve, double start, double end, ParamSurfaceInt *surf, Point su_start, Point su_end, boost::shared_ptr< GeoTol > tol)
 Check if this curve is coinciding between parameters start and end, with the ParamSurface between parameters su_start and su_end.
int Go::checkCoincide (ParamCurveInt *curve, double start, double end, SplineSurfaceInt *surf, const Point &su_start, const Point &su_end, boost::shared_ptr< GeoTol > tol)
 Check if this curve is coinciding between parameters start and end, with the SplineSurface between parameters su_start and su_end.
int Go::checkCoincide (Param1FunctionInt *func1, double start, double end, Param0FunctionInt *C, boost::shared_ptr< GeoTol > tol)
 Check if this function is coinciding between parameters start and end, with the Point.
int Go::checkCoincide (ParamSurfaceInt *surf1, ParamSurfaceInt *surf2, std::vector< double > &par_loop, const boost::shared_ptr< GeoTol > tol)
 by the parameter values of the intersection points representing it
template<class iterator>
boost::shared_ptr< IntersectionCurve > Go::constructIntersectionCurve (const iterator begin, const iterator end)
void Go::debug_write_line (const Point &p1, const Point &p2, const char *fname)
void Go::debug_write_point (const Point &p1, const char *fname)
bool Go::no_parent (const boost::shared_ptr< IntersectionPoint > &p)
IntersectionPoint * Go::flip_intersecting_objects (IntersectionPoint *p)
bool Go::link_is_iso_in (boost::shared_ptr< IntersectionLink > link, int dir)
bool Go::link_is_iso (boost::shared_ptr< IntersectionLink > link)
bool Go::link_is_iso_in_other_than (boost::shared_ptr< IntersectionLink > link, int dir)
template<class T1, class T2>
bool Go::compare_first (const std::pair< T1, T2 > &x, const std::pair< T1, T2 > &y)
void Go::add_reachables_from (const IntersectionPoint *pt, const IntersectionPoint *last_pt, std::set< IntersectionPoint * > &result)
void Go::estimate_seed_by_interpolation (const IntersectionPoint *p1, const IntersectionPoint *p2, int fixed_dir, double fixed_value, double *result)
void Go::determine_seed (double *par, int par_start, int par_end, const Point &pt, const IntersectionPoint *const ip1, const IntersectionPoint *const ip2)
int Go::find_point_in (IntersectionPoint *p, const std::vector< boost::shared_ptr< IntersectionPoint > > &vec)
boost::shared_ptr< const CurveOnSurface > Go::make_curve_on_surface (boost::shared_ptr< const ParamSurface > surf, double u_start, double v_start, double u_end, double v_end, double p_start, double p_end)
void Go::extract_chains (const std::vector< boost::shared_ptr< IntersectionPoint > > pts, std::vector< std::vector< boost::shared_ptr< IntersectionPoint > > > &chains)
template<class iterator>
static std::vector< int > Go::IsoparametricIntersectionCurve::resolve_isoparametric_directions (const iterator begin, const iterator end)
void Go::IntersectionPool::getIntersectionPoints (std::vector< boost::shared_ptr< IntersectionPoint > > &int_pts) const
 Fill the vector given as argument with shared pointers to all the IntersectionPoints in 'this' IntersectionPool.
void Go::IntersectionPool::getIntersectionCurves (std::vector< boost::shared_ptr< IntersectionCurve > > &int_curves) const
 Fill the argument vector with shared pointers to all the IntersectionCurves in 'this' IntersectionPool.
std::vector< boost::shared_ptr<
IntersectionPoint > > & 
Go::IntersectionPool::getIntersectionPoints ()
 Get a reference to the vector containing (shared pointers to) 'this' IntersectionPool's IntersectionPoints.
const std::vector< boost::shared_ptr<
IntersectionPoint > > & 
Go::IntersectionPool::getIntersectionPoints () const
 Get a reference to the vector containing (shared pointers to) 'this' IntersectionPools IntersectionPoint s.
const std::vector< boost::shared_ptr<
IntersectionCurve > > & 
Go::IntersectionPool::getIntersectionCurves () const
 Get a reference to the vector containing (shared pointers to) 'this' IntersectionPools IntersectionCurves.
template<class ip_iterator>
void Go::IntersectionPool::addCurves (int nmb_int_cvs, ip_iterator *start_iterators, ip_iterator *end_iterators)
 Add a number of IntersectionCurves to the pool by specifying iterators to the IntersectionPoint making up the curves.
template<class ip_iterator>
void Go::IntersectionPool::addCurve (ip_iterator start, ip_iterator end)
 Add one IntersectionCurve to the pool, by specifying a range of IntersectionPoints that make up the curve.
int Go::IntersectionPool::lackingParameter () const
 Get the index of the missing parameter (-1 if none missing).
double Go::IntersectionPool::lackingParameterValue () const
 Get value of missing parameter (if it exists).
double Go::LockedDirDistFunc::operator() (const double *arg) const
void Go::LockedDirDistFunc::grad (const double *arg, double *grad) const

Enumeration Type Documentation

enum Go::IntPtClassification

Enumeration used to classify the direction of an intersection curve passing through an intersection point with respect to surface boundaries.

Enumerator:
DIR_UNDEF  Not defined.
DIR_IN  Tangent of the intersection curve pointing into the domain.
DIR_OUT  Tangent of the intersection curve pointing out from the comain.
DIR_PARALLEL  Tangent of the intersection curve parallel to the domain.
DIR_PERPENDICULAR  Tangent of the intersection curve perpendicular to the domain.
DIR_HIGHLY_SINGULAR  No defined tangent.
DIR_TOUCH  Tangent touching the domain at a corner.

Definition at line 50 of file IntersectionPointUtils.h.

enum Go::IntPtLocation

Enumeration used to classify the location of an intersection point in the parameter domain of the object.

Enumerator:
LOC_OUTSIDE_BOTH  Point is outside domain for both objects.
LOC_INSIDE_BOTH  Point is inside domains (inner point) for both objects.
LOC_EDGE_ONE  Point is on the edge of at least one object.
LOC_CORNER_ONE  Point is on the corner of at least one object.
LOC_CORNER_BOTH  Point is on the corner of both objects.
LOC_EDGE_BOTH  Point is on the edge of both objects.

Definition at line 73 of file IntersectionPointUtils.h.

enum Go::LinkType

A classification of IntersectionLink objects.

The classification is strictly based on how it was made within the algorithm.

Enumerator:
LINK_UNDEFINED  0
SIMPLE_CONE  1
SIMPLE_MONOTONE  2
SIMPLE_IMPLICIT  3
SIMPLE_TWO_POINTS  4
COINCIDENCE_CVPT  5
COINCIDENCE_CVCV  6
COINCIDENCE_SFCV  7
COINCIDENCE_SFPT  8
MICRO_CVCV  9
MICRO_SFPT  10
MICRO_SFCV  11
MICRO_SFSF  12
MICRO_PAR1FUNC  13
MICRO_PAR2FUNC  14
LINEAR_CVCV  15
LINEAR_SFCV  16
LINEAR_SFSF  17
MERGED_UNDEFINED  18
MERGED_SIMPLE_CONE  19
MERGED_SIMPLE_MONOTONE  20
MERGED_SIMPLE_CONE_MONOTONE  21
MERGED_COINCIDENCE_SFCV_SFCV  22
DEG_TRIANGLE  23
POST_ITERATE  24
BRANCH_CONNECTION  25
COMPLEX_SFSF  26
SPLIT_LINK  27
REPAIRED_MISSING_LINK  28
INSIDE_OUTSIDE_SINGULARITY_BOX  29

Definition at line 46 of file LinkType.h.

enum Go::SingularityType

A classification of an IntersectionPoint, based on the nature of the intersection on which it lies.

Enumerator:
ORDINARY_POINT  IntersectionPoint lies on normal, transversal intersection.
TANGENTIAL_POINT  The two intersecting objects are tangent to each other at the location of this IntersectionPoint.
ISOLATED_POINT  This is an isolated IntersectionPoint (does not lie on an IntersectionCurve or on a partial coincidence area).
BRANCH_POINT  This is an IntersectionPoint where flere interection curves meet.
HIGHER_ORDER_POINT  The two objects intersecting at this point have same tangent plane AND curvature.

Definition at line 42 of file SingularityType.h.


Function Documentation

template<class ip_iterator>
void Go::IntersectionPool::addCurve ( ip_iterator  start,
ip_iterator  end 
) [inline, inherited]

Add one IntersectionCurve to the pool, by specifying a range of IntersectionPoints that make up the curve.

Parameters:
start iterator to the start of the range of IntersectionPoints.
end iterator to the end of the range of IntersectionPoints.

Definition at line 959 of file IntersectionPool.h.

Referenced by Go::IntersectionPool::addCurves().

template<class ip_iterator>
void Go::IntersectionPool::addCurves ( int  nmb_int_cvs,
ip_iterator *  start_iterators,
ip_iterator *  end_iterators 
) [inline, inherited]

Add a number of IntersectionCurves to the pool by specifying iterators to the IntersectionPoint making up the curves.

Parameters:
nmb_int_cvs number of curves to add
start_iterators pointer to a range of iterators to IntersectionPoint. The range should have length equal to the number of curves to add. Each iterator represents the start of a range of IntersectionPoints that defines an IntersectionCurve to add to the pool. (The corresponding end of the range is specified by the corresponding iterator in end_iterators.
end_iterators pointer to a range of iterators to IntersectionPoint. The range should have length equal to the number of curves to add. Each iterator represents the one-past-end of a range of IntersectionPoint s that defines an IntersectionCurve to add to the pool. (The corresponding start of the range is specified by the corresponding iterator in start_iterators)

Definition at line 946 of file IntersectionPool.h.

References Go::IntersectionPool::addCurve().

const std::vector< boost::shared_ptr< IntersectionCurve > > & Go::IntersectionPool::getIntersectionCurves (  )  const [inline, inherited]

Get a reference to the vector containing (shared pointers to) 'this' IntersectionPools IntersectionCurves.

Return values:
reference to vector of shared pointers to IntersectionCurves

Definition at line 937 of file IntersectionPool.h.

void Go::IntersectionPool::getIntersectionCurves ( std::vector< boost::shared_ptr< IntersectionCurve > > &  int_curves  )  const [inline, inherited]

Fill the argument vector with shared pointers to all the IntersectionCurves in 'this' IntersectionPool.

Parameters:
int_curves vector of shared pointers to all of the pool's IntersectionCurves.

Definition at line 909 of file IntersectionPool.h.

const std::vector< boost::shared_ptr< IntersectionPoint > > & Go::IntersectionPool::getIntersectionPoints (  )  const [inline, inherited]

Get a reference to the vector containing (shared pointers to) 'this' IntersectionPools IntersectionPoint s.

Return values:
reference to vector of shared pointers to IntersectionPoints

Definition at line 928 of file IntersectionPool.h.

std::vector< boost::shared_ptr< IntersectionPoint > > & Go::IntersectionPool::getIntersectionPoints (  )  [inline, inherited]

Get a reference to the vector containing (shared pointers to) 'this' IntersectionPool's IntersectionPoints.

Return values:
reference to vector of shared pointers to IntersectionPoints

Definition at line 919 of file IntersectionPool.h.

void Go::IntersectionPool::getIntersectionPoints ( std::vector< boost::shared_ptr< IntersectionPoint > > &  int_pts  )  const [inline, inherited]

Fill the vector given as argument with shared pointers to all the IntersectionPoints in 'this' IntersectionPool.

Return values:
int_pts vector of shared pointers to all of the pool's IntersectionPoints.

Definition at line 898 of file IntersectionPool.h.

int Go::IntersectionPool::lackingParameter (  )  const [inline, inherited]

Get the index of the missing parameter (-1 if none missing).

Returns:
the index of the missing parameter

Definition at line 969 of file IntersectionPool.h.

double Go::IntersectionPool::lackingParameterValue (  )  const [inline, inherited]

Get value of missing parameter (if it exists).

Returns:
value of the missing parameter

Definition at line 977 of file IntersectionPool.h.


Generated on Fri Nov 23 12:24:33 2007 for GoTools Intersections Library by  doxygen 1.5.1