KiCad PCB EDA Suite
drc_keepout_tester.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 (C) 2020 KiCad Developers, see change_log.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 
25 #ifndef DRC_KEEPOUT_TESTER__H
26 #define DRC_KEEPOUT_TESTER__H
27 
28 #include <drc/drc_provider.h>
29 
30 
31 class BOARD;
32 
33 
35 {
36 public:
37  DRC_KEEPOUT_TESTER( MARKER_HANDLER aMarkerHandler );
38 
39  virtual ~DRC_KEEPOUT_TESTER() {};
40 
41  bool RunDRC( EDA_UNITS aUnits, BOARD& aBoard ) override;
42 
43 private:
44  bool checkTracksAndVias();
45  bool checkFootprints();
46  bool checkPads( MODULE* aModule );
47  bool checkDrawings();
48 
49 private:
52 
53  // Temp variables for use while testing:
56  int m_keepoutFlags; // bitset of DISALLOW_* flags
57  std::map<int, wxString> m_sources; // map of DISALLOW_* flag to source
58  wxString m_msg; // avoid lots of calls to wxString's c'tor.
59 };
60 
61 #endif // DRC_KEEPOUT_TESTER__H
EDA_UNITS
Definition: common.h:198
ZONE_CONTAINER handles a list of polygons defining a copper zone.
Definition: class_zone.h:61
bool checkPads(MODULE *aModule)
bool RunDRC(EDA_UNITS aUnits, BOARD &aBoard) override
Runs this provider against the given PCB with configured options (if any).
std::map< int, wxString > m_sources
DRC_TEST_PROVIDER is a base class that represents a DRC "provider" which runs some DRC functions over...
Definition: drc_provider.h:41
std::function< void(MARKER_PCB *)> MARKER_HANDLER
A callable that can handle a single generated PCB_MARKER.
Definition: drc_provider.h:47
BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:180
EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44
DRC_KEEPOUT_TESTER(MARKER_HANDLER aMarkerHandler)
ZONE_CONTAINER * m_zone