Public Member Functions | |
INTERPKERNEL_EXPORT void | applyGlobalSimilarity (double xBary, double yBary, double dimChar) |
INTERPKERNEL_EXPORT void | applyGlobalSimilarity2 (ComposedEdge *other, double xBary, double yBary, double dimChar) |
INTERPKERNEL_EXPORT void | applySimilarity (double xBary, double yBary, double dimChar) |
INTERPKERNEL_EXPORT void | applySimilarityOnMyEdges (double xBary, double yBary, double dimChar) const |
INTERPKERNEL_EXPORT void | applySimilarityOnMyEdgesIfNotAlreadyHit (double xBary, double yBary, double dimChar) const |
INTERPKERNEL_EXPORT void | applySimilarityOnMyNodes (double xBary, double yBary, double dimChar) const |
INTERPKERNEL_EXPORT void | applySimilarityOnMyNodesIfNotAlreadyHit (double xBary, double yBary, double dimChar) const |
INTERPKERNEL_EXPORT ElementaryEdge * | back () const |
INTERPKERNEL_EXPORT bool | changeEndNodeWith (Node *node) const |
INTERPKERNEL_EXPORT bool | changeStartNodeWith (Node *node) const |
INTERPKERNEL_EXPORT void | clear () |
INTERPKERNEL_EXPORT ComposedEdge * | clone () const |
INTERPKERNEL_EXPORT bool | completed () const |
INTERPKERNEL_EXPORT | ComposedEdge () |
INTERPKERNEL_EXPORT | ComposedEdge (const ComposedEdge &other) |
INTERPKERNEL_EXPORT | ComposedEdge (int sz) |
INTERPKERNEL_EXPORT void | dispatchPerimeter (double &partConsidered) const |
INTERPKERNEL_EXPORT double | dispatchPerimeterAdv (const ComposedEdge &father, std::vector< double > &result) const |
INTERPKERNEL_EXPORT void | dispatchPerimeterExcl (double &partConsidered, double &commonPart) const |
INTERPKERNEL_EXPORT void | dumpInXfigFile (std::ostream &stream, int resolution, const Bounds &box) const |
INTERPKERNEL_EXPORT bool | empty () const |
INTERPKERNEL_EXPORT void | fillBounds (Bounds &output) const |
INTERPKERNEL_EXPORT ElementaryEdge * | front () const |
INTERPKERNEL_EXPORT void | getAllNodes (std::set< Node * > &output) const |
INTERPKERNEL_EXPORT double | getArea () const |
INTERPKERNEL_EXPORT void | getBarycenter (double *bary) const |
INTERPKERNEL_EXPORT void | getBarycenter (double *bary, double &weigh) const |
INTERPKERNEL_EXPORT void | getBarycenterGeneral (double *bary) const |
INTERPKERNEL_EXPORT double | getCommonLengthWith (const ComposedEdge &other) const |
INTERPKERNEL_EXPORT bool | getDirection () const |
INTERPKERNEL_EXPORT Node * | getEndNode () const |
INTERPKERNEL_EXPORT double | getHydraulicDiameter () const |
INTERPKERNEL_EXPORT double | getPerimeter () const |
INTERPKERNEL_EXPORT Node * | getStartNode () const |
INTERPKERNEL_EXPORT void | initEdgeHitStatus () const |
INTERPKERNEL_EXPORT void | initLocations () const |
INTERPKERNEL_EXPORT void | initNodeHitStatus () const |
INTERPKERNEL_EXPORT bool | intresincEqCoarse (const Edge *other) const |
INTERPKERNEL_EXPORT bool | isInOrOut (Node *nodeToTest) const |
INTERPKERNEL_EXPORT bool | isInOrOut2 (Node *nodeToTest) const |
INTERPKERNEL_EXPORT bool | isNodeIn (Node *n) const |
INTERPKERNEL_EXPORT double | normalize (ComposedEdge *other, double &xBary, double &yBary) |
INTERPKERNEL_EXPORT double | normalizeExt (ComposedEdge *other, double &xBary, double &yBary) |
INTERPKERNEL_EXPORT double | normalizeMe (double &xBary, double &yBary) |
INTERPKERNEL_EXPORT ElementaryEdge * | operator[] (int i) const |
INTERPKERNEL_EXPORT bool | presenceOfOn () const |
INTERPKERNEL_EXPORT bool | presenceOfQuadraticEdge () const |
INTERPKERNEL_EXPORT void | pushBack (Edge *edge, bool direction=true) |
INTERPKERNEL_EXPORT void | pushBack (ElementaryEdge *elem) |
INTERPKERNEL_EXPORT void | pushBack (ComposedEdge *elem) |
INTERPKERNEL_EXPORT int | recursiveSize () const |
INTERPKERNEL_EXPORT void | resize (int i) |
INTERPKERNEL_EXPORT void | reverse () |
INTERPKERNEL_EXPORT void | setValueAt (int i, Edge *e, bool direction=true) |
INTERPKERNEL_EXPORT int | size () const |
INTERPKERNEL_EXPORT void | unApplyGlobalSimilarityExt (ComposedEdge &other, double xBary, double yBary, double fact) |
INTERPKERNEL_EXPORT void | unApplySimilarityOnMyEdges (double xBary, double yBary, double dimChar) const |
INTERPKERNEL_EXPORT void | unApplySimilarityOnMyEdgesIfNotAlreadyHit (double xBary, double yBary, double dimChar) const |
INTERPKERNEL_EXPORT void | unApplySimilarityOnMyNodes (double xBary, double yBary, double dimChar) const |
INTERPKERNEL_EXPORT void | unApplySimilarityOnMyNodesIfNotAlreadyHit (double xBary, double yBary, double dimChar) const |
Static Public Member Functions | |
static INTERPKERNEL_EXPORT void | Delete (ComposedEdge *pt) |
static INTERPKERNEL_EXPORT void | InitLocationsWithOther (const ComposedEdge &first, const ComposedEdge &other) |
static INTERPKERNEL_EXPORT void | SoftDelete (ComposedEdge *pt) |
Protected Member Functions | |
~ComposedEdge () | |
Protected Attributes | |
std::list< ElementaryEdge * > | _sub_edges |
Friends | |
class | IteratorOnComposedEdge |
A set of quadratic or linear edges, described mainly by their connectivity The set is assumed to be connected, but not necessarily closed (i.e. not necessarily forming a closed polygon). Some methods however requires a closed form.
INTERPKERNEL_EXPORT INTERP_KERNEL::ComposedEdge::ComposedEdge | ( | ) |
ComposedEdge::ComposedEdge | ( | const ComposedEdge & | other | ) |
References _sub_edges.
INTERPKERNEL_EXPORT INTERP_KERNEL::ComposedEdge::ComposedEdge | ( | int | sz | ) |
|
protected |
References _sub_edges.
|
static |
|
static |
void ComposedEdge::reverse | ( | ) |
References _sub_edges.
Referenced by INTERP_KERNEL::QuadraticPolygon::splitAbs(), and INTERP_KERNEL::QuadraticPolygon::SplitPolygonsEachOther().
INTERPKERNEL_EXPORT int INTERP_KERNEL::ComposedEdge::recursiveSize | ( | ) | const |
References _sub_edges.
Referenced by INTERP_KERNEL::QuadraticPolygon::intersectForPoint(), and INTERP_KERNEL::QuadraticPolygon::zipConsecutiveInSegments().
bool ComposedEdge::presenceOfOn | ( | ) | const |
References _sub_edges, and INTERP_KERNEL::FULL_ON_1.
Referenced by INTERP_KERNEL::QuadraticPolygon::splitAbs().
bool ComposedEdge::presenceOfQuadraticEdge | ( | ) | const |
References _sub_edges.
Referenced by INTERP_KERNEL::QuadraticPolygon::appendCrudeData().
void ComposedEdge::initLocations | ( | ) | const |
References _sub_edges.
Referenced by INTERP_KERNEL::QuadraticPolygon::ComputeResidual(), and InitLocationsWithOther().
|
static |
Reset the status of all edges (OUT, IN, ON) because they were potentially assigned by the previous candidate processing.
References _sub_edges, and initLocations().
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 :
Thanks to Green's theorem we have.
Where is computed virtually by INTERP_KERNEL::Edge::getAreaOfZone with following formula :
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 :
Thanks to Green's theorem we have.
Area is computed using the same principle than described in INTERP_KERNEL::ComposedEdge::getArea method. and 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::normalizeMe | ( | double & | xBary, |
double & | yBary | ||
) |
References applyGlobalSimilarity(), and fillBounds().
double ComposedEdge::normalize | ( | ComposedEdge * | other, |
double & | xBary, | ||
double & | yBary | ||
) |
References applyGlobalSimilarity(), and fillBounds().
Referenced by INTERP_KERNEL::QuadraticPolygon::intersectWithAbs(), and INTERP_KERNEL::QuadraticPolygon::intersectWithAbs1D().
double ComposedEdge::normalizeExt | ( | ComposedEdge * | other, |
double & | xBary, | ||
double & | yBary | ||
) |
References applyGlobalSimilarity2(), and fillBounds().
Referenced by INTERP_KERNEL::QuadraticPolygon::buildPartitionsAbs(), and INTERP_KERNEL::QuadraticPolygon::splitAbs().
void ComposedEdge::unApplyGlobalSimilarityExt | ( | ComposedEdge & | other, |
double | xBary, | ||
double | yBary, | ||
double | fact | ||
) |
This method operates the opposite operation than ComposedEdge::applyGlobalSimilarity.
References initEdgeHitStatus(), initNodeHitStatus(), unApplySimilarityOnMyEdges(), unApplySimilarityOnMyEdgesIfNotAlreadyHit(), unApplySimilarityOnMyNodes(), and unApplySimilarityOnMyNodesIfNotAlreadyHit().
Referenced by INTERP_KERNEL::QuadraticPolygon::buildPartitionsAbs().
void ComposedEdge::fillBounds | ( | Bounds & | output | ) | const |
References _sub_edges.
Referenced by INTERP_KERNEL::QuadraticPolygon::dumpInXfigFile(), INTERP_KERNEL::QuadraticPolygon::dumpInXfigFileWithOther(), MEDCoupling::MEDCouplingUMesh::getBoundingBoxForBBTree2DQuadratic(), INTERP_KERNEL::QuadraticPolygon::isButterflyAbs(), isInOrOut(), normalize(), normalizeExt(), and normalizeMe().
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(), normalize(), and normalizeMe().
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 applySimilarityOnMyEdges(), applySimilarityOnMyEdgesIfNotAlreadyHit(), applySimilarityOnMyNodes(), applySimilarityOnMyNodesIfNotAlreadyHit(), initEdgeHitStatus(), and initNodeHitStatus().
Referenced by normalizeExt().
void ComposedEdge::dispatchPerimeter | ( | double & | partConsidered | ) | const |
This method append to param 'partConsidered' the part of length of subedges IN or ON.
partConsidered | INOUT 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().
INTERPKERNEL_EXPORT double INTERP_KERNEL::ComposedEdge::dispatchPerimeterAdv | ( | const ComposedEdge & | father, |
std::vector< double > & | result | ||
) | const |
void ComposedEdge::getAllNodes | ( | std::set< Node * > & | output | ) | const |
References _sub_edges.
Referenced by applyGlobalSimilarity(), isInOrOut(), and isInOrOut2().
void ComposedEdge::initNodeHitStatus | ( | ) | const |
References _sub_edges.
Referenced by applyGlobalSimilarity2(), and unApplyGlobalSimilarityExt().
void ComposedEdge::applySimilarityOnMyNodes | ( | double | xBary, |
double | yBary, | ||
double | dimChar | ||
) | const |
References _sub_edges.
Referenced by applyGlobalSimilarity2().
void ComposedEdge::unApplySimilarityOnMyNodes | ( | double | xBary, |
double | yBary, | ||
double | dimChar | ||
) | const |
References _sub_edges.
Referenced by unApplyGlobalSimilarityExt().
void ComposedEdge::applySimilarityOnMyNodesIfNotAlreadyHit | ( | double | xBary, |
double | yBary, | ||
double | dimChar | ||
) | const |
References _sub_edges.
Referenced by applyGlobalSimilarity2().
void ComposedEdge::unApplySimilarityOnMyNodesIfNotAlreadyHit | ( | double | xBary, |
double | yBary, | ||
double | dimChar | ||
) | const |
References _sub_edges.
Referenced by unApplyGlobalSimilarityExt().
void ComposedEdge::initEdgeHitStatus | ( | ) | const |
References _sub_edges.
Referenced by applyGlobalSimilarity2(), and unApplyGlobalSimilarityExt().
void ComposedEdge::applySimilarityOnMyEdges | ( | double | xBary, |
double | yBary, | ||
double | dimChar | ||
) | const |
References _sub_edges.
Referenced by applyGlobalSimilarity2().
void ComposedEdge::unApplySimilarityOnMyEdges | ( | double | xBary, |
double | yBary, | ||
double | dimChar | ||
) | const |
References _sub_edges.
Referenced by unApplyGlobalSimilarityExt().
void ComposedEdge::applySimilarityOnMyEdgesIfNotAlreadyHit | ( | double | xBary, |
double | yBary, | ||
double | dimChar | ||
) | const |
References _sub_edges.
Referenced by applyGlobalSimilarity2().
void ComposedEdge::unApplySimilarityOnMyEdgesIfNotAlreadyHit | ( | double | xBary, |
double | yBary, | ||
double | dimChar | ||
) | const |
References _sub_edges.
Referenced by unApplyGlobalSimilarityExt().
void ComposedEdge::getBarycenter | ( | double * | bary, |
double & | weigh | ||
) | const |
References _sub_edges.
INTERPKERNEL_EXPORT bool INTERP_KERNEL::ComposedEdge::completed | ( | ) | const |
References getEndNode(), and getStartNode().
Referenced by INTERP_KERNEL::QuadraticPolygon::fillAsMuchAsPossibleWith().
void ComposedEdge::setValueAt | ( | int | i, |
Edge * | e, | ||
bool | direction = true |
||
) |
References _sub_edges.
Referenced by INTERP_KERNEL::Edge::SplitOverlappedEdges().
double ComposedEdge::getCommonLengthWith | ( | const ComposedEdge & | other | ) | const |
References _sub_edges, and INTERP_KERNEL::ElementaryEdge::getCurveLength().
Referenced by INTERP_KERNEL::Edge::Interpolate1DLin().
void ComposedEdge::clear | ( | ) |
References _sub_edges.
INTERPKERNEL_EXPORT bool INTERP_KERNEL::ComposedEdge::empty | ( | ) | const |
References _sub_edges.
Referenced by INTERP_KERNEL::QuadraticPolygon::QuadraticPolygon(), and INTERP_KERNEL::QuadraticPolygon::zipConsecutiveInSegments().
INTERPKERNEL_EXPORT ElementaryEdge* INTERP_KERNEL::ComposedEdge::front | ( | ) | const |
References _sub_edges.
Referenced by INTERP_KERNEL::QuadraticPolygon::closeMe(), and INTERP_KERNEL::QuadraticPolygon::QuadraticPolygon().
INTERPKERNEL_EXPORT ElementaryEdge* INTERP_KERNEL::ComposedEdge::back | ( | ) | const |
References _sub_edges.
Referenced by INTERP_KERNEL::QuadraticPolygon::closeMe(), and INTERP_KERNEL::QuadraticPolygon::QuadraticPolygon().
INTERPKERNEL_EXPORT void INTERP_KERNEL::ComposedEdge::resize | ( | int | i | ) |
References _sub_edges.
Referenced by INTERP_KERNEL::Edge::SplitOverlappedEdges().
void ComposedEdge::pushBack | ( | Edge * | edge, |
bool | direction = true |
||
) |
References _sub_edges.
Referenced by INTERP_KERNEL::Edge::addSubEdgeInVector(), INTERP_KERNEL::QuadraticPolygon::appendSubEdgeFromCrudeDataArray(), INTERP_KERNEL::QuadraticPolygon::BuildArcCirclePolygon(), INTERP_KERNEL::QuadraticPolygon::buildFromCrudeDataArray2(), INTERP_KERNEL::QuadraticPolygon::BuildLinearPolygon(), INTERP_KERNEL::QuadraticPolygon::ComputeResidual(), INTERP_KERNEL::QuadraticPolygon::fillAsMuchAsPossibleWith(), INTERP_KERNEL::QuadraticPolygon::intersectForPerimeterAdvanced(), INTERP_KERNEL::QuadraticPolygon::intersectForPoint(), INTERP_KERNEL::QuadraticPolygon::QuadraticPolygon(), INTERP_KERNEL::QuadraticPolygon::splitAbs(), INTERP_KERNEL::Edge::SplitOverlappedEdges(), and INTERP_KERNEL::QuadraticPolygon::zipConsecutiveInSegments().
void ComposedEdge::pushBack | ( | ElementaryEdge * | elem | ) |
References _sub_edges.
void ComposedEdge::pushBack | ( | ComposedEdge * | elem | ) |
References _sub_edges.
INTERPKERNEL_EXPORT int INTERP_KERNEL::ComposedEdge::size | ( | ) | const |
References _sub_edges.
Referenced by INTERP_KERNEL::QuadraticPolygon::BuildArcCirclePolygon(), INTERP_KERNEL::QuadraticPolygon::BuildLinearPolygon(), INTERP_KERNEL::QuadraticPolygon::ComputeResidual(), INTERP_KERNEL::QuadraticPolygon::fillAsMuchAsPossibleWith(), INTERP_KERNEL::QuadraticPolygon::intersectForPerimeterAdvanced(), and INTERP_KERNEL::QuadraticPolygon::intersectForPoint().
ElementaryEdge * ComposedEdge::operator[] | ( | int | i | ) | const |
References _sub_edges.
Node * ComposedEdge::getEndNode | ( | ) | const |
Node * ComposedEdge::getStartNode | ( | ) | const |
References _sub_edges.
Referenced by completed().
bool ComposedEdge::changeEndNodeWith | ( | Node * | node | ) | const |
References _sub_edges.
bool ComposedEdge::changeStartNodeWith | ( | Node * | node | ) | const |
References _sub_edges.
Referenced by INTERP_KERNEL::QuadraticPolygon::closeMe().
void ComposedEdge::dumpInXfigFile | ( | std::ostream & | stream, |
int | resolution, | ||
const Bounds & | box | ||
) | const |
References _sub_edges.
Referenced by INTERP_KERNEL::QuadraticPolygon::dumpInXfigFile().
bool ComposedEdge::isInOrOut | ( | Node * | nodeToTest | ) | const |
This method makes the hypothesis that nodeToTest can be either IN or OUT.
References fillBounds(), getAllNodes(), and INTERP_KERNEL::ON_1.
Referenced by INTERP_KERNEL::QuadraticPolygon::haveIAChanceToBeCompletedBy(), and INTERP_KERNEL::ElementaryEdge::locateFullyMySelfAbsolute().
bool ComposedEdge::isInOrOut2 | ( | Node * | nodeToTest | ) | const |
This method is close to ComposedEdge::isInOrOut behaviour except that here EPSILON is taken into account to detect if it is IN or OUT. If nodeToTest is close to an edge in this, true will be returned even if it is outside informatically from this.
References getAllNodes(), and INTERP_KERNEL::ON_1.
bool ComposedEdge::getDirection | ( | ) | const |
Referenced by INTERP_KERNEL::QuadraticPolygon::ComputeResidual().
bool ComposedEdge::intresincEqCoarse | ( | const Edge * | other | ) | const |
References _sub_edges.
|
friend |
|
protected |
Referenced by INTERP_KERNEL::QuadraticPolygon::appendCrudeData(), applyGlobalSimilarity(), applySimilarity(), applySimilarityOnMyEdges(), applySimilarityOnMyEdgesIfNotAlreadyHit(), applySimilarityOnMyNodes(), applySimilarityOnMyNodesIfNotAlreadyHit(), back(), INTERP_KERNEL::QuadraticPolygon::buildFromCrudeDataArray2(), changeEndNodeWith(), changeStartNodeWith(), INTERP_KERNEL::QuadraticPolygon::circularPermute(), clear(), ComposedEdge(), INTERP_KERNEL::QuadraticPolygon::ComputeResidual(), dispatchPerimeter(), dispatchPerimeterExcl(), dumpInXfigFile(), empty(), fillBounds(), front(), getAllNodes(), getArea(), getBarycenter(), getBarycenterGeneral(), getCommonLengthWith(), getEndNode(), getPerimeter(), getStartNode(), INTERP_KERNEL::QuadraticPolygon::haveIAChanceToBeCompletedBy(), initEdgeHitStatus(), initLocations(), InitLocationsWithOther(), initNodeHitStatus(), INTERP_KERNEL::QuadraticPolygon::intersectWithAbs1D(), intresincEqCoarse(), INTERP_KERNEL::QuadraticPolygon::isButterfly(), isNodeIn(), operator[](), presenceOfOn(), presenceOfQuadraticEdge(), pushBack(), recursiveSize(), resize(), reverse(), setValueAt(), size(), SoftDelete(), INTERP_KERNEL::QuadraticPolygon::splitAbs(), unApplySimilarityOnMyEdges(), unApplySimilarityOnMyEdgesIfNotAlreadyHit(), unApplySimilarityOnMyNodes(), unApplySimilarityOnMyNodesIfNotAlreadyHit(), and ~ComposedEdge().