21 Net(
const std::string &name);
27 std::string name()
const {
return mName; }
28 uint id()
const {
return mId; }
29 const Color& getColor()
const {
return mColor; }
31 const std::set<Pin *>& getPins()
const {
return mPins; }
32 uint numPins()
const {
return mPins.size(); }
33 bool contains(
const Pin *T)
const {
return mPins.find(
const_cast<Pin *
>(T)) != mPins.end(); }
34 bool empty()
const {
return mPins.empty(); }
36 uint numConnections()
const {
return mConnections.size(); }
37 const std::vector<Connection *>& connections()
const {
return mConnections; }
38 Connection *connection(uint i)
const {
return mConnections.at(i); }
39 Connection *getConnectionBetween(
const Pin&,
const Pin&)
const;
42 uint validateTrack(
const Track&)
const;
44 Real getMinTrackWidth()
const {
return mMinTrackWidth; }
45 Real getMinClearance()
const {
return mMinClearance; }
48 uint getViaStartLayer()
const {
return mViaStartLayer; }
49 uint getViaHeight()
const {
return mViaHeight; }
50 Real getViaDiameter()
const {
return mViaDiameter; }
51 bool buriedViasOK()
const {
return mBuriedViasOK; }
52 uint32_t getLayerMask()
const {
return mLayerMask; }
53 bool isGroundOrPower()
const {
return mSignalType & SignalType::POWER_GROUND; }
54 bool isGround()
const {
return mSignalType == SignalType::GROUND; }
55 SignalType signalType()
const {
return mSignalType; }
59 Connection *addConnection(Pin *sourcePin,
const Point_25& source, Pin *targetPin,
const Point_25& target);
62 void sortConnections();
64 void setMinTrackWidth(Real);
65 void setMinClearance(Real c);
66 void setViaExtent(uint start, uint h) { mViaStartLayer = start; mViaHeight = h; }
67 void setViaDiameter(Real d);
68 void setLayerMask(uint32_t m);
69 void setLayerMaskFromSignalType();
70 void setSignalType(SignalType t) { mSignalType = t; }
72 static SignalType getLikelySignalTypeForName(
const std::string&);
74 void setBoard(PCBoard *board) { mBoard = board; }
77 void setColor(
const Color &c) { mColor = c; }
86 std::string str()
const;
87 PyObject *getConnectionsPy(uint depth,
bool asNumpy)
const;
88 PyObject *getPinsPy()
const;
89 PyObject *getPy(uint depth,
bool asNumpy)
const;
92 std::set<Pin *> mPins;
93 std::vector<Connection *> mConnections;
94 const std::string mName;
97 uint mViaStartLayer{0};
99 bool mBuriedViasOK{
false};
100 Real mViaDiameter{0.0};
101 Real mMinTrackWidth{0.0};
102 Real mMinClearance{0.0};
103 uint32_t mLayerMask{0xffffffff};
105 SignalType mSignalType{SignalType::ANY};
108 void removeConnectionsWithNonmemberPins();
109 void rebuildPinSetFromConnections();