|
KiCad PCB EDA Suite
|
#include <algorithm>#include <assert.h>#include <cmath>#include <cstdio>#include <istream>#include <limits>#include <map>#include <memory>#include <set>#include <string>#include <unordered_map>#include <unordered_set>#include <thread>#include <utility>#include <vector>#include <array>#include <clipper2/clipper.h>#include <geometry/geometry_predicates.h>#include <geometry/geometry_utils.h>#include <geometry/polygon_triangulation.h>#include <geometry/seg.h>#include <geometry/shape.h>#include <geometry/shape_line_chain.h>#include <geometry/shape_poly_set.h>#include <geometry/segment_index.h>#include <math/box2.h>#include <math/util.h>#include <math/vector2d.h>#include <hash.h>#include <mmh3_hash.h>#include <geometry/shape_segment.h>#include <geometry/shape_circle.h>#include <geometry/fracture_edge_index_utils.h>#include <wx/log.h>Go to the source code of this file.
Classes | |
| struct | FractureEdge |
| class | FRACTURE_EDGE_INDEX |
| struct | FRACTURE_EDGE_INDEX::NODE |
| struct | FractureEdgeSlow |
Macros | |
| #define | TRIANGULATESIMPLIFICATIONLEVEL ADVANCED_CFG::GetCfg().m_TriangulateSimplificationLevel |
| #define | ENABLECACHEFRIENDLYFRACTURE ADVANCED_CFG::GetCfg().m_EnableCacheFriendlyFracture |
| #define | ENABLEFRACTUREEDGEINDEX ADVANCED_CFG::GetCfg().m_EnableFractureEdgeIndex |
| #define | SEG_CNT_MAX 64 |
| #define | SEG_CNT_MAX 64 |
Typedefs | |
| typedef std::vector< FractureEdge > | FractureEdgeSet |
| typedef std::vector< FractureEdgeSlow * > | FractureEdgeSetSlow |
Functions | |
| static bool | splitAtBridges (const SHAPE_LINE_CHAIN &aChain, std::vector< SHAPE_LINE_CHAIN > &aRings) |
| Split a closed ring into the rings left once pairs of coincident opposite edges are removed. | |
| static int | fractureIntersectX (const FractureEdge &aEdge, int aY) |
| static FractureEdge * | processHole (FractureEdgeSet &edges, FractureEdge::Index provokingIndex, FractureEdge::Index edgeIndex, FractureEdge::Index bridgeIndex, FRACTURE_EDGE_INDEX *aIndex) |
| static void | fractureSingleCacheFriendly (SHAPE_POLY_SET::POLYGON &paths) |
| static int | processEdge (FractureEdgeSetSlow &edges, FractureEdgeSlow *edge) |
| static void | fractureSingleSlow (SHAPE_POLY_SET::POLYGON &paths) |
| #define ENABLECACHEFRIENDLYFRACTURE ADVANCED_CFG::GetCfg().m_EnableCacheFriendlyFracture |
Definition at line 72 of file shape_poly_set.cpp.
Referenced by SHAPE_POLY_SET::fractureSingle().
| #define ENABLEFRACTUREEDGEINDEX ADVANCED_CFG::GetCfg().m_EnableFractureEdgeIndex |
Definition at line 73 of file shape_poly_set.cpp.
Referenced by fractureSingleCacheFriendly().
| #define SEG_CNT_MAX 64 |
Referenced by SHAPE_POLY_SET::inflate2(), and SHAPE_POLY_SET::inflateLine2().
| #define SEG_CNT_MAX 64 |
| #define TRIANGULATESIMPLIFICATIONLEVEL ADVANCED_CFG::GetCfg().m_TriangulateSimplificationLevel |
Definition at line 71 of file shape_poly_set.cpp.
| typedef std::vector<FractureEdge> FractureEdgeSet |
Definition at line 1388 of file shape_poly_set.cpp.
| typedef std::vector<FractureEdgeSlow*> FractureEdgeSetSlow |
Definition at line 1924 of file shape_poly_set.cpp.
|
inlinestatic |
Definition at line 1597 of file shape_poly_set.cpp.
References FractureEdge::m_p1, FractureEdge::m_p2, rescale(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by processHole().
|
static |
Definition at line 1705 of file shape_poly_set.cpp.
References SHAPE_LINE_CHAIN::Append(), SHAPE_LINE_CHAIN::Clear(), ENABLEFRACTUREEDGEINDEX, index, FractureEdge::m_next, FractureEdge::m_p1, FractureEdge::m_p2, path, processHole(), SHAPE_LINE_CHAIN::SetClosed(), KIGEOM::FRACTURE_INDEX::ShouldIndex(), KIGEOM::FRACTURE_INDEX::StripeCountFor(), KIGEOM::FRACTURE_INDEX::StripeSpan(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by SHAPE_POLY_SET::fractureSingle().
|
static |
Definition at line 2004 of file shape_poly_set.cpp.
References SHAPE_LINE_CHAIN::Append(), FractureEdgeSlow::m_connected, FractureEdgeSlow::m_next, FractureEdgeSlow::m_p1, path, processEdge(), SHAPE_LINE_CHAIN::SetClosed(), and VECTOR2< T >::x.
Referenced by SHAPE_POLY_SET::fractureSingle().
|
static |
Definition at line 1927 of file shape_poly_set.cpp.
References FractureEdgeSlow::m_connected, FractureEdgeSlow::m_next, FractureEdgeSlow::m_p1, FractureEdgeSlow::m_p2, rescale(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by fractureSingleSlow().
|
static |
Definition at line 1607 of file shape_poly_set.cpp.
References fractureIntersectX(), FRACTURE_EDGE_INDEX::InsertBridges(), FractureEdge::m_next, FractureEdge::m_p1, FractureEdge::m_p2, FractureEdge::matches(), FRACTURE_EDGE_INDEX::Query(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by fractureSingleCacheFriendly().
|
static |
Split a closed ring into the rings left once pairs of coincident opposite edges are removed.
Fracture() joins holes to their outline through such pairs.
Definition at line 769 of file shape_poly_set.cpp.
References SHAPE_LINE_CHAIN::Append(), SHAPE_LINE_CHAIN::CPoints(), hash_combine(), next(), operator==(), partner, SHAPE_LINE_CHAIN::PointCount(), and SHAPE_LINE_CHAIN::SetClosed().
Referenced by SHAPE_POLY_SET::appendBridgeFreePaths(), and SHAPE_POLY_SET::unfractureSingle().