24#ifndef DRC_RE_VIA_STYLE_CONSTRAINT_DATA_H_
25#define DRC_RE_VIA_STYLE_CONSTRAINT_DATA_H_
41 double aMinViaDiameter,
double aMaxViaDiameter,
42 double aPreferredViaDiameter,
double aMinViaHoleSize,
43 double aMaxViaHoleSize,
44 double aPreferredViaHoleSize ) :
60 result.AddError(
"Minimum Via Diameter must be greater than 0" );
63 result.AddError(
"Preferred Via Diameter must be greater than 0" );
66 result.AddError(
"Maximum Via Diameter must be greater than 0" );
70 result.AddError(
"Minimum Via Hole Size must be greater than 0" );
73 result.AddError(
"Preferred Via Hole Size must be greater than 0" );
76 result.AddError(
"Maximum Via Hole Size must be greater than 0" );
80 result.AddError(
"Minimum Via Diameter cannot be greater than Preferred Via Diameter" );
83 result.AddError(
"Preferred Via Diameter cannot be greater than Maximum Via Diameter" );
86 result.AddError(
"Minimum Via Diameter cannot be greater than Maximum Via Diameter" );
90 result.AddError(
"Minimum Via Hole Size cannot be greater than Preferred Via Hole Size" );
93 result.AddError(
"Preferred Via Hole Size cannot be greater than Maximum Via Hole Size" );
96 result.AddError(
"Minimum Via Hole Size cannot be greater than Maximum Via Hole Size" );
103 auto formatDimension = [&](
double aValue )
108 wxString diaClause = wxString::Format(
109 wxS(
"(constraint via_diameter (min %s) (opt %s) (max %s))" ),
114 wxString drillClause = wxString::Format(
115 wxS(
"(constraint hole_size (min %s) (opt %s) (max %s))" ),
120 return buildRule( aContext, { diaClause, drillClause } );
static wxString formatDouble(double aValue, int aPrecision=6)
wxString buildRule(const RULE_GENERATION_CONTEXT &aContext, const std::vector< wxString > &aConstraintClauses) const
void CopyFrom(const ICopyable &aSource) override
DRC_RE_BASE_CONSTRAINT_DATA()=default
double GetPreferredViaDiameter()
double m_preferredViaHoleSize
double GetMaxViaDiameter()
void SetMinViaDiameter(double aMinViaDiameter)
DRC_RE_VIA_STYLE_CONSTRAINT_DATA()=default
double GetMinViaHoleSize()
double GetMinViaDiameter()
void SetMinViaHoleSize(double aMinViaHoleSize)
double GetPreferredViaHoleSize()
double GetMaxViaHoleSize()
double m_preferredViaDiameter
DRC_RE_VIA_STYLE_CONSTRAINT_DATA(int aId, int aParentId, wxString aRuleName, double aMinViaDiameter, double aMaxViaDiameter, double aPreferredViaDiameter, double aMinViaHoleSize, double aMaxViaHoleSize, double aPreferredViaHoleSize)
void SetPreferredViaDiameter(double aPreferredViaDiameter)
void SetPreferredViaHoleSize(double aPreferredViaHoleSize)
void CopyFrom(const ICopyable &aSource) override
void SetMaxViaDiameter(double aMaxViaDiameter)
virtual ~DRC_RE_VIA_STYLE_CONSTRAINT_DATA()=default
DRC_RE_VIA_STYLE_CONSTRAINT_DATA(const DRC_RE_BASE_CONSTRAINT_DATA &aBaseData)
void SetMaxViaHoleSize(double aMaxViaHoleSize)
VALIDATION_RESULT Validate() const override
Validates the constraint data.
wxString GenerateRule(const RULE_GENERATION_CONTEXT &aContext) override
Abstract interface class to enable polymorphic copying between objects.
Result of a validation operation.
wxString result
Test unit parsing edge cases and error handling.