Med Memory Users' Guide 5.1.3
|
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< IntersectElement > | getIntersectionsCharacteristicVal () const |
Friends | |
class | Edge |
References INTERP_KERNEL::Edge::getEndNode(), and INTERP_KERNEL::Edge::getStartNode().
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::buildArcCirclePolygon().
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.
whereToFind | specifies the box where final seek should be done. Essentially it is used for caracteristic reason. |
colinearity | returns 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. |
areOverlapped | if 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] |
areColinears method should be called before with a returned colinearity equal to false to avoid bad news.
Implements INTERP_KERNEL::EdgeIntersector.
References INTERP_KERNEL::EdgeIntersector::_e1, INTERP_KERNEL::EdgeIntersector::_e2, INTERP_KERNEL::Node::declareOn(), INTERP_KERNEL::Edge::getCharactValue(), INTERP_KERNEL::Edge::getEndNode(), INTERP_KERNEL::Edge::getStartNode(), INTERP_KERNEL::Node::isEqual(), and INTERP_KERNEL::SameTypeEdgeIntersector::keepOrder().
friend class Edge [friend] |