20#ifndef LIBREPCB_CORE_SCENEDATA3D_H
21#define LIBREPCB_CORE_SCENEDATA3D_H
26#include "../geometry/circle.h"
27#include "../geometry/path.h"
28#include "../geometry/polygon.h"
29#include "../utils/transform.h"
109 explicit SceneData3D(std::shared_ptr<FileSystem> fs =
nullptr,
110 bool autoBoardOutline =
false) noexcept;
160 const QString& stepFile,
const Point3D& stepPosition,
161 const Angle3D& stepRotation,
const QString& name)
noexcept;
169 const Layer& endLayer,
170 const std::optional<PositiveLength>& stopMaskDiameterTop,
171 const std::optional<PositiveLength>& stopMaskDiameterBottom)
noexcept;
173 bool plated,
bool via,
const Transform& transform)
noexcept;
176 void preprocess(
bool center,
bool sortDevices =
false,
The Circle class.
Definition circle.h:46
Base class / interface for all file system implementations.
Definition filesystem.h:45
The Layer class provides all supported geometry layers.
Definition layer.h:42
The Length class is used to represent a length (for example 12.75 millimeters)
Definition length.h:82
The Path class represents a list of vertices connected by straight lines or circular arc segments.
Definition path.h:59
Predefined colors relevant for PCB fabrication.
Definition pcbcolor.h:41
The Point class is used to represent a point/coordinate/vector, for example (1.2mm; 5....
Definition point.h:78
The Polygon class.
Definition polygon.h:45
3D scene data representing a board with package models
Definition scenedata3d.h:52
QList< HoleData > mHoles
Cleared by preprocess().
Definition scenedata3d.h:199
const QSet< const Layer * > & getSilkscreenLayersBot() const noexcept
Definition scenedata3d.h:124
std::shared_ptr< FileSystem > mFileSystem
Definition scenedata3d.h:185
const QList< CircleData > & getCircles() const noexcept
Definition scenedata3d.h:131
const QList< AreaData > & getAreas() const noexcept
Definition scenedata3d.h:135
bool mAutoBoardOutline
Definition scenedata3d.h:191
const PcbColor * getSilkscreen() const noexcept
Definition scenedata3d.h:120
void addPolygon(const Polygon &polygon, const Transform &transform) noexcept
Definition scenedata3d.cpp:69
QSet< const Layer * > mSilkscreenLayersBot
Definition scenedata3d.h:190
void setThickness(const PositiveLength &value) noexcept
Definition scenedata3d.h:138
void setSolderResist(const PcbColor *value) noexcept
Definition scenedata3d.h:141
void setProjectName(const QString &value) noexcept
Definition scenedata3d.h:156
const QList< PolygonData > & getPolygons() const noexcept
Definition scenedata3d.h:130
void setAutoBoardOutline(bool value) noexcept
Definition scenedata3d.h:155
void addDevice(const Uuid &uuid, const Transform &transform, const QString &stepFile, const Point3D &stepPosition, const Angle3D &stepRotation, const QString &name) noexcept
Definition scenedata3d.cpp:60
void setSilkscreen(const PcbColor *value) noexcept
Definition scenedata3d.h:144
QList< DeviceData > mDevices
Definition scenedata3d.h:194
bool getAutoBoardOutline() const noexcept
Definition scenedata3d.h:127
const QString & getProjectName() const noexcept
Definition scenedata3d.h:128
void addStroke(const Layer &layer, const QVector< Path > &paths, const Length &width, const Transform &transform) noexcept
Definition scenedata3d.cpp:85
void addArea(const Layer &layer, const Path &outline, const Transform &transform) noexcept
Definition scenedata3d.cpp:109
void preprocess(bool center, bool sortDevices=false, Length *width=nullptr, Length *height=nullptr)
Definition scenedata3d.cpp:117
QList< AreaData > mAreas
Definition scenedata3d.h:200
QList< StrokeData > mStrokes
Cleared by preprocess().
Definition scenedata3d.h:197
PositiveLength mThickness
Definition scenedata3d.h:186
const std::shared_ptr< FileSystem > & getFileSystem() const noexcept
Definition scenedata3d.h:115
void setSilkscreenLayersBot(const QSet< const Layer * > &value) noexcept
Definition scenedata3d.h:150
QList< PolygonData > mPolygons
Cleared by preprocess().
Definition scenedata3d.h:195
bool isLayerNeeded(const Layer &layer) const noexcept
Definition scenedata3d.cpp:293
QList< CircleData > mCircles
Cleared by preprocess().
Definition scenedata3d.h:196
void addHole(const NonEmptyPath &path, const PositiveLength &diameter, bool plated, bool via, const Transform &transform) noexcept
Definition scenedata3d.cpp:103
const PositiveLength & getThickness() const noexcept
Definition scenedata3d.h:118
SceneData3D & operator=(const SceneData3D &rhs)=delete
const QList< ViaData > & getVias() const noexcept
Definition scenedata3d.h:133
void setSilkscreenLayersTop(const QSet< const Layer * > &value) noexcept
Definition scenedata3d.h:145
const QSet< const Layer * > & getSilkscreenLayersTop() const noexcept
Definition scenedata3d.h:121
const QList< StrokeData > & getStrokes() const noexcept
Definition scenedata3d.h:132
QList< ViaData > mVias
Definition scenedata3d.h:198
const QList< HoleData > & getHoles() const noexcept
Definition scenedata3d.h:134
void addCircle(const Circle &circle, const Transform &transform) noexcept
Definition scenedata3d.cpp:77
const PcbColor * mSolderResist
Definition scenedata3d.h:187
const QList< DeviceData > & getDevices() const noexcept
Definition scenedata3d.h:129
const PcbColor * mSilkscreen
Definition scenedata3d.h:188
void addVia(const Point &position, const PositiveLength &drillDiameter, const PositiveLength &size, const Layer &startLayer, const Layer &endLayer, const std::optional< PositiveLength > &stopMaskDiameterTop, const std::optional< PositiveLength > &stopMaskDiameterBottom) noexcept
Definition scenedata3d.cpp:94
const PcbColor * getSolderResist() const noexcept
Definition scenedata3d.h:119
QSet< const Layer * > mSilkscreenLayersTop
Definition scenedata3d.h:189
QString mProjectName
Definition scenedata3d.h:192
The Uuid class is a replacement for QUuid to get UUID strings without {} braces.
Definition uuid.h:56
Definition occmodel.cpp:77
type_safe::constrained_type< Length, PositiveLengthConstraint, PositiveLengthVerifier > PositiveLength
Definition length.h:810
type_safe::constrained_type< Path, NonEmptyPathConstraint, NonEmptyPathVerifier > NonEmptyPath
Definition path.h:238
std::tuple< Length, Length, Length > Point3D
Definition length.h:987
std::tuple< Angle, Angle, Angle > Angle3D
Definition angle.h:458
Definition scenedata3d.h:102
Transform transform
Reset by preprocess().
Definition scenedata3d.h:105
Path outline
Definition scenedata3d.h:104
const Layer * layer
Definition scenedata3d.h:103
Definition scenedata3d.h:71
Transform transform
Definition scenedata3d.h:73
Circle circle
Definition scenedata3d.h:72
Definition scenedata3d.h:57
Transform transform
Definition scenedata3d.h:59
Uuid uuid
Definition scenedata3d.h:58
Angle3D stepRotation
Definition scenedata3d.h:62
QString name
Definition scenedata3d.h:63
QString stepFile
Definition scenedata3d.h:60
Point3D stepPosition
Definition scenedata3d.h:61
Definition scenedata3d.h:93
const Layer * copperLayer
nullptr for through-hole.
Definition scenedata3d.h:98
bool plated
Definition scenedata3d.h:96
bool via
Definition scenedata3d.h:97
Transform transform
Reset by preprocess().
Definition scenedata3d.h:99
PositiveLength diameter
Definition scenedata3d.h:95
NonEmptyPath path
Definition scenedata3d.h:94
Definition scenedata3d.h:66
Transform transform
Definition scenedata3d.h:68
Polygon polygon
Definition scenedata3d.h:67
Definition scenedata3d.h:76
Transform transform
Definition scenedata3d.h:80
QVector< Path > paths
Definition scenedata3d.h:78
Length width
Definition scenedata3d.h:79
const Layer * layer
Definition scenedata3d.h:77
Definition scenedata3d.h:83
PositiveLength size
Definition scenedata3d.h:86
const Layer * endLayer
Definition scenedata3d.h:88
std::optional< PositiveLength > stopMaskDiameterTop
Definition scenedata3d.h:89
const Layer * startLayer
Definition scenedata3d.h:87
Point position
Definition scenedata3d.h:84
std::optional< PositiveLength > stopMaskDiameterBottom
Definition scenedata3d.h:90
PositiveLength drillDiameter
Definition scenedata3d.h:85