X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FINTERP_KERNEL%2FGeometric2D%2FInterpKernelGeo2DComposedEdge.hxx;h=4d04aa7b9f7ed787200700297cd6ffd45ca0e362;hb=57cb3528fd30f1b4380eab1d293289177045c216;hp=c3de06e4a0e49f08b1e7406096ecbb14f17d07eb;hpb=1123dccd6613b2e8abba35182759d5c4a11ecc8d;p=tools%2Fmedcoupling.git diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.hxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.hxx index c3de06e4a..4d04aa7b9 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.hxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -37,6 +37,11 @@ namespace INTERP_KERNEL class ElementaryEdge; 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. + */ class ComposedEdge { friend class IteratorOnComposedEdge; @@ -51,7 +56,7 @@ namespace INTERP_KERNEL INTERPKERNEL_EXPORT bool presenceOfOn() const; INTERPKERNEL_EXPORT bool presenceOfQuadraticEdge() const; INTERPKERNEL_EXPORT void initLocations() const; - INTERPKERNEL_EXPORT void initLocationsWithOther(const ComposedEdge& other) const; + INTERPKERNEL_EXPORT static void InitLocationsWithOther(const ComposedEdge& first, const ComposedEdge& other); INTERPKERNEL_EXPORT ComposedEdge *clone() const; INTERPKERNEL_EXPORT bool isNodeIn(Node *n) const; INTERPKERNEL_EXPORT double getArea() const; @@ -71,6 +76,16 @@ namespace INTERP_KERNEL INTERPKERNEL_EXPORT void dispatchPerimeterExcl(double& partConsidered, double& commonPart) const; INTERPKERNEL_EXPORT double dispatchPerimeterAdv(const ComposedEdge& father, std::vector& result) const; INTERPKERNEL_EXPORT void getAllNodes(std::set& output) const; + INTERPKERNEL_EXPORT void initNodeHitStatus() const; + INTERPKERNEL_EXPORT void applySimilarityOnMyNodes(double xBary, double yBary, double dimChar) const; + INTERPKERNEL_EXPORT void unApplySimilarityOnMyNodes(double xBary, double yBary, double dimChar) const; + INTERPKERNEL_EXPORT void applySimilarityOnMyNodesIfNotAlreadyHit(double xBary, double yBary, double dimChar) const; + INTERPKERNEL_EXPORT void unApplySimilarityOnMyNodesIfNotAlreadyHit(double xBary, double yBary, double dimChar) const; + INTERPKERNEL_EXPORT void initEdgeHitStatus() const; + INTERPKERNEL_EXPORT void applySimilarityOnMyEdges(double xBary, double yBary, double dimChar) const; + INTERPKERNEL_EXPORT void unApplySimilarityOnMyEdges(double xBary, double yBary, double dimChar) const; + INTERPKERNEL_EXPORT void applySimilarityOnMyEdgesIfNotAlreadyHit(double xBary, double yBary, double dimChar) const; + INTERPKERNEL_EXPORT void unApplySimilarityOnMyEdgesIfNotAlreadyHit(double xBary, double yBary, double dimChar) const; INTERPKERNEL_EXPORT void getBarycenter(double *bary, double& weigh) const; INTERPKERNEL_EXPORT bool completed() const { return getEndNode()==getStartNode(); } INTERPKERNEL_EXPORT void setValueAt(int i, Edge *e, bool direction=true); @@ -90,13 +105,14 @@ namespace INTERP_KERNEL INTERPKERNEL_EXPORT bool changeEndNodeWith(Node *node) const; INTERPKERNEL_EXPORT bool changeStartNodeWith(Node *node) const; INTERPKERNEL_EXPORT void dumpInXfigFile(std::ostream& stream, int resolution, const Bounds& box) const; + INTERPKERNEL_EXPORT void dumpToCout(const std::map& mapp) const; INTERPKERNEL_EXPORT bool isInOrOut(Node *nodeToTest) const; INTERPKERNEL_EXPORT bool isInOrOut2(Node *nodeToTest) const; INTERPKERNEL_EXPORT bool getDirection() const; INTERPKERNEL_EXPORT bool intresincEqCoarse(const Edge *other) const; private: std::list* getListBehind() { return &_sub_edges; } - double isInOrOutAlg(Node *nodeToTest, std::set< IntersectElement >& inOutSwitch) const; + double isInOrOutAlg(Node *nodeToTest, const std::set& nodes, std::set< IntersectElement >& inOutSwitch) const; protected: ~ComposedEdge(); private: