KiCad PCB EDA Suite
Loading...
Searching...
No Matches
graphics_cleaner.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, see <https://www.gnu.org/licenses/>.
18
*/
19
20
#ifndef KICAD_GRAPHICS_CLEANER_H
21
#define KICAD_GRAPHICS_CLEANER_H
22
23
#include <
board.h
>
24
25
class
FOOTPRINT
;
26
class
BOARD_COMMIT
;
27
class
CLEANUP_ITEM
;
28
class
TOOL_MANAGER
;
29
30
31
// Helper class used to clean tracks and vias
32
class
GRAPHICS_CLEANER
33
{
34
public
:
35
GRAPHICS_CLEANER
(
const
DRAWINGS
& aDrawings,
FOOTPRINT
* aParentFootprint,
BOARD_COMMIT
& aCommit,
36
TOOL_MANAGER
* aToolManager );
37
45
void
CleanupBoard
(
bool
aDryRun, std::vector<std::shared_ptr<CLEANUP_ITEM>>* aItemsList,
46
bool
aMergeRects,
bool
aDeleteRedundant,
bool
aMergePads,
47
bool
aFixBoardOutlines,
int
aTolerance );
48
49
private
:
50
bool
isNullShape
(
PCB_SHAPE
* aShape );
51
bool
areEquivalent
(
PCB_SHAPE
* aShape1,
PCB_SHAPE
* aShape2 );
52
53
void
cleanupShapes
();
54
void
fixBoardOutlines
();
55
void
mergeRects
();
56
void
mergePads
();
57
58
private
:
59
const
DRAWINGS
&
m_drawings
;
60
FOOTPRINT
*
m_parentFootprint
;
// nullptr if not in Footprint Editor
61
BOARD_COMMIT
&
m_commit
;
62
TOOL_MANAGER
*
m_toolMgr
;
63
bool
m_dryRun
;
64
int
m_epsilon
;
65
int
m_maxError
;
66
int
m_outlinesTolerance
;
67
68
std::vector<std::shared_ptr<CLEANUP_ITEM>>*
m_itemsList
;
69
};
70
71
72
#endif
//KICAD_GRAPHICS_CLEANER_H
board.h
BOARD_COMMIT
Definition
board_commit.h:45
CLEANUP_ITEM
Definition
cleanup_item.h:46
FOOTPRINT
Definition
footprint.h:288
GRAPHICS_CLEANER::m_toolMgr
TOOL_MANAGER * m_toolMgr
Definition
graphics_cleaner.h:62
GRAPHICS_CLEANER::m_epsilon
int m_epsilon
Definition
graphics_cleaner.h:64
GRAPHICS_CLEANER::m_dryRun
bool m_dryRun
Definition
graphics_cleaner.h:63
GRAPHICS_CLEANER::GRAPHICS_CLEANER
GRAPHICS_CLEANER(const DRAWINGS &aDrawings, FOOTPRINT *aParentFootprint, BOARD_COMMIT &aCommit, TOOL_MANAGER *aToolManager)
Definition
graphics_cleaner.cpp:35
GRAPHICS_CLEANER::m_commit
BOARD_COMMIT & m_commit
Definition
graphics_cleaner.h:61
GRAPHICS_CLEANER::m_outlinesTolerance
int m_outlinesTolerance
Definition
graphics_cleaner.h:66
GRAPHICS_CLEANER::fixBoardOutlines
void fixBoardOutlines()
Definition
graphics_cleaner.cpp:220
GRAPHICS_CLEANER::m_itemsList
std::vector< std::shared_ptr< CLEANUP_ITEM > > * m_itemsList
Definition
graphics_cleaner.h:68
GRAPHICS_CLEANER::mergeRects
void mergeRects()
Definition
graphics_cleaner.cpp:246
GRAPHICS_CLEANER::m_parentFootprint
FOOTPRINT * m_parentFootprint
Definition
graphics_cleaner.h:60
GRAPHICS_CLEANER::mergePads
void mergePads()
Definition
graphics_cleaner.cpp:390
GRAPHICS_CLEANER::CleanupBoard
void CleanupBoard(bool aDryRun, std::vector< std::shared_ptr< CLEANUP_ITEM > > *aItemsList, bool aMergeRects, bool aDeleteRedundant, bool aMergePads, bool aFixBoardOutlines, int aTolerance)
the cleanup function.
Definition
graphics_cleaner.cpp:50
GRAPHICS_CLEANER::m_drawings
const DRAWINGS & m_drawings
Definition
graphics_cleaner.h:59
GRAPHICS_CLEANER::isNullShape
bool isNullShape(PCB_SHAPE *aShape)
Definition
graphics_cleaner.cpp:90
GRAPHICS_CLEANER::cleanupShapes
void cleanupShapes()
Definition
graphics_cleaner.cpp:175
GRAPHICS_CLEANER::areEquivalent
bool areEquivalent(PCB_SHAPE *aShape1, PCB_SHAPE *aShape2)
Definition
graphics_cleaner.cpp:125
GRAPHICS_CLEANER::m_maxError
int m_maxError
Definition
graphics_cleaner.h:65
PCB_SHAPE
Definition
pcb_shape.h:35
TOOL_MANAGER
Master controller class:
Definition
tool_manager.h:58
DRAWINGS
std::deque< BOARD_ITEM * > DRAWINGS
Definition
pcb_item_containers.h:44
src
pcbnew
graphics_cleaner.h
Generated on Fri Jun 26 2026 00:05:40 for KiCad PCB EDA Suite by
1.13.2