20#ifndef LIBREPCB_CORE_BI_PAD_H
21#define LIBREPCB_CORE_BI_PAD_H
26#include "../../../geometry/path.h"
27#include "../boardpaddata.h"
38class ComponentSignalInstance;
191 const
Layer& layer) const noexcept;
The Angle class is used to represent an angle (for example 12.75 degrees)
Definition angle.h:76
The Board Item Base (BI_Base) class.
Definition bi_base.h:45
The BI_Device class.
Definition bi_device.h:57
Event
Definition bi_device.h:62
Definition bi_netline.h:46
The BI_NetLine class.
Definition bi_netline.h:71
The BI_NetSegment class.
Definition bi_netsegment.h:53
A pad in a board (either standalone or from a footprint)
Definition bi_pad.h:49
void netSignalChanged(NetSignal *from, NetSignal *to)
Definition bi_pad.cpp:420
void setFunction(Pad::Function function) noexcept
Definition bi_pad.cpp:300
bool getMirrored() const noexcept
Get the absolute mirror state of the pad (global scene coordinates)
Definition bi_pad.h:134
Slot< BI_Pad, Event > OnEditedSlot
Definition bi_pad.h:77
void setRadius(const UnsignedLimitedRatio &radius) noexcept
Definition bi_pad.cpp:224
void setStopMaskConfig(const MaskConfig &config) noexcept
Definition bi_pad.cpp:242
void setShape(Pad::Shape shape) noexcept
Definition bi_pad.cpp:197
const Angle & getRotation() const noexcept
Get the absolute rotation of the pad (global scene coordinates)
Definition bi_pad.h:127
const Point & getPosition() const noexcept override
Get the absolute position of the pad (global scene coordinates)
Definition bi_pad.h:120
void updateText() noexcept
Definition bi_pad.cpp:471
void setComponentSideAndHoles(Pad::ComponentSide side, const PadHoleList &holes)
Definition bi_pad.cpp:269
ComponentSignalInstance * getComponentSignalInstance() const noexcept
Definition bi_pad.h:108
BI_NetSegment * mNetSegment
Definition bi_pad.h:198
const FootprintPad * mFootprintPad
Definition bi_pad.h:208
void removeFromBoard() override
Definition bi_pad.cpp:332
Pad::ComponentSide getComponentSide() const noexcept
Definition bi_pad.cpp:138
BI_Pad(const BI_Pad &other)=delete
QString getNetSignalName() const noexcept
Definition bi_pad.cpp:545
bool isConnectedOnLayer(const Layer &layer) const noexcept
Definition bi_pad.cpp:666
BI_Device * mDevice
Definition bi_pad.h:203
const PackagePad * getLibPackagePad() const noexcept
Definition bi_pad.h:107
QHash< const Layer *, QList< PadGeometry > > mGeometries
Definition bi_pad.h:237
BI_NetSegment * getNetSegment() const noexcept
Definition bi_pad.h:105
ComponentSignalInstance * mComponentSignalInstance
Definition bi_pad.h:220
bool isUsed() const noexcept
Definition bi_pad.h:140
Event
Definition bi_pad.h:54
@ SolderPasteConfigChanged
@ CustomShapeOutlineChanged
void setWidth(const PositiveLength &width) noexcept
Definition bi_pad.cpp:206
QList< PadGeometry > getGeometryOnLayer(const Layer &layer) const noexcept
Definition bi_pad.cpp:565
NetSignal * getNetSignal() const noexcept
Definition bi_pad.cpp:128
QString mText
Definition bi_pad.h:236
QString getPadNameOrUuid() const noexcept
Definition bi_pad.cpp:541
const QSet< BI_NetLine * > & getNetLines() const noexcept override
Definition bi_pad.h:170
void invalidatePlanes() noexcept
Definition bi_pad.cpp:524
const Layer & getSolderLayer() const noexcept
Definition bi_pad.cpp:148
void updateTransform() noexcept
Definition bi_pad.cpp:434
const QString & getText() const noexcept
Definition bi_pad.h:139
QString getComponentInstanceName() const noexcept
Definition bi_pad.cpp:537
~BI_Pad() noexcept
Definition bi_pad.cpp:120
BI_Pad & operator=(const BI_Pad &rhs)=delete
Angle mRotation
Definition bi_pad.h:234
const BoardPadData & getProperties() const noexcept
Definition bi_pad.h:112
bool isOnLayer(const Layer &layer) const noexcept
Definition bi_pad.cpp:160
void registerNetLine(BI_NetLine &netline) override
Definition bi_pad.cpp:344
void setSolderPasteConfig(const MaskConfig &config) noexcept
Definition bi_pad.cpp:251
void deviceEdited(const BI_Device &obj, BI_Device::Event event) noexcept
Definition bi_pad.cpp:399
QSet< BI_NetLine * > mRegisteredNetLines
Definition bi_pad.h:240
BoardPadData mProperties
Definition bi_pad.h:230
void setRotation(const Angle &rotation) noexcept
Definition bi_pad.cpp:189
const Uuid & getUuid() const noexcept
Definition bi_pad.h:113
void unregisterNetLine(BI_NetLine &netline) override
Definition bi_pad.cpp:387
UnsignedLength getSizeForMaskOffsetCalculaton() const noexcept
Definition bi_pad.cpp:553
void setCustomShapeOutline(const Path &outline) noexcept
Definition bi_pad.cpp:233
void updateGeometries() noexcept
Definition bi_pad.cpp:503
void addToBoard() override
Definition bi_pad.cpp:320
Signal< BI_Pad, Event > onEdited
Definition bi_pad.h:76
const PackagePad * mPackagePad
Definition bi_pad.h:214
BI_Device * getDevice() const noexcept
Definition bi_pad.h:106
TraceAnchor toTraceAnchor() const noexcept override
Definition bi_pad.cpp:168
void setHeight(const PositiveLength &height) noexcept
Definition bi_pad.cpp:215
BI_Device::OnEditedSlot mOnDeviceEditedSlot
Definition bi_pad.h:243
void setLocked(bool locked) noexcept
Definition bi_pad.cpp:308
bool mMirrored
Definition bi_pad.h:235
Point mPosition
Definition bi_pad.h:233
void setCopperClearance(const UnsignedLength &clearance) noexcept
Definition bi_pad.cpp:260
void setPosition(const Point &position) noexcept
Definition bi_pad.cpp:181
QString getLibraryDeviceName() const noexcept
Definition bi_pad.cpp:532
const QHash< const Layer *, QList< PadGeometry > > & getGeometries() const noexcept
Definition bi_pad.h:141
QList< PadGeometry > getGeometryOnCopperLayer(const Layer &layer) const noexcept
Definition bi_pad.cpp:613
The BoardPadData class represents a pad in a board.
Definition boardpaddata.h:43
The ComponentSignalInstance class.
Definition componentsignalinstance.h:49
The Layer class provides all supported geometry layers.
Definition layer.h:42
The MaskConfig class defines how to add automatic stop mask or solder paste.
Definition maskconfig.h:45
The NetSignal class.
Definition netsignal.h:50
The PackagePad class represents one logical pad of a package.
Definition packagepad.h:47
The PadGeometry class describes the shape of a pad.
Definition padgeometry.h:46
Base class for pads, extended in derived classes.
Definition pad.h:53
ComponentSide
Definition pad.h:64
const Uuid & getUuid() const noexcept
Definition pad.h:96
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 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 TraceAnchor class.
Definition trace.h:45
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< Length, UnsignedLengthConstraint, UnsignedLengthVerifier > UnsignedLength
Definition length.h:694
type_safe::constrained_type< Ratio, UnsignedLimitedRatioConstraint, UnsignedLimitedRatioVerifier > UnsignedLimitedRatio
Definition ratio.h:376