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

Public Member Functions

 ComposedEdge ()
 ComposedEdge (const ComposedEdge &other)
 ComposedEdge (int sz)
void reverse ()
int recursiveSize () const
bool presenceOfOn () const
bool presenceOfQuadraticEdge () const
void initLocations () const
ComposedEdgeclone () const
bool isNodeIn (Node *n) const
double getArea () const
double getPerimeter () const
double getHydraulicDiameter () const
void getBarycenter (double *bary) const
void getBarycenterGeneral (double *bary) const
double normalize (ComposedEdge *other, double &xBary, double &yBary)
double normalizeExt (ComposedEdge *other, double &xBary, double &yBary)
void unApplyGlobalSimilarityExt (ComposedEdge &other, double xBary, double yBary, double fact)
void fillBounds (Bounds &output) const
void applySimilarity (double xBary, double yBary, double dimChar)
void applyGlobalSimilarity (double xBary, double yBary, double dimChar)
void applyGlobalSimilarity2 (ComposedEdge *other, double xBary, double yBary, double dimChar)
void dispatchPerimeter (double &partConsidered) const
void dispatchPerimeterExcl (double &partConsidered, double &commonPart) const
double dispatchPerimeterAdv (const ComposedEdge &father, std::vector< double > &result) const
void getAllNodes (std::set< Node * > &output) const
void getBarycenter (double *bary, double &weigh) const
bool completed () const
void setValueAt (int i, Edge *e, bool direction=true)
double getCommonLengthWith (const ComposedEdge &other) const
void clear ()
bool empty () const
ElementaryEdgefront () const
ElementaryEdgeback () const
void resize (int i)
void pushBack (Edge *edge, bool direction=true)
void pushBack (ElementaryEdge *elem)
void pushBack (ComposedEdge *elem)
int size () const
ElementaryEdgeoperator[] (int i) const
NodegetEndNode () const
NodegetStartNode () const
bool changeEndNodeWith (Node *node) const
bool changeStartNodeWith (Node *node) const
void dumpInXfigFile (std::ostream &stream, int resolution, const Bounds &box) const
bool isInOrOut (Node *nodeToTest) const
bool getDirection () const
bool intresincEqCoarse (const Edge *other) const

Static Public Member Functions

static void Delete (ComposedEdge *pt)
static void SoftDelete (ComposedEdge *pt)

Protected Member Functions

 ~ComposedEdge ()

Protected Attributes

std::list< ElementaryEdge * > _sub_edges

Friends

class IteratorOnComposedEdge

Constructor & Destructor Documentation

INTERP_KERNEL::ComposedEdge::ComposedEdge ( )
ComposedEdge::ComposedEdge ( const ComposedEdge other)

References _sub_edges.

INTERP_KERNEL::ComposedEdge::ComposedEdge ( int  sz)
ComposedEdge::~ComposedEdge ( )
protected

References _sub_edges.

Member Function Documentation

static void INTERP_KERNEL::ComposedEdge::Delete ( ComposedEdge pt)
static
static void INTERP_KERNEL::ComposedEdge::SoftDelete ( ComposedEdge pt)
static
void ComposedEdge::reverse ( )
int INTERP_KERNEL::ComposedEdge::recursiveSize ( ) const
bool ComposedEdge::presenceOfOn ( ) const
bool ComposedEdge::presenceOfQuadraticEdge ( ) const
void ComposedEdge::initLocations ( ) const

References _sub_edges.

ComposedEdge * ComposedEdge::clone ( ) const

References ComposedEdge().

bool ComposedEdge::isNodeIn ( Node n) const

References _sub_edges.

double ComposedEdge::getArea ( ) const

This method computes the area of 'this'. By definition :

\[ Area=\int_{Polygon} dS \]

Thanks to Green's theorem we have.

\[ \int_{Polygon} x \cdot dS=\sum_{0 \leq i < nb of edges} -\int_{Edge_{i}}ydx=\sum_{0 \leq i < nb of edges} AreaOfZone_{Edge_{i}} \]

Where $ AreaOfZone_{i} $ is computed virtually by INTERP_KERNEL::Edge::getAreaOfZone with following formula :

\[ AreaOfZone_{i}=\int_{Edge_{i}} -ydx \]

References _sub_edges.

Referenced by getHydraulicDiameter().

double ComposedEdge::getPerimeter ( ) const

References _sub_edges.

Referenced by getHydraulicDiameter().

double ComposedEdge::getHydraulicDiameter ( ) const

References getArea(), and getPerimeter().

void ComposedEdge::getBarycenter ( double *  bary) const

This method computes barycenter of 'this' by returning xG in bary[0] and yG in bary[1]. By definition :

\[ Area \cdot x_{G}=\int_{Polygon} x \cdot dS \]

\[ Area \cdot y_{G}=\int_{Polygon} y \cdot dS \]

Thanks to Green's theorem we have.

\[ \int_{Polygon} x \cdot dS=\sum_{0 \leq i < nb of edges} -\int_{Edge_{i}}yxdx \]

\[ \int_{Polygon} y \cdot dS=\sum_{0 \leq i < nb of edges} -\int_{Edge_{i}}\frac{y^{2}}{2}dx \]

