Public Member Functions | |
Node * | buildRepresentantOfMySelf () const |
bool | doIHaveSameDirectionAs (const Edge &other) const |
void | dumpInXfigFile (std::ostream &stream, bool direction, int resolution, const Bounds &box) const |
void | dynCastFunction (const EdgeLin *&seg, const EdgeArcCircle *&arcSeg) const |
EdgeLin (std::istream &lineInXfig) | |
EdgeLin (Node *start, Node *end, bool direction=true) | |
EdgeLin (double sX, double sY, double eX, double eY) | |
double | getAreaOfZone () const |
void | getBarycenter (double *bary) const |
void | getBarycenterOfZone (double *bary) const |
double | getCharactValue (const Node &node) const |
double | getCharactValueBtw0And1 (const Node &node) const |
double | getCharactValueEng (const double *node) const |
double | getCurveLength () const |
double | getDistanceToPoint (const double *pt) const |
void | getMiddleOfPoints (const double *p1, const double *p2, double *mid) const |
double | getNormSq () const |
TypeOfFunction | getTypeOfFunc () const |
bool | isIn (double characterVal) const |
bool | isLower (double val1, double val2) const |
bool | isNodeLyingOn (const double *coordOfNode) const |
void | update (Node *m) |
~EdgeLin () | |
![]() | |
void | addSubEdgeInVector (Node *start, Node *end, ComposedEdge &vec) const |
virtual void | applySimilarity (double xBary, double yBary, double dimChar) |
template<INTERP_KERNEL::TypeOfMod4QuadEdge type> | |
INTERP_KERNEL::Edge * | BuildEdgeFrom (Node *start, Node *middle, Node *end) |
bool | changeEndNodeWith (Node *otherEndNode) const |
bool | changeEndNodeWithAndKeepTrack (Node *otherEndNode, std::vector< Node * > &track) const |
bool | changeStartNodeWith (Node *otherStartNode) const |
bool | changeStartNodeWithAndKeepTrack (Node *otherStartNode, std::vector< Node * > &track) const |
void | declareIn () const |
void | declareOn () const |
void | declareOut () const |
bool | decrRef () |
Edge (Node *start, Node *end, bool direction=true) | |
Edge (double sX, double sY, double eX, double eY) | |
void | fillXfigStreamForLoc (std::ostream &stream) const |
const Bounds & | getBounds () const |
Node * | getEndNode () const |
bool | getHitStatus () const |
TypeOfEdgeLocInPolygon | getLoc () const |
virtual void | getMiddleOfPointsOriented (const double *p1, const double *p2, double *mid) const |
Node * | getNode (TypeOfLocInEdge where) const |
void | getNormalVector (double *vectOutput) const |
Node * | getStartNode () const |
void | hitMeAfter (double xBary, double yBary, double dimChar) |
void | hitMeAlone (double xBary, double yBary, double dimChar) |
void | incrRef () const |
void | initHitStatus () const |
void | initLocs () const |
bool | intersectWith (const Edge *other, MergePoints &commonNode, ComposedEdge &outVal1, ComposedEdge &outVal2) const |
bool | isEqual (const Edge &other) const |
void | setEndNodeWithoutChange (Node *newEnd) |
void | setStartNodeWithoutChange (Node *newStart) |
void | sortIdsAbs (const std::vector< INTERP_KERNEL::Node * > &addNodes, const std::map< INTERP_KERNEL::Node *, int > &mapp1, const std::map< INTERP_KERNEL::Node *, int > &mapp2, std::vector< int > &edgesThis) |
bool | sortSubNodesAbs (const double *coo, std::vector< int > &subNodes) |
virtual void | unApplySimilarity (double xBary, double yBary, double dimChar) |
void | unHitMeAfter (double xBary, double yBary, double dimChar) |
void | unHitMeAlone (double xBary, double yBary, double dimChar) |
Protected Member Functions | |
Edge * | buildEdgeLyingOnMe (Node *start, Node *end, bool direction) const |
EdgeLin () | |
void | fillGlobalInfoAbs (bool direction, const std::map< INTERP_KERNEL::Node *, int > &mapThis, const std::map< INTERP_KERNEL::Node *, int > &mapOther, int offset1, int offset2, double fact, double baryX, double baryY, std::vector< int > &edgesThis, std::vector< double > &addCoo, std::map< INTERP_KERNEL::Node *, int > mapAddCoo) const |
void | fillGlobalInfoAbs2 (const std::map< INTERP_KERNEL::Node *, int > &mapThis, const std::map< INTERP_KERNEL::Node *, int > &mapOther, int offset1, int offset2, double fact, double baryX, double baryY, std::vector< int > &edgesOther, std::vector< double > &addCoo, std::map< INTERP_KERNEL::Node *, int > &mapAddCoo) const |
void | updateBounds () |
![]() | |
Edge () | |
virtual | ~Edge () |
Friends | |
class | SegSegIntersector |
Additional Inherited Members | |
![]() | |
static Edge * | BuildEdgeFrom (Node *start, Node *end) |
template<TypeOfMod4QuadEdge type> | |
static Edge * | BuildEdgeFrom (Node *start, Node *middle, Node *end) |
static Edge * | BuildEdgeFrom3Points (const double *start, const double *middle, const double *end) |
static Edge * | BuildFromXfigLine (std::istream &str) |
static EdgeIntersector * | BuildIntersectorWith (const Edge *e1, const Edge *e2) |
static void | Interpolate1DLin (const std::vector< double > &distrib1, const std::vector< double > &distrib2, std::map< int, std::map< int, double > > &result) |
static bool | IntersectOverlapped (const Edge *f1, const Edge *f2, EdgeIntersector *intersector, MergePoints &commonNode, ComposedEdge &outValForF1, ComposedEdge &outValForF2) |
![]() | |
static int | CombineCodes (TypeOfLocInEdge code1, TypeOfLocInEdge code2) |
static bool | Intersect (const Edge *f1, const Edge *f2, EdgeIntersector *intersector, const Bounds *whereToFind, MergePoints &commonNode, ComposedEdge &outValForF1, ComposedEdge &outValForF2) |
static bool | SplitOverlappedEdges (const Edge *e1, const Edge *e2, Node *nS, Node *nE, bool direction, int code, ComposedEdge &outVal1, ComposedEdge &outVal2) |
![]() | |
Bounds | _bounds |
unsigned char | _cnt |
Node * | _end |
bool | _hit |
TypeOfEdgeLocInPolygon | _loc |
Node * | _start |
![]() | |
static const int | OFFSET_FOR_TYPEOFLOCINEDGE = 8 |
EdgeLin::EdgeLin | ( | std::istream & | lineInXfig | ) |
References updateBounds().
EdgeLin::EdgeLin | ( | double | sX, |
double | sY, | ||
double | eX, | ||
double | eY | ||
) |
References updateBounds().
EdgeLin::~EdgeLin | ( | ) |
|
protected |
Referenced by buildEdgeLyingOnMe().
|
virtual |
Implements INTERP_KERNEL::Edge.
References INTERP_KERNEL::SEG.
|
virtual |
|
virtual |
Implements INTERP_KERNEL::Edge.
References updateBounds().
double EdgeLin::getNormSq | ( | ) | const |
|
virtual |
This methods computes :
Implements INTERP_KERNEL::Edge.
References INTERP_KERNEL::Edge::_end, and INTERP_KERNEL::Edge::_start.
|
virtual |
return the length of arc. Value is always > 0. !
Implements INTERP_KERNEL::Edge.
Referenced by INTERP_KERNEL::Edge::Interpolate1DLin().
|
virtual |
Implements INTERP_KERNEL::Edge.
|
virtual |
|
virtual |
Here this is not used (contrary to EdgeArcCircle class).
Implements INTERP_KERNEL::Edge.
|
virtual |
Characteristic for edges is relative position btw 0.;1.
Implements INTERP_KERNEL::Edge.
|
virtual |
Retrieves a point that is owning to this, well placed for IN/OUT detection of this. Typically midlle of this is returned.
Implements INTERP_KERNEL::Edge.
References INTERP_KERNEL::Edge::_end, and INTERP_KERNEL::Edge::_start.
|
virtual |
node is expected to lay on 'this'. It returns a characteristic magnitude usable by isIn method.
Implements INTERP_KERNEL::Edge.
References getCharactValueEng().
|
virtual |
node is expected to lay on 'this'. It returns a characteristic magnitude between 0 and 1.
Implements INTERP_KERNEL::Edge.
References getCharactValueEng().
|
virtual |
retrieves the distance to this : The min distance from pt and any point of this.
Implements INTERP_KERNEL::Edge.
References INTERP_KERNEL::Edge::_end, INTERP_KERNEL::Edge::_start, INTERP_KERNEL::Node::distanceBtw2Pt(), and getCharactValueEng().
|
virtual |
return if node with coords 'coordOfNode' is on this (with precision).
Implements INTERP_KERNEL::Edge.
References INTERP_KERNEL::Edge::_end, INTERP_KERNEL::Edge::_start, INTERP_KERNEL::Node::areDoubleEquals(), INTERP_KERNEL::Node::distanceBtw2Pt(), and INTERP_KERNEL::Node::distanceWithSq().
|
virtual |
With the same magnitude as defined in 'isIn' method perform a compararison. Precondition : val1 and val2 are different and exactly INSIDE this.
Implements INTERP_KERNEL::Edge.
double EdgeLin::getCharactValueEng | ( | const double * | node | ) | const |
References INTERP_KERNEL::Edge::_end, and INTERP_KERNEL::Edge::_start.
Referenced by getCharactValue(), getCharactValueBtw0And1(), and getDistanceToPoint().
bool INTERP_KERNEL::EdgeLin::doIHaveSameDirectionAs | ( | const Edge & | other | ) | const |
|
virtual |
Implements INTERP_KERNEL::Edge.
|
protected |
No precision should be introduced here. Just think as if precision was perfect.
References INTERP_KERNEL::Edge::_bounds, INTERP_KERNEL::Edge::_end, and INTERP_KERNEL::Edge::_start.
|
protectedvirtual |
Implements INTERP_KERNEL::Edge.
References EdgeLin().
|
protectedvirtual |
Implements INTERP_KERNEL::Edge.
References INTERP_KERNEL::Edge::_end, INTERP_KERNEL::Edge::_start, and INTERP_KERNEL::Node::fillGlobalInfoAbs().
|
protectedvirtual |
Implements INTERP_KERNEL::Edge.
References INTERP_KERNEL::Edge::_end, INTERP_KERNEL::Edge::_start, and INTERP_KERNEL::Node::fillGlobalInfoAbs2().
|
friend |