#include <InterpKernelGeo2DEdgeLin.hxx>

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 |
Private Member Functions | |
| void | getCurveAbscisse (Node *node, TypeOfLocInEdge &where, MergePoints &commonNode) const |
Private Attributes | |
| int | _ind |
| index on which all single index op will be performed. Filled in case colinearity is equal to true. | |
| double | _col [2] |
| double | _matrix [4] |
Friends | |
| class | Edge |
| bool SegSegIntersector::areColinears | ( | ) | const |
retrieves if segs are colinears. WARNING !!! Contrary to areOverlappedOrOnlyColinears method, this method use an another precision to detect colinearity !
References INTERP_KERNEL.QUADRATIC_PLANAR._arc_detection_precision, INTERP_KERNEL.SegSegIntersector._matrix, and INTERP_KERNEL.determinant().
| 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.
References INTERP_KERNEL.SegSegIntersector._matrix.
| 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.
References INTERP_KERNEL.SegSegIntersector.getCurveAbscisse().
| 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, INTERP_KERNEL.SegSegIntersector._matrix, INTERP_KERNEL.QUADRATIC_PLANAR._precision, INTERP_KERNEL.determinant(), and INTERP_KERNEL.Edge.getStartNode().
| 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.SegSegIntersector._col, INTERP_KERNEL.EdgeIntersector._e1, INTERP_KERNEL.EdgeIntersector._e2, INTERP_KERNEL.SegSegIntersector._matrix, INTERP_KERNEL.Node.declareOn(), INTERP_KERNEL.Edge.getCharactValue(), INTERP_KERNEL.Edge.getEndNode(), INTERP_KERNEL.Edge.getStartNode(), INTERP_KERNEL.Node.isEqual(), INTERP_KERNEL.SameTypeEdgeIntersector.keepOrder(), and testMEDMEM.ret.
| void SegSegIntersector::getCurveAbscisse | ( | Node * | node, |
| TypeOfLocInEdge & | where, | ||
| MergePoints & | commonNode | ||
| ) | const [private] |
References INTERP_KERNEL.EdgeIntersector._e1, INTERP_KERNEL.SegSegIntersector._ind, INTERP_KERNEL.Edge.getEndNode(), INTERP_KERNEL.Edge.getStartNode(), INTERP_KERNEL.INSIDE, INTERP_KERNEL.EdgeIntersector.obviousCaseForCurvAbscisse(), INTERP_KERNEL.OUT_AFTER, INTERP_KERNEL.OUT_BEFORE, and testMEDMEM.ret.
friend class Edge [friend] |
int INTERP_KERNEL.SegSegIntersector._ind [private] |
index on which all single index op will be performed. Filled in case colinearity is equal to true.
double INTERP_KERNEL.SegSegIntersector._col[2] [private] |
double INTERP_KERNEL.SegSegIntersector._matrix[4] [private] |