KiCad PCB EDA Suite
Loading...
Searching...
No Matches
drc_tool.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, you may find one here:
18 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
19 * or you may search the http://www.gnu.org website for the version 2 license,
20 * or you may write to the Free Software Foundation, Inc.,
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
22 */
23
24#ifndef DRC_TOOL_H
25#define DRC_TOOL_H
26
27#include <board_commit.h>
28#include <board.h>
29#include <pcb_marker.h>
30#include <geometry/seg.h>
32#include <memory>
33#include <vector>
34#include <tools/pcb_tool_base.h>
35
36
37class PCB_EDIT_FRAME;
38class DIALOG_DRC;
39class DRC_ITEM;
41class DRC_ENGINE;
42
43
44class DRC_TOOL : public PCB_TOOL_BASE
45{
46public:
47 DRC_TOOL();
48 ~DRC_TOOL();
49
51 void Reset( RESET_REASON aReason ) override;
52
59 void ShowDRCDialog( wxWindow* aParent );
60
61 int ShowDRCDialog( const TOOL_EVENT& aEvent );
62
64
68 bool IsDRCDialogShown();
69
73 bool IsDRCRunning() const { return m_drcRunning; }
74
78 void DestroyDRCDialog();
79
80 std::shared_ptr<DRC_ENGINE> GetDRCEngine() { return m_drcEngine; }
81
85 void RunTests( PROGRESS_REPORTER* aProgressReporter, bool aRefillZones,
86 bool aReportAllTrackErrors, bool aTestFootprints );
87
88 int PrevMarker( const TOOL_EVENT& aEvent );
89 int NextMarker( const TOOL_EVENT& aEvent );
90 int CrossProbe( const TOOL_EVENT& aEvent );
91
96 void CrossProbe( const PCB_MARKER* aMarker );
97
98 int ExcludeMarker( const TOOL_EVENT& aEvent );
99
100private:
102 void setTransitions() override;
103
107 void updatePointers( bool aDRCWasCancelled );
108
109 EDA_UNITS userUnits() const { return m_editFrame->GetUserUnits(); }
110
111private:
116 std::shared_ptr<DRC_ENGINE> m_drcEngine;
117};
118
119
120#endif // DRC_TOOL_H
Information pertinent to a Pcbnew printed circuit board.
Definition board.h:317
Design Rule Checker object that performs all the DRC tests.
Definition drc_engine.h:84
EDA_UNITS userUnits() const
Definition drc_tool.h:109
void updatePointers(bool aDRCWasCancelled)
Update needed pointers from the one pointer which is known not to change.
Definition drc_tool.cpp:208
void ShowDRCDialog(wxWindow *aParent)
Opens the DRC dialog.
Definition drc_tool.cpp:71
int NextMarker(const TOOL_EVENT &aEvent)
Definition drc_tool.cpp:237
void DestroyDRCDialog()
Close and free the DRC dialog.
Definition drc_tool.cpp:122
std::shared_ptr< DRC_ENGINE > GetDRCEngine()
Definition drc_tool.h:80
DIALOG_DRC * m_drcDialog
Definition drc_tool.h:114
PCB_EDIT_FRAME * m_editFrame
Definition drc_tool.h:112
DIALOG_DRC * GetDRCDialog()
Definition drc_tool.h:63
bool IsDRCDialogShown()
Check to see if the DRC_TOOL dialog is currently shown.
Definition drc_tool.cpp:113
int CrossProbe(const TOOL_EVENT &aEvent)
Definition drc_tool.cpp:254
bool IsDRCRunning() const
Check to see if the DRC engine is running the tests.
Definition drc_tool.h:73
int ExcludeMarker(const TOOL_EVENT &aEvent)
Definition drc_tool.cpp:278
void setTransitions() override
< Set up handlers for various events.
Definition drc_tool.cpp:287
BOARD * m_pcb
Definition drc_tool.h:113
int PrevMarker(const TOOL_EVENT &aEvent)
Definition drc_tool.cpp:220
bool m_drcRunning
Definition drc_tool.h:115
void RunTests(PROGRESS_REPORTER *aProgressReporter, bool aRefillZones, bool aReportAllTrackErrors, bool aTestFootprints)
Run the DRC tests.
Definition drc_tool.cpp:132
std::shared_ptr< DRC_ENGINE > m_drcEngine
Definition drc_tool.h:116
The main frame for Pcbnew.
PCB_TOOL_BASE(TOOL_ID aId, const std::string &aName)
Constructor.
A progress reporter interface for use in multi-threaded environments.
RESET_REASON
Determine the reason of reset for a tool.
Definition tool_base.h:78
Generic, UI-independent tool event.
Definition tool_event.h:171
Multi-thread safe progress reporter dialog, intended for use of tasks that parallel reporting back of...
EDA_UNITS
Definition eda_units.h:48
void Reset() override