Area is computed using the same principle than described in INTERP_KERNEL::ComposedEdge::getArea method. $ -\int_{Edge_{i}}yxdx $ and $ -\int_{Edge_{i}}\frac{y^{2}}{2}dx $ are computed virtually with INTERP_KERNEL::Edge::getBarycenterOfZone.

References _sub_edges.

Referenced by getBarycenterGeneral().

void ComposedEdge::getBarycenterGeneral ( double *  bary) const

Idem ComposedEdge::getBarycenter except that the special case where _sub_edges==1 is dealt here.

References _sub_edges, and getBarycenter().

double ComposedEdge::normalize ( ComposedEdge other,
double &  xBary,
double &  yBary 
)
double ComposedEdge::normalizeExt ( ComposedEdge other,
double &  xBary,
double &  yBary 
)
void ComposedEdge::unApplyGlobalSimilarityExt ( ComposedEdge other,
double  xBary,
double  yBary,
double  fact 
)

This method operates the opposite operation than ComposedEdge::applyGlobalSimilarity.

References _sub_edges, and getAllNodes().

Referenced by INTERP_KERNEL::QuadraticPolygon::buildPartitionsAbs().

void ComposedEdge::fillBounds ( Bounds &  output) const
void ComposedEdge::applySimilarity ( double  xBary,
double  yBary,
double  dimChar 
)

WARNING : applies similarity ONLY on edges without any change on Nodes. To perform a global similarity call applyGlobalSimilarity.

References _sub_edges.

void ComposedEdge::applyGlobalSimilarity ( double  xBary,
double  yBary,
double  dimChar 
)

Perform Similarity transformation on all elements of this Nodes and Edges.

References _sub_edges, and getAllNodes().

Referenced by INTERP_KERNEL::QuadraticPolygon::isButterflyAbs(), and normalize().

void ComposedEdge::applyGlobalSimilarity2 ( ComposedEdge other,
double  xBary,
double  yBary,
double  dimChar 
)

Perform Similarity transformation on all elements of this Nodes and Edges on 'this' and 'other'. Nodes can be shared between 'this' and 'other'.

References _sub_edges, and getAllNodes().

Referenced by normalizeExt().

void ComposedEdge::dispatchPerimeter ( double &  partConsidered) const

This method append to param 'partConsidered' the part of length of subedges IN or ON.

Parameters
partConsideredINOUT param.

References _sub_edges, INTERP_KERNEL::FULL_IN_1, and INTERP_KERNEL::FULL_ON_1.

Referenced by INTERP_KERNEL::QuadraticPolygon::intersectForPerimeterAdvanced().

void ComposedEdge::dispatchPerimeterExcl ( double &  partConsidered,
double &  commonPart 
) const

Idem dispatchPerimeterExcl except that when a subedge is declared as ON this subedge is counted in commonPart.

References _sub_edges, INTERP_KERNEL::FULL_IN_1, and INTERP_KERNEL::FULL_ON_1.

Referenced by INTERP_KERNEL::QuadraticPolygon::intersectForPerimeter().

double INTERP_KERNEL::ComposedEdge::dispatchPerimeterAdv ( const ComposedEdge father,
std::vector< double > &  result 
) const
void ComposedEdge::getAllNodes ( std::set< Node * > &  output) const
void ComposedEdge::getBarycenter ( double *  bary,
double &  weigh 
) const

References _sub_edges.

bool INTERP_KERNEL::ComposedEdge::completed ( ) const
void ComposedEdge::setValueAt ( int  i,
Edge e,
bool  direction = true 
)
double ComposedEdge::getCommonLengthWith ( const ComposedEdge other) const
void ComposedEdge::clear ( )

References _sub_edges.

bool INTERP_KERNEL::ComposedEdge::empty ( ) const
ElementaryEdge* INTERP_KERNEL::ComposedEdge::front ( ) const
ElementaryEdge* INTERP_KERNEL::ComposedEdge::back ( ) const
void INTERP_KERNEL::ComposedEdge::resize ( int  i)
void ComposedEdge::pushBack ( Edge edge,
bool  direction = true 
)
void ComposedEdge::pushBack ( ElementaryEdge elem)

References _sub_edges.

void ComposedEdge::pushBack ( ComposedEdge elem)

References _sub_edges.

int INTERP_KERNEL::ComposedEdge::size ( ) const
ElementaryEdge * ComposedEdge::operator[] ( int  i) const

References _sub_edges.

Node * ComposedEdge::getEndNode ( ) const
Node * ComposedEdge::getStartNode ( ) const

References _sub_edges.

bool ComposedEdge::changeEndNodeWith ( Node node) const

References _sub_edges.

bool ComposedEdge::changeStartNodeWith ( Node node) const
void ComposedEdge::dumpInXfigFile ( std::ostream &  stream,
int  resolution,
const Bounds &  box 
) const

Reimplemented in INTERP_KERNEL::QuadraticPolygon.

References _sub_edges.

bool ComposedEdge::isInOrOut ( Node nodeToTest) const
bool ComposedEdge::getDirection ( ) const
bool ComposedEdge::intresincEqCoarse ( const Edge other) const

References _sub_edges.

Friends And Related Function Documentation

friend class IteratorOnComposedEdge
friend

Member Data Documentation

std::list<ElementaryEdge *> INTERP_KERNEL::ComposedEdge::_sub_edges
protected
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