Public Member Functions | |
ArcCSegIntersector (const EdgeArcCircle &e1, const EdgeLin &e2, bool reverse=true) | |
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 |
ArcCSegIntersector::ArcCSegIntersector | ( | const EdgeArcCircle & | e1, | |
const EdgeLin & | e2, | |||
bool | reverse = true | |||
) |
void ArcCSegIntersector::getPlacements | ( | Node * | start, | |
Node * | end, | |||
TypeOfLocInEdge & | whereStart, | |||
TypeOfLocInEdge & | whereEnd, | |||
MergePoints & | commonNode | |||
) | const [virtual] |
to call only if 'areOverlapped' have been set to true when areOverlappedOrOnlyColinears was called
Implements INTERP_KERNEL::EdgeIntersector.
void ArcCSegIntersector::areOverlappedOrOnlyColinears | ( | const Bounds * | whereToFind, | |
bool & | obviousNoIntersection, | |||
bool & | areOverlapped | |||
) | [virtual] |
Should be called only once per association.
Implements INTERP_KERNEL::EdgeIntersector.
References INTERP_KERNEL::EdgeIntersector::_e2, INTERP_KERNEL::EdgeArcCircle::getCenter(), INTERP_KERNEL::Edge::getEndNode(), INTERP_KERNEL::EdgeArcCircle::getRadius(), and INTERP_KERNEL::Edge::getStartNode().
std::list< IntersectElement > ArcCSegIntersector::getIntersectionsCharacteristicVal | ( | ) | const [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::Node::declareOn(), INTERP_KERNEL::Node::declareOnTangent(), INTERP_KERNEL::EdgeArcCircle::getCenter(), INTERP_KERNEL::Edge::getCharactValue(), INTERP_KERNEL::Edge::getEndNode(), INTERP_KERNEL::Edge::getStartNode(), INTERP_KERNEL::EdgeIntersector::intersect(), INTERP_KERNEL::Node::isEqual(), INTERP_KERNEL::CrossTypeEdgeIntersector::keepOrder(), INTERP_KERNEL::EdgeArcCircle::safeSqrt(), and INTERP_KERNEL::Node::sign().