

Public Member Functions | |
| ArcCArcCIntersector (const EdgeArcCircle &e1, const EdgeArcCircle &e2) | |
| 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 |
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::SameTypeEdgeIntersector | |
| bool | keepOrder () const |
| SameTypeEdgeIntersector (const Edge &e1, const Edge &e2) | |
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::EdgeIntersector | |
| const Edge & | _e1 |
| const Edge & | _e2 |
| IntersectElement * | _earlyInter |
| ArcCArcCIntersector::ArcCArcCIntersector | ( | const EdgeArcCircle & | e1, |
| const EdgeArcCircle & | e2 | ||
| ) |
|
virtual |
to call only if 'areOverlapped' have been set to true when areOverlappedOrOnlyColinears was called
Implements INTERP_KERNEL::EdgeIntersector.
References INTERP_KERNEL::EdgeArcCircle::getAngle().
|
virtual |
Implements INTERP_KERNEL::EdgeIntersector.
|
virtual |
Precondition 'start' and 'end' are on the same curve than this.
Implements INTERP_KERNEL::EdgeIntersector.
References INTERP_KERNEL::INSIDE, INTERP_KERNEL::EdgeArcCircle::IsIn2Pi(), INTERP_KERNEL::EdgeIntersector::obviousCaseForCurvAbscisse(), INTERP_KERNEL::OUT_AFTER, and INTERP_KERNEL::OUT_BEFORE.
|
virtual |
Should be called only once per association.
Implements INTERP_KERNEL::EdgeIntersector.
References INTERP_KERNEL::Node::distanceBtw2Pt(), and INTERP_KERNEL::EdgeArcCircle::getRadius().
|
virtual |
Heart of the algorithm for arc/arc intersection. See http://mathworld.wolfram.com/Circle-CircleIntersection.html The computation is done in the coordinate system where Ox is the line between the 2 circle centers.
Implements INTERP_KERNEL::EdgeIntersector.
References INTERP_KERNEL::EdgeIntersector::_e1, INTERP_KERNEL::EdgeIntersector::_e2, INTERP_KERNEL::Node::areDoubleEquals(), INTERP_KERNEL::Node::areDoubleEqualsWPLeft(), INTERP_KERNEL::Node::declareOn(), INTERP_KERNEL::Node::declareOnTangent(), INTERP_KERNEL::EdgeArcCircle::GetAbsoluteAngleOfNormalizedVect(), INTERP_KERNEL::EdgeArcCircle::getCenter(), INTERP_KERNEL::EdgeArcCircle::getRadius(), INTERP_KERNEL::SameTypeEdgeIntersector::keepOrder(), INTERP_KERNEL::EdgeArcCircle::NormalizeAngle(), and INTERP_KERNEL::EdgeArcCircle::SafeSqrt().