KiCad PCB EDA Suite
ratsnest_data.h File Reference

Class that computes missing connections on a PCB. More...

#include <ttl/halfedge/hetriang.h>
#include <ttl/halfedge/hetraits.h>
#include <math/box2.h>
#include <deque>
#include <unordered_set>
#include <unordered_map>

Go to the source code of this file.

Classes

struct  RN_NODE_FILTER
 

General interface for filtering out nodes in search functions.

More...
 
struct  LINE_TARGET
 

Leaves nodes that can be a ratsnest line target

More...
 
struct  LINE_TARGET_SAME_TAG
 

Leaves nodes that can be a ratsnest line target and have a specific tag

More...
 
struct  LINE_TARGET_DIFF_TAG
 
struct  RN_NODE_AND_FILTER
 
struct  RN_NODE_OR_FILTER
 
struct  RN_NODE_COMPARE
 

Functor comparing if two nodes are equal by their coordinates.

More...
 
struct  RN_NODE_HASH
 

Functor calculating hash for a given node.

More...
 
class  RN_LINKS
 Class RN_LINKS Manages data describing nodes and connections for a given net. More...
 
class  RN_POLY
 Class RN_POLY Describes a single subpolygon (ZONE_CONTAINER is supposed to contain one or more of those) and performs fast point-inside-polygon test. More...
 
class  RN_NET
 Class RN_NET Describes ratsnest for a single net. More...
 
struct  RN_NET::RN_ZONE_DATA
 

Structure to hold ratsnest data for ZONE_CONTAINER objects.

More...
 
struct  RN_NET::RN_PAD_DATA
 

Structureo to hold ratsnest data for D_PAD objects.

More...
 
class  RN_DATA
 Class RN_DATA. More...
 

Typedefs

typedef hed::NODE RN_NODE
 
typedef hed::NODE_PTR RN_NODE_PTR
 
typedef hed::EDGE RN_EDGE
 
typedef hed::EDGE_PTR RN_EDGE_PTR
 
typedef hed::EDGE_MST RN_EDGE_MST
 
typedef hed::TRIANGULATION TRIANGULATOR
 
typedef std::shared_ptr< hed::EDGE_MSTRN_EDGE_MST_PTR
 

Enumerations

enum  RN_ITEM_TYPE {
  RN_PADS = 0x01, RN_VIAS = 0x02, RN_TRACKS = 0x04, RN_ZONES = 0x08,
  RN_ALL = 0xFF
}
 

Types of items that are handled by the class

More...
 

Functions

bool operator== (const RN_NODE_PTR &aFirst, const RN_NODE_PTR &aSecond)
 
bool operator!= (const RN_NODE_PTR &aFirst, const RN_NODE_PTR &aSecond)
 
RN_NODE_AND_FILTER operator&& (const RN_NODE_FILTER &aFilter1, const RN_NODE_FILTER &aFilter2)
 
RN_NODE_OR_FILTER operator|| (const RN_NODE_FILTER &aFilter1, const RN_NODE_FILTER &aFilter2)
 

Detailed Description

Class that computes missing connections on a PCB.

Definition in file ratsnest_data.h.

Typedef Documentation

typedef hed::EDGE RN_EDGE

Definition at line 65 of file ratsnest_data.h.

Definition at line 67 of file ratsnest_data.h.

typedef std::shared_ptr<hed::EDGE_MST> RN_EDGE_MST_PTR

Definition at line 69 of file ratsnest_data.h.

Definition at line 66 of file ratsnest_data.h.

typedef hed::NODE RN_NODE

Definition at line 63 of file ratsnest_data.h.

Definition at line 64 of file ratsnest_data.h.

Definition at line 68 of file ratsnest_data.h.

Enumeration Type Documentation

Types of items that are handled by the class

Enumerator
RN_PADS 
RN_VIAS 
RN_TRACKS 
RN_ZONES 
RN_ALL 

Definition at line 53 of file ratsnest_data.h.

54 {
55  RN_PADS = 0x01,
56  RN_VIAS = 0x02,
57  RN_TRACKS = 0x04,
58  RN_ZONES = 0x08,
59  RN_ALL = 0xFF
60 };

Function Documentation

bool operator!= ( const RN_NODE_PTR aFirst,
const RN_NODE_PTR aSecond 
)

Definition at line 92 of file ratsnest_data.cpp.

93 {
94  return aFirst->GetX() != aSecond->GetX() || aFirst->GetY() != aSecond->GetY();
95 }
RN_NODE_AND_FILTER operator&& ( const RN_NODE_FILTER aFilter1,
const RN_NODE_FILTER aFilter2 
)

Definition at line 98 of file ratsnest_data.cpp.

99 {
100  return RN_NODE_AND_FILTER( aFilter1, aFilter2 );
101 }
bool operator== ( const RN_NODE_PTR aFirst,
const RN_NODE_PTR aSecond 
)

Definition at line 86 of file ratsnest_data.cpp.

87 {
88  return aFirst->GetX() == aSecond->GetX() && aFirst->GetY() == aSecond->GetY();
89 }
RN_NODE_OR_FILTER operator|| ( const RN_NODE_FILTER aFilter1,
const RN_NODE_FILTER aFilter2 
)

Definition at line 104 of file ratsnest_data.cpp.

105 {
106  return RN_NODE_OR_FILTER( aFilter1, aFilter2 );
107 }