

Public Member Functions | |
| bool | areColinears () const |
| void | areOverlappedOrOnlyColinears (bool &obviousNoIntersection, bool &areOverlapped) |
| std::list< IntersectElement > | getIntersectionsCharacteristicVal () 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 |
References INTERP_KERNEL::Edge::getEndNode(), and INTERP_KERNEL::Edge::getStartNode().
|
virtual |
Retrieves if segs are colinears. Same philosophy as in other intersectors: we use epsilon as an absolute distance. If one puts the two vectors starting at the origin, determinant/dimChar is a close representative of the absolute distance between the tip of one vector to the other vector.
Implements INTERP_KERNEL::EdgeIntersector.
References INTERP_KERNEL::EdgeIntersector::_e1, INTERP_KERNEL::EdgeIntersector::_e2, and INTERP_KERNEL::Edge::getBounds().
Referenced by INTERP_KERNEL::QuadraticPolygon::appendEdgeFromCrudeDataArray(), MEDCoupling::DataArrayDouble::asArcOfCircle(), INTERP_KERNEL::QuadraticPolygon::BuildArcCircleEdge(), INTERP_KERNEL::QuadraticPolygon::BuildArcCirclePolygon(), INTERP_KERNEL::Edge::BuildEdgeFrom3Points(), and INTERP_KERNEL::EdgeArcCircle::BuildFromNodes().
|
virtual |
Must be called when 'this' and 'other' have been detected to be at least colinear. Typically they are overlapped.
Implements INTERP_KERNEL::EdgeIntersector.
|
virtual |
Precondition start and end must be so that there predecessor was in the same direction than 'e1'
Implements INTERP_KERNEL::EdgeIntersector.
|
virtual |
Should be called once ! non const method.
| obviousNoIntersection | set to true if it is obvious that there is no intersection |
| areOverlapped | if the two segs are colinears, this parameter looks if e1 and e2 are overlapped, i.e. is they lie on the same line (= this is different from a true intersection, two segments can be in "overlap" mode, without intersecting) |
Implements INTERP_KERNEL::EdgeIntersector.
References INTERP_KERNEL::EdgeIntersector::_e1, INTERP_KERNEL::EdgeIntersector::_e2, INTERP_KERNEL::Edge::getBounds(), INTERP_KERNEL::Edge::getEndNode(), INTERP_KERNEL::Edge::getStartNode(), and INTERP_KERNEL::EdgeIntersector::identifyEarlyIntersection().
Referenced by INTERP_KERNEL::Edge::Interpolate1DLin().
|
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::EdgeIntersector::_earlyInter, 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 |