Public Member Functions | |
QuadraticPolygon () | |
QuadraticPolygon (const QuadraticPolygon &other) | |
QuadraticPolygon (const char *fileName) | |
~QuadraticPolygon () | |
void | closeMe () const |
void | circularPermute () |
bool | isButterflyAbs () |
bool | isButterfly () const |
void | dumpInXfigFile (const char *fileName) const |
void | dumpInXfigFileWithOther (const ComposedEdge &other, const char *fileName) const |
double | intersectWithAbs (QuadraticPolygon &other) |
double | intersectWithAbs1D (QuadraticPolygon &other, bool &isColinear) |
double | intersectWithAbs (QuadraticPolygon &other, double *barycenter) |
void | splitAbs (QuadraticPolygon &other, const std::map< INTERP_KERNEL::Node *, int > &mapThis, const std::map< INTERP_KERNEL::Node *, int > &mapOther, int offset1, int offset2, const std::vector< int > &otherEdgeIds, std::vector< int > &edgesThis, int cellIdThis, std::vector< std::vector< int > > &edgesInOtherColinearWithThis, std::vector< std::vector< int > > &subDivOther, std::vector< double > &addCoo) |
void | buildFromCrudeDataArray (const std::map< int, INTERP_KERNEL::Node * > &mapp, bool isQuad, const int *nodalBg, const double *coords, const int *descBg, const int *descEnd, const std::vector< std::vector< int > > &intersectEdges) |
void | buildFromCrudeDataArray2 (const std::map< int, INTERP_KERNEL::Node * > &mapp, bool isQuad, const int *nodalBg, const double *coords, const int *descBg, const int *descEnd, const std::vector< std::vector< int > > &intersectEdges, const INTERP_KERNEL::QuadraticPolygon &pol1, const int *descBg1, const int *descEnd1, const std::vector< std::vector< int > > &intersectEdges1, const std::vector< std::vector< int > > &colinear1) |
void | appendEdgeFromCrudeDataArray (std::size_t edgeId, const std::map< int, INTERP_KERNEL::Node * > &mapp, bool isQuad, const int *nodalBg, const double *coords, const int *descBg, const int *descEnd, const std::vector< std::vector< int > > &intersectEdges) |
void | appendSubEdgeFromCrudeDataArray (Edge *baseEdge, std::size_t j, bool direct, int edgeId, const std::vector< int > &subEdge, const std::map< int, INTERP_KERNEL::Node * > &mapp) |
void | appendCrudeData (const std::map< INTERP_KERNEL::Node *, int > &mapp, double xBary, double yBary, double fact, int offset, std::vector< double > &addCoordsQuadratic, std::vector< int > &conn, std::vector< int > &connI) const |
void | buildPartitionsAbs (QuadraticPolygon &other, const std::map< INTERP_KERNEL::Node *, int > &mapp, int idThis, int idOther, int offset, std::vector< double > &addCoordsQuadratic, std::vector< int > &conn, std::vector< int > &connI, std::vector< int > &nb1, std::vector< int > &nb2) |
double | intersectWith (const QuadraticPolygon &other) const |
double | intersectWith (const QuadraticPolygon &other, double *barycenter) const |
std::vector< QuadraticPolygon * > | intersectMySelfWith (const QuadraticPolygon &other) const |
void | intersectForPerimeter (const QuadraticPolygon &other, double &perimeterThisPart, double &perimeterOtherPart, double &perimeterCommonPart) const |
void | intersectForPerimeterAdvanced (const QuadraticPolygon &other, std::vector< double > &polThis, std::vector< double > &polOther) const |
void | intersectForPoint (const QuadraticPolygon &other, std::vector< int > &numberOfCreatedPointsPerEdge) const |
void | performLocatingOperation (QuadraticPolygon &pol2) const |
std::vector< QuadraticPolygon * > | buildIntersectionPolygons (const QuadraticPolygon &pol1, const QuadraticPolygon &pol2) const |
bool | amIAChanceToBeCompletedBy (const QuadraticPolygon &pol1Splitted, const QuadraticPolygon &pol2NotSplitted, bool &direction) |
![]() | |
ComposedEdge () | |
ComposedEdge (const ComposedEdge &other) | |
ComposedEdge (int sz) | |
void | reverse () |
int | recursiveSize () const |
bool | presenceOfOn () const |
bool | presenceOfQuadraticEdge () const |
void | initLocations () const |
ComposedEdge * | clone () 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 |
ElementaryEdge * | front () const |
ElementaryEdge * | back () const |
void | resize (int i) |
void | pushBack (Edge *edge, bool direction=true) |
void | pushBack (ElementaryEdge *elem) |
void | pushBack (ComposedEdge *elem) |
int | size () const |
ElementaryEdge * | operator[] (int i) const |
Node * | getEndNode () const |
Node * | getStartNode () const |
bool | changeEndNodeWith (Node *node) const |
bool | changeStartNodeWith (Node *node) const |
bool | isInOrOut (Node *nodeToTest) const |
bool | getDirection () const |
bool | intresincEqCoarse (const Edge *other) const |
Static Public Member Functions | |
static QuadraticPolygon * | BuildLinearPolygon (std::vector< Node * > &nodes) |
static QuadraticPolygon * | BuildArcCirclePolygon (std::vector< Node * > &nodes) |
static void | BuildDbgFile (const std::vector< Node * > &nodes, const char *fileName) |
static void | SplitPolygonsEachOther (QuadraticPolygon &pol1, QuadraticPolygon &pol2, int &nbOfSplits) |
![]() | |
static void | Delete (ComposedEdge *pt) |
static void | SoftDelete (ComposedEdge *pt) |
Protected Member Functions | |
std::list< QuadraticPolygon * > | zipConsecutiveInSegments () const |
void | dumpInXfigFile (std::ostream &stream, int resolution, const Bounds &box) const |
void | closePolygons (std::list< QuadraticPolygon * > &pol2Zip, const QuadraticPolygon &pol1, std::vector< QuadraticPolygon * > &results) const |
std::list< QuadraticPolygon * > ::iterator | fillAsMuchAsPossibleWith (const QuadraticPolygon &pol1Splitted, std::list< QuadraticPolygon * >::iterator iStart, std::list< QuadraticPolygon * >::iterator iEnd, bool direction) |
![]() | |
~ComposedEdge () |
Static Protected Member Functions | |
template<class EDGES > | |
static void | UpdateNeighbours (const MergePoints &merger, IteratorOnComposedEdge it1, IteratorOnComposedEdge it2, const EDGES *e1, const EDGES *e2) |
static std::list < QuadraticPolygon * > ::iterator | CheckInList (Node *n, std::list< QuadraticPolygon * >::iterator iStart, std::list< QuadraticPolygon * >::iterator iEnd) |
Additional Inherited Members | |
![]() | |
std::list< ElementaryEdge * > | _sub_edges |
INTERP_KERNEL::QuadraticPolygon::QuadraticPolygon | ( | ) |
Referenced by BuildArcCirclePolygon(), buildIntersectionPolygons(), BuildLinearPolygon(), and zipConsecutiveInSegments().
INTERP_KERNEL::QuadraticPolygon::QuadraticPolygon | ( | const QuadraticPolygon & | other | ) |
QuadraticPolygon::QuadraticPolygon | ( | const char * | fileName | ) |
References INTERP_KERNEL::ComposedEdge::back(), INTERP_KERNEL::Edge::BuildFromXfigLine(), INTERP_KERNEL::ElementaryEdge::changeStartNodeWith(), INTERP_KERNEL::Edge::changeStartNodeWith(), INTERP_KERNEL::ComposedEdge::empty(), INTERP_KERNEL::ComposedEdge::front(), INTERP_KERNEL::ComposedEdge::getEndNode(), INTERP_KERNEL::MAX_SIZE_OF_LINE_XFIG_FILE, and INTERP_KERNEL::ComposedEdge::pushBack().
QuadraticPolygon::~QuadraticPolygon | ( | ) |
|
static |
References INTERP_KERNEL::ComposedEdge::pushBack(), QuadraticPolygon(), and INTERP_KERNEL::ComposedEdge::size().
Referenced by ParaMEDMEM::MEDCouplingPointSet::isButterfly2DCell().
|
static |
|
static |
void QuadraticPolygon::closeMe | ( | ) | const |
void QuadraticPolygon::circularPermute | ( | ) |
References INTERP_KERNEL::ComposedEdge::_sub_edges.
bool QuadraticPolygon::isButterflyAbs | ( | ) |
bool QuadraticPolygon::isButterfly | ( | ) | const |
void QuadraticPolygon::dumpInXfigFile | ( | const char * | fileName | ) | const |
References INTERP_KERNEL::ComposedEdge::fillBounds().
Referenced by dumpInXfigFile(), and dumpInXfigFileWithOther().
void QuadraticPolygon::dumpInXfigFileWithOther | ( | const ComposedEdge & | other, |
const char * | fileName | ||
) | const |
References dumpInXfigFile(), and INTERP_KERNEL::ComposedEdge::fillBounds().
double QuadraticPolygon::intersectWithAbs | ( | QuadraticPolygon & | other | ) |
Before intersecting as intersectWith a normalization is done.
Warning contrary to intersectWith method this method is NOT const. 'this' and 'other' are modified after call of this method.
References intersectMySelfWith(), and INTERP_KERNEL::ComposedEdge::normalize().
double QuadraticPolygon::intersectWithAbs1D | ( | QuadraticPolygon & | other, |
bool & | isColinear | ||
) |
Warning This method is NOT const. 'this' and 'other' are modified after call of this method. 'other' is a QuadraticPolygon of non closed edges.
References INTERP_KERNEL::ComposedEdge::_sub_edges, INTERP_KERNEL::FULL_IN_1, INTERP_KERNEL::FULL_ON_1, INTERP_KERNEL::ComposedEdge::normalize(), performLocatingOperation(), and SplitPolygonsEachOther().
double QuadraticPolygon::intersectWithAbs | ( | QuadraticPolygon & | other, |
double * | barycenter | ||
) |
Before intersecting as intersectWith a normalization is done.
Warning contrary to intersectWith method this method is NOT const. 'this' and 'other' are modified after call of this method.
References intersectMySelfWith(), and INTERP_KERNEL::ComposedEdge::normalize().
void QuadraticPolygon::splitAbs | ( | QuadraticPolygon & | other, |
const std::map< INTERP_KERNEL::Node *, int > & | mapThis, | ||
const std::map< INTERP_KERNEL::Node *, int > & | mapOther, | ||
int | offset1, | ||
int | offset2, | ||
const std::vector< int > & | otherEdgeIds, | ||
std::vector< int > & | edgesThis, | ||
int | cellIdThis, | ||
std::vector< std::vector< int > > & | edgesInOtherColinearWithThis, | ||
std::vector< std::vector< int > > & | subDivOther, | ||
std::vector< double > & | addCoo | ||
) |
This method splits 'this' with 'other' into smaller pieces localizable. 'mapThis' is a map that gives the correspondance between nodes contained in 'this' and node ids in a global mesh. In the same way, 'mapOther' gives the correspondance between nodes contained in 'other' and node ids in a global mesh from wich 'other' is extracted. This method has 1 out paramater : 'edgesThis', After the call of this method contains nodal connectivity (including type) of 'this' into globlal "this mesh". This method has 2 in/out parameters : 'subDivOther' and 'addCoo'.'otherEdgeIds' is useful to put values in 'edgesThis', 'subDivOther' and 'addCoo'. Size of 'otherEdgeIds' has to be equal to number of ElementaryEdges in 'other'. No check of that will be done.
offset1 | is the number of nodes contained in global mesh from which 'this' is extracted. |
offset2 | is the sum of nodes contained in global mesh from which 'this' is extracted and 'other' is extracted. |
edgesInOtherColinearWithThis | will be appended at the end of the vector with colinear edge ids of other (if any) is a vector with the same size than other before calling this method. It gives in the same order the cell id in global other mesh. |
References INTERP_KERNEL::ComposedEdge::_sub_edges, INTERP_KERNEL::MergePoints::clear(), INTERP_KERNEL::ComposedEdge::ComposedEdge(), INTERP_KERNEL::IteratorOnComposedEdge::current(), INTERP_KERNEL::ComposedEdge::Delete(), INTERP_KERNEL::IteratorOnComposedEdge::finished(), INTERP_KERNEL::IteratorOnComposedEdge::first(), INTERP_KERNEL::ElementaryEdge::getDirection(), INTERP_KERNEL::ElementaryEdge::getIterator(), INTERP_KERNEL::ElementaryEdge::getPtr(), INTERP_KERNEL::Edge::incrRef(), INTERP_KERNEL::IteratorOnComposedEdge::insertElemEdges(), INTERP_KERNEL::Edge::intersectWith(), INTERP_KERNEL::ElementaryEdge::isThereStartPoint(), INTERP_KERNEL::IteratorOnComposedEdge::next(), INTERP_KERNEL::ComposedEdge::normalizeExt(), INTERP_KERNEL::ComposedEdge::presenceOfOn(), INTERP_KERNEL::ComposedEdge::pushBack(), INTERP_KERNEL::ComposedEdge::reverse(), INTERP_KERNEL::ComposedEdge::SoftDelete(), and UpdateNeighbours().
void QuadraticPolygon::buildFromCrudeDataArray | ( | const std::map< int, INTERP_KERNEL::Node * > & | mapp, |
bool | isQuad, | ||
const int * | nodalBg, | ||
const double * | coords, | ||
const int * | descBg, | ||
const int * | descEnd, | ||
const std::vector< std::vector< int > > & | intersectEdges | ||
) |
This method builds from descending conn of a quadratic polygon stored in crude mode (MEDCoupling). Descending conn is in FORTRAN relative mode in order to give the orientation of edge.
References appendEdgeFromCrudeDataArray().
void QuadraticPolygon::buildFromCrudeDataArray2 | ( | const std::map< int, INTERP_KERNEL::Node * > & | mapp, |
bool | isQuad, | ||
const int * | nodalBg, | ||
const double * | coords, | ||
const int * | descBg, | ||
const int * | descEnd, | ||
const std::vector< std::vector< int > > & | intersectEdges, | ||
const INTERP_KERNEL::QuadraticPolygon & | pol1, | ||
const int * | descBg1, | ||
const int * | descEnd1, | ||
const std::vector< std::vector< int > > & | intersectEdges1, | ||
const std::vector< std::vector< int > > & | colinear1 | ||
) |
This method builds from descending conn of a quadratic polygon stored in crude mode (MEDCoupling). Descending conn is in FORTRAN relative mode in order to give the orientation of edge.
References appendEdgeFromCrudeDataArray(), INTERP_KERNEL::ElementaryEdge::BuildEdgeFromCrudeDataArray(), INTERP_KERNEL::ElementaryEdge::getPtr(), INTERP_KERNEL::Edge::incrRef(), and INTERP_KERNEL::ComposedEdge::pushBack().
void QuadraticPolygon::appendEdgeFromCrudeDataArray | ( | std::size_t | edgeId, |
const std::map< int, INTERP_KERNEL::Node * > & | mapp, | ||
bool | isQuad, | ||
const int * | nodalBg, | ||
const double * | coords, | ||
const int * | descBg, | ||
const int * | descEnd, | ||
const std::vector< std::vector< int > > & | intersectEdges | ||
) |
void QuadraticPolygon::appendSubEdgeFromCrudeDataArray | ( | Edge * | baseEdge, |
std::size_t | j, | ||
bool | direct, | ||
int | edgeId, | ||
const std::vector< int > & | subEdge, | ||
const std::map< int, INTERP_KERNEL::Node * > & | mapp | ||
) |
void QuadraticPolygon::appendCrudeData | ( | const std::map< INTERP_KERNEL::Node *, int > & | mapp, |
double | xBary, | ||
double | yBary, | ||
double | fact, | ||
int | offset, | ||
std::vector< double > & | addCoordsQuadratic, | ||
std::vector< int > & | conn, | ||
std::vector< int > & | connI | ||
) | const |
void QuadraticPolygon::buildPartitionsAbs | ( | QuadraticPolygon & | other, |
const std::map< INTERP_KERNEL::Node *, int > & | mapp, | ||
int | idThis, | ||
int | idOther, | ||
int | offset, | ||
std::vector< double > & | addCoordsQuadratic, | ||
std::vector< int > & | conn, | ||
std::vector< int > & | connI, | ||
std::vector< int > & | nbThis, | ||
std::vector< int > & | nbOther | ||
) |
This method make the hypothesis that 'this' and 'other' are splited at the minimum into edges that are fully IN, OUT or ON. This method returns newly created polygons in 'conn' and 'connI' and the corresponding ids ('idThis','idOther') are stored respectively into 'nbThis' and 'nbOther'.
References buildIntersectionPolygons(), INTERP_KERNEL::ComposedEdge::normalizeExt(), performLocatingOperation(), and INTERP_KERNEL::ComposedEdge::unApplyGlobalSimilarityExt().
double QuadraticPolygon::intersectWith | ( | const QuadraticPolygon & | other | ) | const |
WARNING this method is const and other is const too. BUT location of Edges in 'this' and 'other' are nevertheless modified. This is possible because loc attribute in Edge class is mutable. This implies that if 'this' or/and 'other' are reused for intersect* method initLocations has to be called on each of this/them.
References intersectMySelfWith().
double QuadraticPolygon::intersectWith | ( | const QuadraticPolygon & | other, |
double * | barycenter | ||
) | const |
WARNING this method is const and other is const too. BUT location of Edges in 'this' and 'other' are nevertheless modified. This is possible because loc attribute in Edge class is mutable. This implies that if 'this' or/and 'other' are reused for intersect* method initLocations has to be called on each of this/them.
References intersectMySelfWith().
std::vector< QuadraticPolygon * > QuadraticPolygon::intersectMySelfWith | ( | const QuadraticPolygon & | other | ) | const |
WARNING this method is const and other is const too. BUT location of Edges in 'this' and 'other' are nevertheless modified. This is possible because loc attribute in Edge class is mutable. This implies that if 'this' or/and 'other' are reused for intersect* method initLocations has to be called on each of this/them.
References buildIntersectionPolygons(), performLocatingOperation(), and SplitPolygonsEachOther().
Referenced by intersectWith(), and intersectWithAbs().
void QuadraticPolygon::intersectForPerimeter | ( | const QuadraticPolygon & | other, |
double & | perimeterThisPart, | ||
double & | perimeterOtherPart, | ||
double & | perimeterCommonPart | ||
) | const |
WARNING this method is const and other is const too. BUT location of Edges in 'this' and 'other' are nevertheless modified. This is possible because loc attribute in Edge class is mutable. This implies that if 'this' or/and 'other' are reused for intersect* method initLocations has to be called on each of this/them.
References INTERP_KERNEL::ComposedEdge::dispatchPerimeterExcl(), performLocatingOperation(), and SplitPolygonsEachOther().
void QuadraticPolygon::intersectForPerimeterAdvanced | ( | const QuadraticPolygon & | other, |
std::vector< double > & | polThis, | ||
std::vector< double > & | polOther | ||
) | const |
WARNING this method is const and other is const too. BUT location of Edges in 'this' and 'other' are nevertheless modified. This is possible because loc attribute in Edge class is mutable. This implies that if 'this' or/and 'other' are reused for intersect* method initLocations has to be called on each of this/them.
polThis.size()==this->size() and polOther.size()==other.size(). For each ElementaryEdge of 'this', the corresponding contribution in resulting polygon is in 'polThis'. For each ElementaryEdge of 'other', the corresponding contribution in resulting polygon is in 'polOther'. As consequence common part are counted twice (in polThis and in polOther).
References INTERP_KERNEL::ElementaryEdge::clone(), INTERP_KERNEL::IteratorOnComposedEdge::current(), INTERP_KERNEL::ComposedEdge::dispatchPerimeter(), INTERP_KERNEL::IteratorOnComposedEdge::finished(), INTERP_KERNEL::IteratorOnComposedEdge::first(), INTERP_KERNEL::IteratorOnComposedEdge::next(), performLocatingOperation(), INTERP_KERNEL::ComposedEdge::pushBack(), INTERP_KERNEL::ComposedEdge::size(), and SplitPolygonsEachOther().
void QuadraticPolygon::intersectForPoint | ( | const QuadraticPolygon & | other, |
std::vector< int > & | numberOfCreatedPointsPerEdge | ||
) | const |
numberOfCreatedPointsPerEdge is resized to the number of edges of 'this'. This method returns in ordered maner the number of newly created points per edge. This method performs a split process between 'this' and 'other' that gives the result PThis. Then for each edges of 'this' this method counts how many edges in Pthis have the same id.
References INTERP_KERNEL::ElementaryEdge::clone(), INTERP_KERNEL::IteratorOnComposedEdge::current(), INTERP_KERNEL::IteratorOnComposedEdge::finished(), INTERP_KERNEL::IteratorOnComposedEdge::first(), INTERP_KERNEL::IteratorOnComposedEdge::next(), INTERP_KERNEL::ComposedEdge::pushBack(), INTERP_KERNEL::ComposedEdge::recursiveSize(), INTERP_KERNEL::ComposedEdge::size(), and SplitPolygonsEachOther().
void QuadraticPolygon::performLocatingOperation | ( | QuadraticPolygon & | pol2 | ) | const |
References INTERP_KERNEL::IteratorOnComposedEdge::current(), INTERP_KERNEL::IteratorOnComposedEdge::finished(), INTERP_KERNEL::IteratorOnComposedEdge::first(), INTERP_KERNEL::FULL_ON_1, INTERP_KERNEL::ElementaryEdge::locateFullyMySelf(), and INTERP_KERNEL::IteratorOnComposedEdge::next().
Referenced by buildPartitionsAbs(), intersectForPerimeter(), intersectForPerimeterAdvanced(), intersectMySelfWith(), and intersectWithAbs1D().
|
static |
This method is typically the first step of boolean operations between pol1 and pol2. This method perform the minimal splitting so that at the end each edges constituting pol1 are fully either IN or OUT or ON.
pol1 | IN/OUT param that is equal to 'this' when called. |
References INTERP_KERNEL::MergePoints::clear(), INTERP_KERNEL::ComposedEdge::ComposedEdge(), INTERP_KERNEL::IteratorOnComposedEdge::current(), INTERP_KERNEL::ComposedEdge::Delete(), INTERP_KERNEL::IteratorOnComposedEdge::finished(), INTERP_KERNEL::IteratorOnComposedEdge::first(), INTERP_KERNEL::ElementaryEdge::getDirection(), INTERP_KERNEL::ElementaryEdge::getIterator(), INTERP_KERNEL::ElementaryEdge::getPtr(), INTERP_KERNEL::IteratorOnComposedEdge::insertElemEdges(), INTERP_KERNEL::Edge::intersectWith(), INTERP_KERNEL::ElementaryEdge::isThereStartPoint(), INTERP_KERNEL::IteratorOnComposedEdge::next(), INTERP_KERNEL::ComposedEdge::reverse(), INTERP_KERNEL::ComposedEdge::SoftDelete(), and UpdateNeighbours().
Referenced by intersectForPerimeter(), intersectForPerimeterAdvanced(), intersectForPoint(), intersectMySelfWith(), and intersectWithAbs1D().
std::vector< QuadraticPolygon * > QuadraticPolygon::buildIntersectionPolygons | ( | const QuadraticPolygon & | pol1, |
const QuadraticPolygon & | pol2 | ||
) | const |
Given 2 polygons 'pol1' and 'pol2' (localized) the resulting polygons are returned.
this : pol2 simplified.
pol1 | pol1 split. |
pol2 | pol2 split. |
References closePolygons(), INTERP_KERNEL::FULL_IN_1, INTERP_KERNEL::FULL_ON_1, INTERP_KERNEL::ElementaryEdge::locateFullyMySelf(), QuadraticPolygon(), and zipConsecutiveInSegments().
Referenced by buildPartitionsAbs(), and intersectMySelfWith().
bool QuadraticPolygon::amIAChanceToBeCompletedBy | ( | const QuadraticPolygon & | pol1Splitted, |
const QuadraticPolygon & | pol2NotSplitted, | ||
bool & | direction | ||
) |
'this' is expected to be set of edges (not closed) of pol2 split.
References INTERP_KERNEL::ComposedEdge::_sub_edges, INTERP_KERNEL::Edge::buildRepresentantOfMySelf(), INTERP_KERNEL::IteratorOnComposedEdge::current(), INTERP_KERNEL::Node::decrRef(), INTERP_KERNEL::IteratorOnComposedEdge::finished(), INTERP_KERNEL::IteratorOnComposedEdge::first(), INTERP_KERNEL::FULL_IN_1, INTERP_KERNEL::FULL_ON_1, INTERP_KERNEL::ComposedEdge::getEndNode(), INTERP_KERNEL::ElementaryEdge::getLoc(), INTERP_KERNEL::ElementaryEdge::getPtr(), INTERP_KERNEL::ElementaryEdge::getStartNode(), INTERP_KERNEL::ComposedEdge::isInOrOut(), INTERP_KERNEL::ElementaryEdge::locateFullyMySelfAbsolute(), INTERP_KERNEL::IteratorOnComposedEdge::next(), and INTERP_KERNEL::IteratorOnComposedEdge::previousLoop().
|
protected |
Returns parts of potentially non closed-polygons. Each returned polygons are not mergeable. this : pol2 split and locallized.
References INTERP_KERNEL::ElementaryEdge::clone(), INTERP_KERNEL::IteratorOnComposedEdge::current(), INTERP_KERNEL::ComposedEdge::empty(), INTERP_KERNEL::FULL_OUT_1, INTERP_KERNEL::ElementaryEdge::getLoc(), INTERP_KERNEL::IteratorOnComposedEdge::goToNextInOn(), INTERP_KERNEL::IteratorOnComposedEdge::nextLoop(), INTERP_KERNEL::ComposedEdge::pushBack(), QuadraticPolygon(), and INTERP_KERNEL::ComposedEdge::recursiveSize().
Referenced by buildIntersectionPolygons().
|
protected |
Reimplemented from INTERP_KERNEL::ComposedEdge.
References dumpInXfigFile().
|
protected |
'this' should be considered as pol2Simplified.
pol2zip | is a list of set of edges (openned polygon) coming from split polygon 2. |
pol1 | is split pol1. |
results | the resulting CLOSED polygons. |
References INTERP_KERNEL::ComposedEdge::SoftDelete().
Referenced by buildIntersectionPolygons().
|
staticprotected |
References INTERP_KERNEL::ElementaryEdge::changeEndNodeWith(), INTERP_KERNEL::ElementaryEdge::changeStartNodeWith(), INTERP_KERNEL::IteratorOnComposedEdge::current(), INTERP_KERNEL::IteratorOnComposedEdge::nextLoop(), and INTERP_KERNEL::IteratorOnComposedEdge::previousLoop().
Referenced by splitAbs(), and SplitPolygonsEachOther().
|
protected |
This method fills as much as possible 'this' (part of pol2 split) with edges of 'pol1Splitted'.
References CheckInList(), INTERP_KERNEL::ElementaryEdge::clone(), INTERP_KERNEL::ComposedEdge::completed(), INTERP_KERNEL::IteratorOnComposedEdge::current(), INTERP_KERNEL::IteratorOnComposedEdge::finished(), INTERP_KERNEL::IteratorOnComposedEdge::first(), INTERP_KERNEL::ElementaryEdge::getEndNode(), INTERP_KERNEL::ComposedEdge::getEndNode(), INTERP_KERNEL::ElementaryEdge::getStartNode(), INTERP_KERNEL::IteratorOnComposedEdge::next(), INTERP_KERNEL::IteratorOnComposedEdge::nextLoop(), INTERP_KERNEL::IteratorOnComposedEdge::previousLoop(), INTERP_KERNEL::ComposedEdge::pushBack(), and INTERP_KERNEL::ElementaryEdge::reverse().
|
staticprotected |
Referenced by fillAsMuchAsPossibleWith().