Version: 8.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
INTERP_KERNEL::EdgeLin Class Reference
Inheritance diagram for INTERP_KERNEL::EdgeLin:
Collaboration diagram for INTERP_KERNEL::EdgeLin:

Public Member Functions

NodebuildRepresentantOfMySelf () 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 ()
 
- Public Member Functions inherited from INTERP_KERNEL::Edge
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::EdgeBuildEdgeFrom (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
 
NodegetEndNode () const
 
bool getHitStatus () const
 
TypeOfEdgeLocInPolygon getLoc () const
 
virtual void getMiddleOfPointsOriented (const double *p1, const double *p2, double *mid) const
 
NodegetNode (TypeOfLocInEdge where) const
 
void getNormalVector (double *vectOutput) const
 
NodegetStartNode () 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

EdgebuildEdgeLyingOnMe (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 ()
 
- Protected Member Functions inherited from INTERP_KERNEL::Edge
 Edge ()
 
virtual ~Edge ()
 

Friends

class SegSegIntersector
 

Additional Inherited Members

- Static Public Member Functions inherited from INTERP_KERNEL::Edge
static EdgeBuildEdgeFrom (Node *start, Node *end)
 
template<TypeOfMod4QuadEdge type>
static EdgeBuildEdgeFrom (Node *start, Node *middle, Node *end)
 
static EdgeBuildEdgeFrom3Points (const double *start, const double *middle, const double *end)
 
static EdgeBuildFromXfigLine (std::istream &str)
 
static EdgeIntersectorBuildIntersectorWith (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 Protected Member Functions inherited from INTERP_KERNEL::Edge
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)
 
- Protected Attributes inherited from INTERP_KERNEL::Edge
Bounds _bounds
 
unsigned char _cnt
 
Node_end
 
bool _hit
 
TypeOfEdgeLocInPolygon _loc
 
Node_start
 
- Static Protected Attributes inherited from INTERP_KERNEL::Edge
static const int OFFSET_FOR_TYPEOFLOCINEDGE = 8
 

Constructor & Destructor Documentation

EdgeLin::EdgeLin ( std::istream &  lineInXfig)
EdgeLin::EdgeLin ( Node start,
Node end,
bool  direction = true 
)

References updateBounds().

EdgeLin::EdgeLin ( double  sX,
double  sY,
double  eX,
double  eY 
)

References updateBounds().

EdgeLin::~EdgeLin ( )
INTERP_KERNEL::EdgeLin::EdgeLin ( )
protected

Referenced by buildEdgeLyingOnMe().

Member Function Documentation

TypeOfFunction INTERP_KERNEL::EdgeLin::getTypeOfFunc ( ) const
virtual

Implements INTERP_KERNEL::Edge.

References INTERP_KERNEL::SEG.

void EdgeLin::dumpInXfigFile ( std::ostream &  stream,
bool  direction,
int  resolution,
const Bounds &  box 
) const
virtual
void EdgeLin::update ( Node m)
virtual

Implements INTERP_KERNEL::Edge.

References updateBounds().

double EdgeLin::getAreaOfZone ( ) const
virtual

This methods computes :

\[ \int_{Current Edge} -ydx \]

Implements INTERP_KERNEL::Edge.

References INTERP_KERNEL::Edge::_end, and INTERP_KERNEL::Edge::_start.

double EdgeLin::getCurveLength ( ) const
virtual

return the length of arc. Value is always > 0. !

Implements INTERP_KERNEL::Edge.

Referenced by INTERP_KERNEL::Edge::Interpolate1DLin().

void EdgeLin::getBarycenter ( double *  bary) const
virtual

Implements INTERP_KERNEL::Edge.

void EdgeLin::getBarycenterOfZone ( double *  bary) const
virtual

\[ bary[0]=\int_{Current Edge} -yxdx \]

\[ bary[1]=\int_{Current Edge} -\frac{y^{2}}{2}dx \]

To compute these 2 expressions in this class we have :

\[ y=y_{1}+\frac{y_{2}-y_{1}}{x_{2}-x_{1}}(x-x_{1}) \]

Implements INTERP_KERNEL::Edge.

void EdgeLin::getMiddleOfPoints ( const double *  p1,
const double *  p2,
double *  mid 
) const
virtual

Here this is not used (contrary to EdgeArcCircle class).

Implements INTERP_KERNEL::Edge.

bool EdgeLin::isIn ( double  characterVal) const
virtual

Characteristic for edges is relative position btw 0.;1.

Implements INTERP_KERNEL::Edge.

Node * EdgeLin::buildRepresentantOfMySelf ( ) const
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.

double EdgeLin::getCharactValue ( const Node node) const
virtual

node is expected to lay on 'this'. It returns a characteristic magnitude usable by isIn method.

Implements INTERP_KERNEL::Edge.

References getCharactValueEng().

double EdgeLin::getCharactValueBtw0And1 ( const Node node) const
virtual

node is expected to lay on 'this'. It returns a characteristic magnitude between 0 and 1.

Implements INTERP_KERNEL::Edge.

References getCharactValueEng().

double EdgeLin::getDistanceToPoint ( const double *  pt) const
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().

bool EdgeLin::isNodeLyingOn ( const double *  coordOfNode) const
virtual
bool INTERP_KERNEL::EdgeLin::isLower ( double  val1,
double  val2 
) const
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
bool INTERP_KERNEL::EdgeLin::doIHaveSameDirectionAs ( const Edge other) const
void INTERP_KERNEL::EdgeLin::dynCastFunction ( const EdgeLin *&  seg,
const EdgeArcCircle *&  arcSeg 
) const
virtual

Implements INTERP_KERNEL::Edge.

void EdgeLin::updateBounds ( )
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.

Referenced by EdgeLin(), and update().

Edge * EdgeLin::buildEdgeLyingOnMe ( Node start,
Node end,
bool  direction 
) const
protectedvirtual

Implements INTERP_KERNEL::Edge.

References EdgeLin().

void EdgeLin::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
protectedvirtual
void EdgeLin::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
protectedvirtual

Friends And Related Function Documentation

friend class SegSegIntersector
friend