Version: 6.5.0
Public Member Functions | Friends | List of all members
INTERP_KERNEL::SegSegIntersector Class Reference
Inheritance diagram for INTERP_KERNEL::SegSegIntersector:
Inheritance graph
[legend]
Collaboration diagram for INTERP_KERNEL::SegSegIntersector:
Collaboration graph
[legend]

Public Member Functions

 SegSegIntersector (const EdgeLin &e1, const EdgeLin &e2)
bool areColinears () const
bool haveTheySameDirection () const
void getPlacements (Node *start, Node *end, TypeOfLocInEdge &whereStart, TypeOfLocInEdge &whereEnd, MergePoints &commonNode) const
void areOverlappedOrOnlyColinears (const Bounds *whereToFind, bool &obviousNoIntersection, bool &areOverlapped)
std::list< IntersectElementgetIntersectionsCharacteristicVal () const

Friends

class Edge

Additional Inherited Members

- Private Member Functions inherited from INTERP_KERNEL::EdgeIntersector
virtual ~EdgeIntersector ()
virtual bool haveTheySameDirection () const =0
virtual void getPlacements (Node *start, Node *end, TypeOfLocInEdge &whereStart, TypeOfLocInEdge &whereEnd, MergePoints &commonNode) const =0
bool intersect (const Bounds *whereToFind, std::vector< Node * > &newNodes, bool &order, MergePoints &commonNode)
virtual void areOverlappedOrOnlyColinears (const Bounds *whereToFind, bool &obviousNoIntersection, bool &areOverlapped)=0
virtual std::list
< IntersectElement
getIntersectionsCharacteristicVal () const =0

Constructor & Destructor Documentation

SegSegIntersector::SegSegIntersector ( const EdgeLin e1,
const EdgeLin e2 
)

Member Function Documentation

bool SegSegIntersector::areColinears ( ) const

retrieves if segs are colinears. WARNING !!! Contrary to areOverlappedOrOnlyColinears method, this method use an another precision to detect colinearity !

Referenced by INTERP_KERNEL::QuadraticPolygon::appendEdgeFromCrudeDataArray(), INTERP_KERNEL::QuadraticPolygon::BuildArcCirclePolygon(), and INTERP_KERNEL::EdgeArcCircle::BuildFromNodes().

bool SegSegIntersector::haveTheySameDirection ( ) const

Must be called when 'this' and 'other' have been detected to be at least colinear. Typically they are overlapped. Must be called after call of areOverlappedOrOnlyColinears.

void SegSegIntersector::getPlacements ( Node start,
Node end,
TypeOfLocInEdge whereStart,
TypeOfLocInEdge whereEnd,
MergePoints commonNode 
) const

Precondition start and end must be so that there predecessor was in the same direction than 'e1'

void SegSegIntersector::areOverlappedOrOnlyColinears ( const Bounds *  whereToFind,
bool &  colinearity,
bool &  areOverlapped 
)

Should be called once ! non const method.

Parameters
whereToFindspecifies the box where final seek should be done. Essentially it is used for caracteristic reason.
colinearityreturns if regarding QUADRATIC_PLANAR::_precision ; e1 and e2 are colinears If true 'this' is modified ! So this method be called once above all if true is returned for this parameter.
areOverlappedif colinearity if true, this parameter looks if e1 and e2 are overlapped.

References INTERP_KERNEL::EdgeIntersector::_e1, INTERP_KERNEL::EdgeIntersector::_e2, and INTERP_KERNEL::Edge::getStartNode().

Referenced by INTERP_KERNEL::Edge::Interpolate1DLin().

std::list< IntersectElement > SegSegIntersector::getIntersectionsCharacteristicVal ( ) const

Friends And Related Function Documentation

friend class Edge
friend
Copyright © 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS