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;
158 const QString& stepFile,
const Point3D& stepPosition,
159 const Angle3D& stepRotation,
const QString& name)
noexcept;
167 const Layer& endLayer,
168 const std::optional<PositiveLength>& stopMaskDiameterTop,
169 const std::optional<PositiveLength>& stopMaskDiameterBottom)
noexcept;
171 bool plated,
bool via,
const Transform& transform)
noexcept;
174 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:57
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:196
const QSet< const Layer * > & getSilkscreenLayersBot() const noexcept
Definition scenedata3d.h:124
std::shared_ptr< FileSystem > mFileSystem
Definition scenedata3d.h:181
const QList< CircleData > & getCircles() const noexcept
Definition scenedata3d.h:132
const QList< AreaData > & getAreas() const noexcept
Definition scenedata3d.h:136
bool mAutoBoardOutline
Definition scenedata3d.h:187
const PcbColor * getSilkscreen() const noexcept
Definition scenedata3d.h:120
void addPolygon(const Polygon &polygon, const Transform &transform) noexcept
Definition scenedata3d.cpp:70
QSet< const Layer * > mSilkscreenLayersBot
Definition scenedata3d.h:186
void setStepAlphaValue(qreal value) noexcept
Definition scenedata3d.h:153
qreal getStepAlphaValue() const noexcept
Definition scenedata3d.h:128
void setThickness(const PositiveLength &value) noexcept
Definition scenedata3d.h:139
void setSolderResist(const PcbColor *value) noexcept
Definition scenedata3d.h:142
void setProjectName(const QString &value) noexcept
Definition scenedata3d.h:154
const QList< PolygonData > & getPolygons() const noexcept
Definition scenedata3d.h:131
void setAutoBoardOutline(bool value) noexcept
Definition scenedata3d.h:152
void addDevice(const Uuid &uuid, const Transform &transform, const QString &stepFile, const Point3D &stepPosition, const Angle3D &stepRotation, const QString &name) noexcept
Definition scenedata3d.cpp:61
void setSilkscreen(const PcbColor *value) noexcept
Definition scenedata3d.h:145
QList< DeviceData > mDevices
Definition scenedata3d.h:191
bool getAutoBoardOutline() const noexcept
Definition scenedata3d.h:127
const QString & getProjectName() const noexcept
Definition scenedata3d.h:129
void addStroke(const Layer &layer, const QVector< Path > &paths, const Length &width, const Transform &transform) noexcept
Definition scenedata3d.cpp:80
void addArea(const Layer &layer, const Path &outline, const Transform &transform) noexcept
Definition scenedata3d.cpp:102
void preprocess(bool center, bool sortDevices=false, Length *width=nullptr, Length *height=nullptr)
Definition scenedata3d.cpp:107
QList< AreaData > mAreas
Definition scenedata3d.h:197
QList< StrokeData > mStrokes
Cleared by preprocess().
Definition scenedata3d.h:194
PositiveLength mThickness
Definition scenedata3d.h:182
const std::shared_ptr< FileSystem > & getFileSystem() const noexcept
Definition scenedata3d.h:115
void setSilkscreenLayersBot(const QSet< const Layer * > &value) noexcept
Definition scenedata3d.h:149
QList< PolygonData > mPolygons
Cleared by preprocess().
Definition scenedata3d.h:192
qreal mStepAlphaValue
Definition scenedata3d.h:188
QList< CircleData > mCircles
Cleared by preprocess().
Definition scenedata3d.h:193
void addHole(const NonEmptyPath &path, const PositiveLength &diameter, bool plated, bool via, const Transform &transform) noexcept
Definition scenedata3d.cpp:96
const PositiveLength & getThickness() const noexcept
Definition scenedata3d.h:118
SceneData3D & operator=(const SceneData3D &rhs)=delete
const QList< ViaData > & getVias() const noexcept
Definition scenedata3d.h:134
void setSilkscreenLayersTop(const QSet< const Layer * > &value) noexcept
Definition scenedata3d.h:146
const QSet< const Layer * > & getSilkscreenLayersTop() const noexcept
Definition scenedata3d.h:121
const QList< StrokeData > & getStrokes() const noexcept
Definition scenedata3d.h:133
QList< ViaData > mVias
Definition scenedata3d.h:195
const QList< HoleData > & getHoles() const noexcept
Definition scenedata3d.h:135
void addCircle(const Circle &circle, const Transform &transform) noexcept
Definition scenedata3d.cpp:75
const PcbColor * mSolderResist
Definition scenedata3d.h:183
const QList< DeviceData > & getDevices() const noexcept
Definition scenedata3d.h:130
const PcbColor * mSilkscreen
Definition scenedata3d.h:184
const PcbColor * getSolderResist() const noexcept
Definition scenedata3d.h:119
QSet< const Layer * > mSilkscreenLayersTop
Definition scenedata3d.h:185
QString mProjectName
Definition scenedata3d.h:189
void addVia(const Point &position, const PositiveLength &size, const PositiveLength &drillDiameter, const Layer &startLayer, const Layer &endLayer, const std::optional< PositiveLength > &stopMaskDiameterTop, const std::optional< PositiveLength > &stopMaskDiameterBottom) noexcept
Definition scenedata3d.cpp:86
The Uuid class is a replacement for QUuid to get UUID strings without {} braces.
Definition uuid.h:56
Definition occmodel.cpp:76
type_safe::constrained_type< Length, PositiveLengthConstraint, PositiveLengthVerifier > PositiveLength
Definition length.h:810
type_safe::constrained_type< Path, NonEmptyPathConstraint, NonEmptyPathVerifier > NonEmptyPath
Definition path.h:231
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:85
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:86