KiCad PCB EDA Suite
Loading...
Searching...
No Matches
FRACTURE_EDGE_INDEX Class Reference

Classes

struct  NODE
 

Public Types

using Index = FractureEdge::Index
 

Public Member Functions

template<typename Originals>
 FRACTURE_EDGE_INDEX (FractureEdgeSet &aEdges, Originals &&aOriginals, int aMinY, int aMaxY, uint32_t aStripeCount, size_t aHoleCount)
 
bool IsValid () const
 
template<typename Visitor>
void Query (int aY, Index aProvokingIndex, Visitor &&aVisitor) const
 
void InsertBridges (Index aFirst)
 

Private Member Functions

uint32_t map (int aY) const
 
std::pair< uint32_t, uint32_t > span (const FractureEdge &aEdge) const
 
template<typename Visitor>
void visitOverflow (uint32_t aNode, Index aProvokingIndex, Visitor &&aVisitor) const
 
void insert (uint32_t aEdge, uint32_t aHead)
 

Static Private Member Functions

static void logAccepted (size_t aEdges, size_t aHoles, uint32_t aStripes, size_t aBytes)
 

Private Attributes

FractureEdgeSet & m_edges
 
int m_minY
 
int m_maxY
 
uint32_t m_stripeCount
 
size_t m_maxNodes
 
size_t m_budget
 
bool m_valid = false
 
std::vector< uint32_t > m_offsets
 
std::vector< uint32_t > m_bucketIds
 
std::vector< uint32_t > m_longIds
 
std::vector< uint32_t > m_heads
 
std::vector< NODE > m_nodes
 

Static Private Attributes

static constexpr uint32_t INVALID = std::numeric_limits<uint32_t>::max()
 

Detailed Description

Definition at line 1391 of file shape_poly_set.cpp.

Member Typedef Documentation

◆ Index

Constructor & Destructor Documentation

◆ FRACTURE_EDGE_INDEX()

template<typename Originals>
FRACTURE_EDGE_INDEX::FRACTURE_EDGE_INDEX ( FractureEdgeSet & aEdges,
Originals && aOriginals,
int aMinY,
int aMaxY,
uint32_t aStripeCount,
size_t aHoleCount )
inline

Member Function Documentation

◆ insert()

void FRACTURE_EDGE_INDEX::insert ( uint32_t aEdge,
uint32_t aHead )
inlineprivate

Definition at line 1567 of file shape_poly_set.cpp.

References m_heads, m_maxNodes, and m_nodes.

Referenced by InsertBridges().

◆ InsertBridges()

void FRACTURE_EDGE_INDEX::InsertBridges ( Index aFirst)
inline

Definition at line 1522 of file shape_poly_set.cpp.

References insert(), m_edges, m_stripeCount, KIGEOM::FRACTURE_INDEX::MAX_BUCKET_SPAN, and span().

Referenced by processHole().

◆ IsValid()

bool FRACTURE_EDGE_INDEX::IsValid ( ) const
inline

Definition at line 1492 of file shape_poly_set.cpp.

References m_valid.

◆ logAccepted()

static void FRACTURE_EDGE_INDEX::logAccepted ( size_t aEdges,
size_t aHoles,
uint32_t aStripes,
size_t aBytes )
inlinestaticprivate

Definition at line 1574 of file shape_poly_set.cpp.

Referenced by FRACTURE_EDGE_INDEX().

◆ map()

uint32_t FRACTURE_EDGE_INDEX::map ( int aY) const
inlineprivate

Definition at line 1543 of file shape_poly_set.cpp.

References m_maxY, m_minY, m_stripeCount, and KIGEOM::FRACTURE_INDEX::MapYToStripe().

Referenced by Query().

◆ Query()

template<typename Visitor>
void FRACTURE_EDGE_INDEX::Query ( int aY,
Index aProvokingIndex,
Visitor && aVisitor ) const
inline

Definition at line 1495 of file shape_poly_set.cpp.

