

Public Member Functions | |
| ArcCSegIntersector (const EdgeArcCircle &e1, const EdgeLin &e2, bool reverse=true) | |
| 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 |
Public Member Functions inherited from INTERP_KERNEL::EdgeIntersector | |
| bool | intersect (std::vector< Node * > &newNodes, bool &order, MergePoints &commonNode) |
| virtual | ~EdgeIntersector () |
Additional Inherited Members | |
Protected Member Functions inherited from INTERP_KERNEL::CrossTypeEdgeIntersector | |
| CrossTypeEdgeIntersector (const Edge &e1, const Edge &e2, bool reverse) | |
| bool | haveTheySameDirection () const |
| bool | keepOrder () const |
| const Edge * | myE1 () |
| const Edge * | myE2 () |
Protected Member Functions inherited from INTERP_KERNEL::EdgeIntersector | |
| EdgeIntersector (const Edge &e1, const Edge &e2) | |
| virtual void | identifyEarlyIntersection (bool &, bool &, bool &, bool &) |
| void | obviousCaseForCurvAbscisse (Node *node, TypeOfLocInEdge &where, MergePoints &commonNode, bool &obvious) const |
Protected Attributes inherited from INTERP_KERNEL::CrossTypeEdgeIntersector | |
| bool | _reverse |
Protected Attributes inherited from INTERP_KERNEL::EdgeIntersector | |
| const Edge & | _e1 |
| const Edge & | _e2 |
| IntersectElement * | _earlyInter |
Cross-type intersector: edge1 is the arc of circle, edge2 is the segment.
| ArcCSegIntersector::ArcCSegIntersector | ( | const EdgeArcCircle & | e1, |
| const EdgeLin & | e2, | ||
| bool | reverse = true |
||
| ) |
|
virtual |
By construction, no chance that an arc of circle and line to be colinear.
Implements INTERP_KERNEL::EdgeIntersector.
|
virtual |
to call only if 'areOverlapped' have been set to true when areOverlappedOrOnlyColinears was called
Implements INTERP_KERNEL::EdgeIntersector.
|
virtual |
See http://mathworld.wolfram.com/Circle-LineIntersection.html _cross is 'D', the computation is done with the translation to put back the circle at the origin
Implements INTERP_KERNEL::EdgeIntersector.
References INTERP_KERNEL::EdgeArcCircle::getRadius(), INTERP_KERNEL::EdgeIntersector::identifyEarlyIntersection(), and INTERP_KERNEL::Node::sign().
|
virtual |
The size of returned vector is equal to number of potential intersections point. The values are so that their are interpretable by virtual Edge::isIn method.
Implements INTERP_KERNEL::EdgeIntersector.
References INTERP_KERNEL::EdgeIntersector::_e1, INTERP_KERNEL::EdgeIntersector::_e2, INTERP_KERNEL::EdgeIntersector::_earlyInter, INTERP_KERNEL::Node::declareOn(), INTERP_KERNEL::Node::declareOnTangent(), INTERP_KERNEL::Node::decrRef(), INTERP_KERNEL::EdgeArcCircle::getCenter(), INTERP_KERNEL::Edge::getCharactValue(), INTERP_KERNEL::Edge::getEndNode(), INTERP_KERNEL::IntersectElement::getNodeOnly(), INTERP_KERNEL::Edge::getStartNode(), INTERP_KERNEL::Node::isEqual(), INTERP_KERNEL::CrossTypeEdgeIntersector::keepOrder(), and INTERP_KERNEL::Node::sign().