19 void load(PyObject *);
20 Micrometers traceWidth(
const std::string &net, Micrometers)
const;
21 Micrometers viaDiameter(
const std::string &net, Micrometers)
const;
22 Micrometers clearance(
const std::string &net, Micrometers)
const;
23 std::string str()
const;
25 std::map<Micrometers, Micrometers> mTraceWidths;
26 std::map<Micrometers, Micrometers> mViaDiameters;
27 std::map<Micrometers, Micrometers> mClearances;
28 std::map<std::string, Micrometers> mNetTraceWidths;
29 std::map<std::string, Micrometers> mNetViaDiameters;
30 std::map<std::string, Micrometers> mNetClearances;
32 void set(std::map<std::string, Micrometers>&,
33 std::map<Micrometers, Micrometers>&, PyObject *);
40 const std::string& getData()
const {
return mData; }
41 PCBoard *create(
const std::string &data);
42 PCBoard *loadAndCreate(
const std::string &filePath);
43 void setUnitLength_nm(Nanometers nm) { mUnitLength_nm = nm; }
44 Nanometers getUnitLength_nm(Nanometers Default)
const {
return (mUnitLength_nm.value() > 0.0) ? mUnitLength_nm : Default; }
45 void setForceDesignRes(
bool b) { mForceDesignRes = b; }
46 bool designResForced()
const {
return mForceDesignRes; }
47 void setFixedTrackParams(
bool b) { mFixedTrackParams = b; }
48 Real hasFixedTrackParams()
const {
return mFixedTrackParams; }
49 void setNetOverrides(PyObject *over) { mNetOverrides.load(over); }
50 const NetOverrides& getNetOverrides()
const {
return mNetOverrides; }
51 void setTopologies(PyObject *);
52 const NetTopology *getTopology(
const std::string &net)
const;
53 void setAutocreateConnections(
bool b) { mAutocreateConnections = b; }
54 bool autocreateConnections()
const {
return mAutocreateConnections; }
55 void setLockRoutedConnections(
bool b) { mLockRoutedConnections = b; }
56 void setLoadFanout(
bool b) { mLoadFanout = b; }
57 bool getLoadFanout()
const {
return mLoadFanout; }
58 void setLoadTracks(PyObject *);
59 bool getLoadTracksForNet(
const std::string &name)
const {
return mLoadTracksAll || mLoadTracksNets.contains(name); }
60 void setRectifySegmentsDegrees(Real deg) { mRectifySegmentsRadians = math::Radians(deg); }
61 Real getRectifySegmentsRadians()
const {
return mRectifySegmentsRadians; }
62 void setLoadPolygonsAsBoxes(
bool b) { mLoadPolygonsAsBoxes = b; }
63 bool loadPolygonsAsBoxes()
const {
return mLoadPolygonsAsBoxes; }
64 void setLayoutAreaMinMargin(
float v) { mLayoutAreaMinMargin = v; }
65 void setLayoutAreaMaxMargin(
float v) { mLayoutAreaMaxMargin = v; }
66 float getLayoutAreaMinMargin()
const {
return mLayoutAreaMinMargin; }
67 float getLayoutAreaMaxMargin()
const {
return mLayoutAreaMaxMargin; }
68 void setIgnoreLayoutBounds(
bool b) { mIgnoreLayoutBounds = b; }
69 bool ignoreLayoutBounds()
const {
return mIgnoreLayoutBounds; }
70 bool checkPinIntersections()
const {
return mCheckPinIntersections; }
73 void lockRoutedConnections(
PCBoard&);
74 Nanometers mUnitLength_nm{0.0};
75 Real mRectifySegmentsRadians{math::Radians(0.125)};
76 bool mForceDesignRes{
false};
77 bool mFixedTrackParams{
false};
78 bool mLoadTracksAll{
false};
79 bool mLoadFanout{
false};
80 bool mLoadPolygonsAsBoxes{
false};
81 float mLayoutAreaMinMargin{0.0f};
82 float mLayoutAreaMaxMargin{std::numeric_limits<float>::infinity()};
83 bool mIgnoreLayoutBounds{
true};
84 bool mCheckPinIntersections{
false};
85 bool mAutocreateConnections{
true};
86 bool mLockRoutedConnections{
false};
87 bool loadFile(
const std::string &path);
89 std::string mFormat{
"dsn"};
90 std::set<std::string> mLoadTracksNets;
91 std::map<std::string, NetTopology> mTopologies;