Version: 6.5.0
Public Member Functions | Protected Member Functions | Friends | List of all members
INTERP_KERNEL::EdgeLin Class Reference
Inheritance diagram for INTERP_KERNEL::EdgeLin:
Inheritance graph
[legend]
Collaboration diagram for INTERP_KERNEL::EdgeLin:
Collaboration graph
[legend]

Public Member Functions

 EdgeLin (std::istream &lineInXfig)
 EdgeLin (Node *start, Node *end, bool direction=true)
 EdgeLin (double sX, double sY, double eX, double eY)
 ~EdgeLin ()
TypeOfFunction getTypeOfFunc () const
void dumpInXfigFile (std::ostream &stream, bool direction, int resolution, const Bounds &box) const
void update (Node *m)
double getNormSq () const
double getAreaOfZone () const
double getCurveLength () const
void getBarycenter (double *bary) const
void getBarycenterOfZone (double *bary) const
bool isIn (double characterVal) const
NodebuildRepresentantOfMySelf () const
double getCharactValue (const Node &node) const
double getCharactValueBtw0And1 (const Node &node) const
double getDistanceToPoint (const double *pt) const
bool isNodeLyingOn (const double *coordOfNode) const
bool isLower (double val1, double val2) const
double getCharactValueEng (const double *node) const
bool doIHaveSameDirectionAs (const Edge &other) const
void dynCastFunction (const EdgeLin *&seg, const EdgeArcCircle *&arcSeg) const
- Public Member Functions inherited from INTERP_KERNEL::Edge
 Edge (Node *start, Node *end, bool direction=true)
 Edge (double sX, double sY, double eX, double eY)
TypeOfEdgeLocInPolygon getLoc () const
void incrRef () const
bool decrRef ()
void initLocs () const
void declareOn () const
void declareIn () const
void declareOut () const
const Bounds & getBounds () const
void fillXfigStreamForLoc (std::ostream &stream) const
NodegetNode (TypeOfLocInEdge where) const
NodegetStartNode () const
NodegetEndNode () const
void setEndNodeWithoutChange (Node *newEnd)
void setStartNodeWithoutChange (Node *newStart)
bool changeStartNodeWith (Node *otherStartNode) const
bool changeStartNodeWithAndKeepTrack (Node *otherStartNode, std::vector< Node * > &track) const
bool changeEndNodeWith (Node *otherEndNode) const
bool changeEndNodeWithAndKeepTrack (Node *otherEndNode, std::vector< Node * > &track) const
void addSubEdgeInVector (Node *start, Node *end, ComposedEdge &vec) const
void getNormalVector (double *vectOutput) const
virtual void applySimilarity (double xBary, double yBary, double dimChar)
virtual void unApplySimilarity (double xBary, double yBary, double dimChar)
bool intersectWith (const Edge *other, MergePoints &commonNode, ComposedEdge &outVal1, ComposedEdge &outVal2) const
bool isEqual (const Edge &other) const
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)

Protected Member Functions

 EdgeLin ()
void updateBounds ()
EdgebuildEdgeLyingOnMe (Node *start, Node *end, bool direction) const
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
- 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 EdgeIntersectorBuildIntersectorWith (const Edge *e1, const Edge *e2)
static EdgeBuildFromXfigLine (std::istream &str)
static EdgeBuildEdgeFrom (Node *start, Node *end)
template<TypeOfMod4QuadEdge type>
static EdgeBuildEdgeFrom (Node *start, Node *middle, Node *end)
static bool IntersectOverlapped (const Edge *f1, const Edge *f2, EdgeIntersector *intersector, MergePoints &commonNode, ComposedEdge &outValForF1, ComposedEdge &outValForF2)
static void Interpolate1DLin (const std::vector< double > &distrib1, const std::vector< double > &distrib2, std::map< int, std::map< int, double > > &result)
- 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
unsigned char _cnt
TypeOfEdgeLocInPolygon _loc
Bounds _bounds
Node_start
Node_end
- 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::getNormSq ( ) const
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.

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
Copyright © 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS