97 virtual bool Run() = 0;
99 virtual const wxString
GetName()
const;
103 const std::function<
bool(
BOARD_ITEM*)>& aFunc );
107#define REPORT_AUX( s ) if( getLogReporter() ) getLogReporter()->Report( s, RPT_SEVERITY_INFO )
112 virtual bool reportProgress(
size_t aCount,
size_t aSize,
size_t aDelta = 1 );
113 virtual bool reportPhase(
const wxString& aStageName );
117 wxString
formatMsg(
const wxString& aFormatString,
const wxString& aSource,
double aConstraint,
double aActual,
119 wxString
formatMsg(
const wxString& aFormatString,
const wxString& aSource,
A base class for any item which can be embedded within the BOARD container class, and therefore insta...
Design Rule Checker object that performs all the DRC tests.
REPORTER * GetLogReporter() const
DRC_REGISTER_TEST_PROVIDER()
std::vector< DRC_TEST_PROVIDER * > GetTestProviders() const
static DRC_TEST_PROVIDER_REGISTRY & Instance()
void RegisterTestProvider(DRC_TEST_PROVIDER *provider)
std::vector< DRC_TEST_PROVIDER * > m_providers
DRC_TEST_PROVIDER_REGISTRY()
~DRC_TEST_PROVIDER_REGISTRY()
Represent a DRC "provider" which runs some DRC functions over a BOARD and spits out DRC_ITEM and posi...
static std::vector< KICAD_T > s_allBasicItemsButZones
virtual bool reportPhase(const wxString &aStageName)
virtual void reportViolation(std::shared_ptr< DRC_ITEM > &item, const VECTOR2I &aMarkerPos, int aMarkerLayer, DRC_CUSTOM_MARKER_HANDLER *aCustomHandler=nullptr)
int forEachGeometryItem(const std::vector< KICAD_T > &aTypes, const LSET &aLayers, const std::function< bool(BOARD_ITEM *)> &aFunc)
REPORTER * getLogReporter() const
bool RunTests(EDA_UNITS aUnits)
static std::vector< KICAD_T > s_allBasicItems
bool isInvisibleText(const BOARD_ITEM *aItem) const
virtual ~DRC_TEST_PROVIDER()=default
virtual bool Run()=0
Run this provider against the given PCB with configured options (if any).
void SetDRCEngine(DRC_ENGINE *engine)
virtual const wxString GetName() const
wxString formatMsg(const wxString &aFormatString, const wxString &aSource, double aConstraint, double aActual, EDA_DATA_TYPE aDataType=EDA_DATA_TYPE::DISTANCE)
virtual bool reportProgress(size_t aCount, size_t aSize, size_t aDelta=1)
LSET is a set of PCB_LAYER_IDs.
A pure virtual class used to derive REPORTER objects from.
void SetUserUnits(EDA_UNITS aUnits)
std::function< void(PCB_MARKER *aMarker)> DRC_CUSTOM_MARKER_HANDLER
EDA_DATA_TYPE
The type of unit.