20#ifndef LIBREPCB_CORE_BOARDGERBEREXPORT_H
21#define LIBREPCB_CORE_BOARDGERBEREXPORT_H
26#include "../../export/excellongenerator.h"
27#include "../../export/gerbergenerator.h"
28#include "../../fileio/filepath.h"
29#include "../../types/length.h"
31#include <optional/tl/optional.hpp>
47class BoardFabricationOutputSettings;
66 typedef std::pair<const Layer*, const Layer*>
LayerPair;
127 const QString& netName)
const;
129 const Layer& layer)
const;
131 const Layer& layer)
const;
135 const tl::optional<QString>& net,
136 const QString& component)
const;
138 const Layer& layer)
const;
149 const Layer& layer)
noexcept;
The BI_Device class.
Definition: bi_device.h:57
The BI_Via class.
Definition: bi_via.h:44
The BoardFabricationOutputSettings class.
Definition: boardfabricationoutputsettings.h:43
The BoardGerberExport class.
Definition: boardgerberexport.h:61
int mCurrentInnerCopperLayer
Definition: boardgerberexport.h:158
void exportDrillsPth(const BoardFabricationOutputSettings &settings) const
Definition: boardgerberexport.cpp:345
const Board & mBoard
Definition: boardgerberexport.h:153
void drawVia(GerberGenerator &gen, const BI_Via &via, const Layer &layer, const QString &netName) const
Definition: boardgerberexport.cpp:749
void drawPolygon(GerberGenerator &gen, const Layer &layer, const Path &outline, const UnsignedLength &lineWidth, bool fill, GerberGenerator::Function function, const tl::optional< QString > &net, const QString &component) const
Definition: boardgerberexport.cpp:982
void exportLayerBottomSilkscreen(const BoardFabricationOutputSettings &settings) const
Definition: boardgerberexport.cpp:511
void setBeforeWriteCallback(BeforeWriteCallback cb)
Definition: boardgerberexport.cpp:110
const QVector< FilePath > & getWrittenFiles() const noexcept
Definition: boardgerberexport.h:78
BoardSide
Definition: boardgerberexport.h:65
void exportLayerTopSolderPaste(const BoardFabricationOutputSettings &settings) const
Definition: boardgerberexport.cpp:535
void exportLayerBoardOutlines(const BoardFabricationOutputSettings &settings) const
Definition: boardgerberexport.cpp:384
BoardGerberExport()=delete
std::pair< const Layer *, const Layer * > LayerPair
Definition: boardgerberexport.h:66
BoardGerberExport & operator=(const BoardGerberExport &rhs)=delete
void drawLayer(GerberGenerator &gen, const Layer &layer) const
Definition: boardgerberexport.cpp:645
void exportLayerBottomSolderPaste(const BoardFabricationOutputSettings &settings) const
Definition: boardgerberexport.cpp:554
FilePath getOutputDirectory(const BoardFabricationOutputSettings &settings) const noexcept
Definition: boardgerberexport.cpp:96
const Project & mProject
Definition: boardgerberexport.h:152
void exportDrillsNpth(const BoardFabricationOutputSettings &settings) const
Definition: boardgerberexport.cpp:319
QString getAttributeValue(const QString &key) const noexcept
Definition: boardgerberexport.cpp:1063
~BoardGerberExport() noexcept
Definition: boardgerberexport.cpp:89
QDateTime mCreationDateTime
Definition: boardgerberexport.h:156
void exportLayerTopCopper(const BoardFabricationOutputSettings &settings) const
Definition: boardgerberexport.cpp:398
void exportPcbLayers(const BoardFabricationOutputSettings &settings) const
Definition: boardgerberexport.cpp:118
QMap< LayerPair, QList< const BI_Via * > > getBlindBuriedVias() const
Definition: boardgerberexport.cpp:631
void exportLayerInnerCopper(const BoardFabricationOutputSettings &settings) const
Definition: boardgerberexport.cpp:427
void exportLayerBottomCopper(const BoardFabricationOutputSettings &settings) const
Definition: boardgerberexport.cpp:412
void trackFileBeforeWrite(const FilePath &fp) const
Definition: boardgerberexport.cpp:1092
void exportComponentLayer(BoardSide side, const Uuid &assemblyVariant, const FilePath &filePath) const
Definition: boardgerberexport.cpp:138
FilePath getOutputFilePath(QString path) const noexcept
Definition: boardgerberexport.cpp:1048
void exportLayerTopSolderMask(const BoardFabricationOutputSettings &settings) const
Definition: boardgerberexport.cpp:449
const Layer * mCurrentEndLayer
Definition: boardgerberexport.h:160
std::function< void(const FilePath &)> BeforeWriteCallback
Definition: boardgerberexport.h:67
QVector< Path > getComponentOutlines(const BI_Device &device, const Layer &layer) const
Definition: boardgerberexport.cpp:1005
BoardGerberExport(const BoardGerberExport &other)=delete
bool mRemoveObsoleteFiles
Definition: boardgerberexport.h:154
void exportDrillsMerged(const BoardFabricationOutputSettings &settings) const
Definition: boardgerberexport.cpp:300
QVector< FilePath > mWrittenFiles
Definition: boardgerberexport.h:161
BeforeWriteCallback mBeforeWriteCallback
Definition: boardgerberexport.h:155
void setRemoveObsoleteFiles(bool remove)
Definition: boardgerberexport.cpp:106
int drawNpthDrills(ExcellonGenerator &gen) const
Definition: boardgerberexport.cpp:573
void exportDrillsBlindBuried(const BoardFabricationOutputSettings &settings) const
Definition: boardgerberexport.cpp:363
void exportLayerBottomSolderMask(const BoardFabricationOutputSettings &settings) const
Definition: boardgerberexport.cpp:468
void drawFootprintPad(GerberGenerator &gen, const BI_FootprintPad &pad, const Layer &layer) const
Definition: boardgerberexport.cpp:863
void drawDevice(GerberGenerator &gen, const BI_Device &device, const Layer &layer) const
Definition: boardgerberexport.cpp:773
void exportLayerTopSilkscreen(const BoardFabricationOutputSettings &settings) const
Definition: boardgerberexport.cpp:487
static UnsignedLength calcWidthOfLayer(const UnsignedLength &width, const Layer &layer) noexcept
Definition: boardgerberexport.cpp:1103
const Layer * mCurrentStartLayer
Definition: boardgerberexport.h:159
QString mProjectName
Definition: boardgerberexport.h:157
int drawPthDrills(ExcellonGenerator &gen) const
Definition: boardgerberexport.cpp:596
std::unique_ptr< ExcellonGenerator > createExcellonGenerator(const BoardFabricationOutputSettings &settings, ExcellonGenerator::Plating plating) const
Definition: boardgerberexport.cpp:1038
The Board class represents a PCB of a project and is always part of a circuit.
Definition: board.h:73
The ExcellonGenerator class.
Definition: excellongenerator.h:47
Plating
Definition: excellongenerator.h:52
This class represents absolute, well-formatted paths to files or directories.
Definition: filepath.h:129
The GerberGenerator class.
Definition: gerbergenerator.h:51
GerberApertureList::Function Function
Definition: gerbergenerator.h:59
The Layer class provides all supported geometry layers.
Definition: layer.h:42
The Path class represents a list of vertices connected by straight lines or circular arc segments.
Definition: path.h:58
The Project class represents a whole (opened) project with all its content.
Definition: project.h:71
The Uuid class is a replacement for QUuid to get UUID strings without {} braces.
Definition: uuid.h:58
Definition: occmodel.cpp:77
type_safe::constrained_type< Length, UnsignedLengthConstraint, UnsignedLengthVerifier > UnsignedLength
Definition: length.h:696