12 void setNumber(uint N) { mNumber = N; }
13 void setType(SignalType t) { mType = t; }
14 uint getNumber()
const {
return mNumber; }
15 SignalType getType()
const {
return mType; }
16 bool hasType(SignalType t)
const {
return (mType & t); }
17 bool isSignal()
const {
return !!(mType & SignalType::SIGNAL); }
18 bool isPower()
const {
return !!(mType & SignalType::POWER); }
19 bool isGround()
const {
return !!(mType & SignalType::GROUND); }
20 std::string str()
const;
21 PyObject *getPy()
const;
23 static bool rangesOverlap(uint z0, uint z1, uint Z0, uint Z1);
26 SignalType mType{SignalType::ANY};
29inline uint cutLayersFromRange(uint &zmin, uint &zmax, uint C0, uint C1)
31 assert(zmin <= zmax && C0 <= C1);
33 return (zmax - zmin) + 1;
34 if (C0 <= zmin && zmax <= C1)
36 const uint dn = (C1 - C0) + 1;
38 zmin = (zmin > C1) ? (zmin - dn) : C0;
39 zmax = (zmax > C1) ? (zmax - dn) : (C0 - 1);
41 return (zmax - zmin) + 1;
44inline bool adjustIndexForCutLayers(uint &z, uint C0, uint C1)
46 if (C0 <= z && z <= C1)
53inline bool Layer::rangesOverlap(uint z0, uint z1, uint Z0, uint Z1)
55 return (z1 >= Z0) && (z0 <= Z1);