References m_bucketIds, m_heads, m_longIds, m_offsets, m_stripeCount, map(), and visitOverflow().

Referenced by processHole().

◆ span()

std::pair< uint32_t, uint32_t > FRACTURE_EDGE_INDEX::span ( const FractureEdge & aEdge) const
inlineprivate

◆ visitOverflow()

template<typename Visitor>
void FRACTURE_EDGE_INDEX::visitOverflow ( uint32_t aNode,
Index aProvokingIndex,
Visitor && aVisitor ) const
inlineprivate

Definition at line 1551 of file shape_poly_set.cpp.

References FRACTURE_EDGE_INDEX::NODE::edge, INVALID, m_nodes, and FRACTURE_EDGE_INDEX::NODE::next.

Referenced by Query().

Member Data Documentation

◆ INVALID

uint32_t FRACTURE_EDGE_INDEX::INVALID = std::numeric_limits<uint32_t>::max()
staticconstexprprivate

Definition at line 1541 of file shape_poly_set.cpp.

Referenced by FRACTURE_EDGE_INDEX(), and visitOverflow().

◆ m_bucketIds

std::vector<uint32_t> FRACTURE_EDGE_INDEX::m_bucketIds
private

Definition at line 1589 of file shape_poly_set.cpp.

Referenced by FRACTURE_EDGE_INDEX(), and Query().

◆ m_budget

size_t FRACTURE_EDGE_INDEX::m_budget
private

Definition at line 1586 of file shape_poly_set.cpp.

Referenced by FRACTURE_EDGE_INDEX().

◆ m_edges

FractureEdgeSet& FRACTURE_EDGE_INDEX::m_edges
private

Definition at line 1581 of file shape_poly_set.cpp.

Referenced by FRACTURE_EDGE_INDEX(), and InsertBridges().

◆ m_heads

std::vector<uint32_t> FRACTURE_EDGE_INDEX::m_heads
private

Definition at line 1591 of file shape_poly_set.cpp.

Referenced by FRACTURE_EDGE_INDEX(), insert(), and Query().

◆ m_longIds

std::vector<uint32_t> FRACTURE_EDGE_INDEX::m_longIds
private

Definition at line 1590 of file shape_poly_set.cpp.

Referenced by FRACTURE_EDGE_INDEX(), and Query().

◆ m_maxNodes

size_t FRACTURE_EDGE_INDEX::m_maxNodes
private

Definition at line 1585 of file shape_poly_set.cpp.

Referenced by FRACTURE_EDGE_INDEX(), and insert().

◆ m_maxY

int FRACTURE_EDGE_INDEX::m_maxY
private

Definition at line 1583 of file shape_poly_set.cpp.

Referenced by FRACTURE_EDGE_INDEX(), map(), and span().

◆ m_minY

int FRACTURE_EDGE_INDEX::m_minY
private

Definition at line 1582 of file shape_poly_set.cpp.

Referenced by FRACTURE_EDGE_INDEX(), map(), and span().

◆ m_nodes

std::vector<NODE> FRACTURE_EDGE_INDEX::m_nodes
private

Definition at line 1592 of file shape_poly_set.cpp.

Referenced by FRACTURE_EDGE_INDEX(), insert(), and visitOverflow().

◆ m_offsets

std::vector<uint32_t> FRACTURE_EDGE_INDEX::m_offsets
private

Definition at line 1588 of file shape_poly_set.cpp.

Referenced by FRACTURE_EDGE_INDEX(), and Query().

◆ m_stripeCount

uint32_t FRACTURE_EDGE_INDEX::m_stripeCount
private

Definition at line 1584 of file shape_poly_set.cpp.

Referenced by FRACTURE_EDGE_INDEX(), InsertBridges(), map(), Query(), and span().

◆ m_valid

bool FRACTURE_EDGE_INDEX::m_valid = false
private

Definition at line 1587 of file shape_poly_set.cpp.

Referenced by FRACTURE_EDGE_INDEX(), and IsValid().


The documentation for this class was generated from the following file: