KiCad PCB EDA Suite
Loading...
Searching...
No Matches
board_statistics_report.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 modify it
7
* under the terms of the GNU General Public License as published by the
8
* Free Software Foundation, either version 3 of the License, or (at your
9
* option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful, but
12
* WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License along
17
* with this program. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
20
#ifndef PCBNEW_BOARD_STATISTICS_REPORT_H
21
#define PCBNEW_BOARD_STATISTICS_REPORT_H
22
23
#include <
board_statistics.h
>
24
#include <
units_provider.h
>
25
26
#include <vector>
27
28
class
BOARD
;
29
enum class
VIATYPE
: int;
30
31
struct
BOARD_STATISTICS_OPTIONS
32
{
33
bool
excludeFootprintsWithoutPads
=
false
;
34
bool
subtractHolesFromBoardArea
=
false
;
35
bool
subtractHolesFromCopperAreas
=
false
;
36
};
37
38
struct
BOARD_STATISTICS_FP_ENTRY
39
{
40
BOARD_STATISTICS_FP_ENTRY
(
int
aMask,
int
aValue,
const
wxString& aTitle ) :
41
attributeMask
( aMask ),
42
attributeValue
( aValue ),
43
title
( aTitle )
44
{
45
}
46
47
int
attributeMask
;
48
int
attributeValue
;
49
wxString
title
;
50
int
frontCount
= 0;
51
int
backCount
= 0;
52
};
53
54
template
<
typename
T>
55
struct
BOARD_STATISTICS_INFO_ENTRY
56
{
57
BOARD_STATISTICS_INFO_ENTRY
(
T
aAttribute,
const
wxString& aTitle ) :
58
attribute
( aAttribute ),
59
title
( aTitle )
60
{
61
}
62
63
T
attribute
;
64
wxString
title
;
65
int
quantity
= 0;
66
};
67
68
struct
BOARD_STATISTICS_DATA
69
{
70
BOARD_STATISTICS_DATA
();
71
72
void
ResetCounts
();
73
74
bool
hasOutline
;
75
int
boardWidth
;
76
int
boardHeight
;
77
double
boardArea
;
78
double
frontCopperArea
;
79
double
backCopperArea
;
80
int
minClearanceTrackToTrack
;
81
int
minTrackWidth
;
82
int
minDrillSize
;
83
int
boardThickness
;
84
85
std::vector<BOARD_STATISTICS_FP_ENTRY>
footprintEntries
;
86
std::vector<BOARD_STATISTICS_INFO_ENTRY<PAD_ATTRIB>>
padEntries
;
87
std::vector<BOARD_STATISTICS_INFO_ENTRY<PAD_PROP>>
padPropertyEntries
;
88
std::vector<BOARD_STATISTICS_INFO_ENTRY<VIATYPE>>
viaEntries
;
89
std::vector<DRILL_LINE_ITEM>
drillEntries
;
90
};
91
92
void
InitializeBoardStatisticsData
(
BOARD_STATISTICS_DATA
& aData );
93
94
void
ComputeBoardStatistics
(
BOARD
* aBoard,
const
BOARD_STATISTICS_OPTIONS
& aOptions,
BOARD_STATISTICS_DATA
& aData );
95
96
wxString
FormatBoardStatisticsReport
(
const
BOARD_STATISTICS_DATA
& aData,
BOARD
* aBoard,
97
const
UNITS_PROVIDER
& aUnitsProvider,
const
wxString& aProjectName,
98
const
wxString& aBoardName );
99
100
wxString
FormatBoardStatisticsJson
(
const
BOARD_STATISTICS_DATA
& aData,
BOARD
* aBoard,
101
const
UNITS_PROVIDER
& aUnitsProvider,
const
wxString& aProjectName,
102
const
wxString& aBoardName );
103
104
#endif
board_statistics.h
FormatBoardStatisticsJson
wxString FormatBoardStatisticsJson(const BOARD_STATISTICS_DATA &aData, BOARD *aBoard, const UNITS_PROVIDER &aUnitsProvider, const wxString &aProjectName, const wxString &aBoardName)
Definition
board_statistics_report.cpp:624
ComputeBoardStatistics
void ComputeBoardStatistics(BOARD *aBoard, const BOARD_STATISTICS_OPTIONS &aOptions, BOARD_STATISTICS_DATA &aData)
Definition
board_statistics_report.cpp:148
FormatBoardStatisticsReport
wxString FormatBoardStatisticsReport(const BOARD_STATISTICS_DATA &aData, BOARD *aBoard, const UNITS_PROVIDER &aUnitsProvider, const wxString &aProjectName, const wxString &aBoardName)
Definition
board_statistics_report.cpp:461
InitializeBoardStatisticsData
void InitializeBoardStatisticsData(BOARD_STATISTICS_DATA &aData)
Definition
board_statistics_report.cpp:92
BOARD
Information pertinent to a Pcbnew printed circuit board.
Definition
board.h:322
UNITS_PROVIDER
Definition
units_provider.h:35
VIATYPE
VIATYPE
Definition
pcb_track.h:67
BOARD_STATISTICS_DATA
Definition
board_statistics_report.h:69
BOARD_STATISTICS_DATA::minClearanceTrackToTrack
int minClearanceTrackToTrack
Definition
board_statistics_report.h:80
BOARD_STATISTICS_DATA::boardArea
double boardArea
Definition
board_statistics_report.h:77
BOARD_STATISTICS_DATA::padEntries
std::vector< BOARD_STATISTICS_INFO_ENTRY< PAD_ATTRIB > > padEntries
Definition
board_statistics_report.h:86
BOARD_STATISTICS_DATA::frontCopperArea
double frontCopperArea
Definition
board_statistics_report.h:78
BOARD_STATISTICS_DATA::minTrackWidth
int minTrackWidth
Definition
board_statistics_report.h:81
BOARD_STATISTICS_DATA::minDrillSize
int minDrillSize
Definition
board_statistics_report.h:82
BOARD_STATISTICS_DATA::ResetCounts
void ResetCounts()
Definition
board_statistics_report.cpp:60
BOARD_STATISTICS_DATA::footprintEntries
std::vector< BOARD_STATISTICS_FP_ENTRY > footprintEntries
Definition
board_statistics_report.h:85
BOARD_STATISTICS_DATA::viaEntries
std::vector< BOARD_STATISTICS_INFO_ENTRY< VIATYPE > > viaEntries
Definition
board_statistics_report.h:88
BOARD_STATISTICS_DATA::padPropertyEntries
std::vector< BOARD_STATISTICS_INFO_ENTRY< PAD_PROP > > padPropertyEntries
Definition
board_statistics_report.h:87
BOARD_STATISTICS_DATA::drillEntries
std::vector< DRILL_LINE_ITEM > drillEntries
Definition
board_statistics_report.h:89
BOARD_STATISTICS_DATA::BOARD_STATISTICS_DATA
BOARD_STATISTICS_DATA()
Definition
board_statistics_report.cpp:40
BOARD_STATISTICS_DATA::boardThickness
int boardThickness
Definition
board_statistics_report.h:83
BOARD_STATISTICS_DATA::boardHeight
int boardHeight
Definition
board_statistics_report.h:76
BOARD_STATISTICS_DATA::boardWidth
int boardWidth
Definition
board_statistics_report.h:75
BOARD_STATISTICS_DATA::backCopperArea
double backCopperArea
Definition
board_statistics_report.h:79
BOARD_STATISTICS_DATA::hasOutline
bool hasOutline
Definition
board_statistics_report.h:74
BOARD_STATISTICS_FP_ENTRY::attributeMask
int attributeMask
Definition
board_statistics_report.h:47
BOARD_STATISTICS_FP_ENTRY::attributeValue
int attributeValue
Definition
board_statistics_report.h:48
BOARD_STATISTICS_FP_ENTRY::backCount
int backCount
Definition
board_statistics_report.h:51
BOARD_STATISTICS_FP_ENTRY::BOARD_STATISTICS_FP_ENTRY
BOARD_STATISTICS_FP_ENTRY(int aMask, int aValue, const wxString &aTitle)
Definition
board_statistics_report.h:40
BOARD_STATISTICS_FP_ENTRY::frontCount
int frontCount
Definition
board_statistics_report.h:50
BOARD_STATISTICS_FP_ENTRY::title
wxString title
Definition
board_statistics_report.h:49
BOARD_STATISTICS_INFO_ENTRY::quantity
int quantity
Definition
board_statistics_report.h:65
BOARD_STATISTICS_INFO_ENTRY::BOARD_STATISTICS_INFO_ENTRY
BOARD_STATISTICS_INFO_ENTRY(T aAttribute, const wxString &aTitle)
Definition
board_statistics_report.h:57
BOARD_STATISTICS_INFO_ENTRY::title
wxString title
Definition
board_statistics_report.h:64
BOARD_STATISTICS_INFO_ENTRY::attribute
T attribute
Definition
board_statistics_report.h:63
BOARD_STATISTICS_OPTIONS
Definition
board_statistics_report.h:32
BOARD_STATISTICS_OPTIONS::subtractHolesFromCopperAreas
bool subtractHolesFromCopperAreas
Definition
board_statistics_report.h:35
BOARD_STATISTICS_OPTIONS::subtractHolesFromBoardArea
bool subtractHolesFromBoardArea
Definition
board_statistics_report.h:34
BOARD_STATISTICS_OPTIONS::excludeFootprintsWithoutPads
bool excludeFootprintsWithoutPads
Definition
board_statistics_report.h:33
TRANSLINE_PARAMETERS::T
@ T
Definition
transline_calculation_base.h:38
units_provider.h
src
pcbnew
board_statistics_report.h
Generated on Tue Oct 14 2025 00:08:14 for KiCad PCB EDA Suite by
1.13.2