20#ifndef LIBREPCB_CORE_VIA_H
21#define LIBREPCB_CORE_VIA_H
26#include "../exceptions.h"
27#include "../serialization/serializableobjectlist.h"
28#include "../types/length.h"
29#include "../types/maskconfig.h"
30#include "../types/point.h"
42class BoundedUnsignedRatio;
56 Q_DECLARE_TR_FUNCTIONS(
Via)
72 Via(
const Via& other)
noexcept;
73 Via(
const Uuid& uuid,
const Via& other)
noexcept;
75 const Point& position,
const std::optional<PositiveLength>& drillDiameter,
76 const std::optional<PositiveLength>& size,
89 const std::optional<PositiveLength>&
getSize() const noexcept {
119 bool operator==(const
Via& rhs) const noexcept;
120 bool operator!=(const
Via& rhs) const noexcept {
return !(*
this == rhs); }
129 const
Layer& to) noexcept;
131 const
Layer& to) noexcept;
152 static constexpr const char* tagname =
"via";
The BoundedUnsignedRatio class represents a ratio limited to a range specified by min/max values.
Definition boundedunsignedratio.h:46
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 MaskConfig class defines how to add automatic stop mask or solder paste.
Definition maskconfig.h:45
The Path class represents a list of vertices connected by straight lines or circular arc segments.
Definition path.h:59
The Point class is used to represent a point/coordinate/vector, for example (1.2mm; 5....
Definition point.h:78
The SExpression class.
Definition sexpression.h:69
The Signal class is used to emit signals on non-QObject derived classes.
Definition signalslot.h:65
The Slot class is used to receive signals from non-QObject derived classes.
Definition signalslot.h:170
The Uuid class is a replacement for QUuid to get UUID strings without {} braces.
Definition uuid.h:56
The Via class represents a via of a board.
Definition via.h:55
std::optional< PositiveLength > mDrillDiameter
Guaranteed to be <= mSize.
Definition via.h:142
bool setExposureConfig(const MaskConfig &config) noexcept
Definition via.cpp:221
static Path getOutline(const PositiveLength &size, const Length &expansion=Length(0)) noexcept
Definition via.cpp:280
bool setPosition(const Point &position) noexcept
Definition via.cpp:190
Via & operator=(const Via &rhs) noexcept
Definition via.cpp:262
~Via() noexcept
Definition via.cpp:125
const Layer * mEndLayer
Definition via.h:139
const std::optional< PositiveLength > & getDrillDiameter() const noexcept
Definition via.h:86
bool isBlind() const noexcept
Definition via.cpp:137
const MaskConfig & getExposureConfig() const noexcept
Definition via.h:92
Uuid mUuid
Definition via.h:137
bool isThrough() const noexcept
Definition via.cpp:132
static PositiveLength calcSizeFromRules(const PositiveLength &drill, const BoundedUnsignedRatio &ratio) noexcept
Definition via.cpp:275
const Layer & getEndLayer() const noexcept
Definition via.h:84
bool isBuried() const noexcept
Definition via.cpp:144
const Layer & getStartLayer() const noexcept
Definition via.h:83
bool setLayers(const Layer &from, const Layer &to)
Definition via.cpp:171
bool setDrillAndSize(const std::optional< PositiveLength > &drill, const std::optional< PositiveLength > &size)
Definition via.cpp:200
Signal< Via, Event > onEdited
Definition via.h:67
const std::optional< PositiveLength > & getSize() const noexcept
Definition via.h:89
std::optional< PositiveLength > mSize
Guaranteed to be >= mDrillDiameter.
Definition via.h:143
bool isOnLayer(const Layer &layer) const noexcept
Definition via.cpp:149
const Layer * mStartLayer
Definition via.h:138
const Point & getPosition() const noexcept
Definition via.h:85
void serialize(SExpression &root) const
Serialize into librepcb::SExpression node.
Definition via.cpp:235
const Uuid & getUuid() const noexcept
Definition via.h:82
MaskConfig mExposureConfig
Definition via.h:144
bool setUuid(const Uuid &uuid) noexcept
Definition via.cpp:161
bool isOnAnyLayer(const QSet< const Layer * > &layers) const noexcept
Definition via.cpp:153
Point mPosition
Definition via.h:140
static QPainterPath toQPainterPathPx(const PositiveLength &drillDiameter, const PositiveLength &size, const Length &expansion=Length(0)) noexcept
Definition via.cpp:305
Slot< Via, Event > OnEditedSlot
Definition via.h:68
Definition occmodel.cpp:77
type_safe::constrained_type< Length, PositiveLengthConstraint, PositiveLengthVerifier > PositiveLength
Definition length.h:810