Version: 8.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
INTERP_KERNEL::SegSegIntersector Class Reference
Inheritance diagram for INTERP_KERNEL::SegSegIntersector:
Collaboration diagram for INTERP_KERNEL::SegSegIntersector:

Public Member Functions

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

Friends

class Edge
 

Additional Inherited Members

- Private Member Functions inherited from INTERP_KERNEL::EdgeIntersector
bool intersect (const Bounds *whereToFind, std::vector< Node * > &newNodes, bool &order, MergePoints &commonNode)
 
virtual ~EdgeIntersector ()
 

Constructor & Destructor Documentation

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

Member Function Documentation

bool SegSegIntersector::areColinears ( ) const
virtual

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

Implements INTERP_KERNEL::EdgeIntersector.

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

bool SegSegIntersector::haveTheySameDirection ( ) const
virtual

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.

Implements INTERP_KERNEL::EdgeIntersector.

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

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

Implements INTERP_KERNEL::EdgeIntersector.

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

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.

Implements INTERP_KERNEL::EdgeIntersector.

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
virtual

Friends And Related Function Documentation

friend class Edge
friend