23#ifndef __PNS_ROUTING_SETTINGS
24#define __PNS_ROUTING_SETTINGS
Represent route directions & corner angles in a 45-degree metric.
JSON_SETTINGS(const wxString &aFilename, SETTINGS_LOC aLocation, int aSchemaVersion)
NESTED_SETTINGS(const std::string &aName, int aSchemaVersion, JSON_SETTINGS *aParent, const std::string &aPath, bool aLoadFromFile=true)
bool GetOptimizeEntireDraggedTrack() const
bool GetSnapToTracks() const
const DIRECTION_45 InitialDirection() const
bool RemoveLoops() const
Return true if loop (redundant track) removal is on.
void SetCornerMode(DIRECTION_45::CORNER_MODE aMode)
TIME_LIMIT m_walkaroundTimeLimit
double DiffPairWidthToMiterRatio() const
void SetShoveVias(bool aShoveVias)
Enable/disable shoving vias.
int ViaForcePropIterationLimit() const
TIME_LIMIT ShoveTimeLimit() const
bool SmoothDraggedSegments() const
Return true if smoothing segments during dragging is enabled.
void SetAutoPosture(bool aEnable)
PNS_OPTIMIZATION_EFFORT OptimizerEffort() const
Return the optimizer effort. Bigger means cleaner traces, but slower routing.
bool GetSnapToPads() const
bool FollowMouse() const
Return true if follow mouse mode is active (permanently on for the moment).
int m_viaForcePropIterationLimit
void SetSmoothDraggedSegments(bool aSmooth)
Enable/disable smoothing segments during dragging.
void SetOptimizeEntireDraggedTrack(bool aEnable)
bool ShoveVias() const
Return true if shoving vias is enabled.
void SetKeepDPCouplingWhenDragging(bool aSet)
bool m_smoothDraggedSegments
DIRECTION_45::CORNER_MODE m_cornerMode
void SetRestrictAngles(bool aEnable)
void SetSnapToTracks(bool aSnap)
bool SmartPads() const
Return true if Smart Pads (optimized connections) is enabled.
void SetSuggestFinish(bool aSuggestFinish)
Enable displaying suggestions for finishing the currently placed track.
bool GetFreeAngleMode() const
double m_diffPairGapCouplingRecognitionThreshold
int m_shoveIterationLimit
bool m_keepDPCouplingWhenDragging
double m_diffPairWidthToMiterRatio
bool SuggestFinish()
Return true if suggesting the finish of currently placed track is on.
double DiffPairGapCouplingRecognitionThreshold() const
double WalkaroundHugLengthThreshold() const
bool GetAutoPosture() const
void SetMode(PNS_MODE aMode)
Set the routing mode.
void SetAllowDRCViolations(bool aViolate)
void SetJumpOverObstacles(bool aJump)
TIME_LIMIT WalkaroundTimeLimit() const
bool m_allowDRCViolations
double m_diffPairGapPickupRatioThreshold
bool GetKeepDPCouplingWhenDragging() const
bool m_optimizeEntireDraggedTrack
void SetSnapToPads(bool aSnap)
int m_walkaroundIterationLimit
bool GetFixAllSegments() const
TIME_LIMIT m_shoveTimeLimit
double DiffPairGapPickupRatioThreshold() const
bool GetRestrictAngles() const
bool JumpOverObstacles() const
Return true if jumping over unmovable obstacles is on.
bool AllowDRCViolations() const
void SetViaForcePropIterationLimit(int aLimit)
void SetStartDiagonal(bool aStartDiagonal)
int WalkaroundIterationLimit() const
void SetFreeAngleMode(bool aEnable)
ROUTING_SETTINGS(JSON_SETTINGS *aParent, const std::string &aPath)
bool GetAllowDRCViolationsSetting() const
PNS_MODE Mode() const
Return the routing mode.
int ShoveIterationLimit() const
void SetSmartPads(bool aSmartPads)
Enable/disable Smart Pads (optimized connections).
void SetOptimizerEffort(PNS_OPTIMIZATION_EFFORT aEffort)
Set the optimizer effort. Bigger means cleaner traces, but slower routing.
PNS_OPTIMIZATION_EFFORT m_optimizerEffort
DIRECTION_45::CORNER_MODE GetCornerMode() const
void SetFixAllSegments(bool aEnable)
void SetRemoveLoops(bool aRemoveLoops)
Enable/disable loop (redundant track) removal.
double m_walkaroundHugLengthThreshold
Push and Shove diff pair dimensions (gap) settings dialog.
PNS_OPTIMIZATION_EFFORT
Optimization effort.
@ RM_MarkObstacles
Ignore collisions, mark obstacles.
@ RM_Walkaround
Only walk around.