20#ifndef LIBREPCB_EDITOR_BOARDEDITORSTATE_ADDPAD_H
21#define LIBREPCB_EDITOR_BOARDEDITORSTATE_ADDPAD_H
41class BoardGraphicsScene;
66 virtual
bool entry() noexcept override;
67 virtual
bool exit() noexcept override;
84 void setNet(
const std::optional<Uuid>& net)
noexcept;
104 if (std::shared_ptr<const PadHole> hole =
106 return hole->getDiameter();
The Angle class is used to represent an angle (for example 12.75 degrees)
Definition angle.h:76
A pad in a board (either standalone or from a footprint)
Definition bi_pad.h:49
The BoardPadData class represents a pad in a board.
Definition boardpaddata.h:43
PadHoleList & getHoles() noexcept
Definition boardpaddata.h:87
The MaskConfig class defines how to add automatic stop mask or solder paste.
Definition maskconfig.h:45
The NetSignal class.
Definition netsignal.h:50
const PositiveLength & getWidth() const noexcept
Definition pad.h:100
bool getFunctionIsFiducial() const noexcept
Definition pad.cpp:220
const MaskConfig & getStopMaskConfig() const noexcept
Definition pad.h:106
ComponentSide
Definition pad.h:64
const UnsignedLength & getCopperClearance() const noexcept
Definition pad.h:112
Function
Definition pad.h:69
Function getFunction() const noexcept
Definition pad.h:116
const PositiveLength & getHeight() const noexcept
Definition pad.h:101
ComponentSide getComponentSide() const noexcept
Definition pad.h:115
const UnsignedLimitedRatio & getRadius() const noexcept
Definition pad.h:102
Shape getShape() const noexcept
Definition pad.h:99
The Point class is used to represent a point/coordinate/vector, for example (1.2mm; 5....
Definition point.h:78
std::shared_ptr< T > value(int index) noexcept
Definition serializableobjectlist.h:254
The Uuid class is a replacement for QUuid to get UUID strings without {} braces.
Definition uuid.h:56
The "add via" state/tool of the board editor.
Definition boardeditorstate_addpad.h:51
Pad::Shape getShape() const noexcept
Definition boardeditorstate_addpad.h:89
void setFunction(Pad::Function function) noexcept
Definition boardeditorstate_addpad.cpp:354
void setComponentSide(Pad::ComponentSide side) noexcept
Definition boardeditorstate_addpad.cpp:233
void setRadius(const UnsignedLimitedRatio &radius) noexcept
Definition boardeditorstate_addpad.cpp:295
std::optional< Uuid > getNet() const noexcept
Definition boardeditorstate_addpad.h:83
void setShape(Pad::Shape shape) noexcept
Definition boardeditorstate_addpad.cpp:248
virtual bool processGraphicsSceneMouseMoved(const GraphicsSceneMouseEvent &e) noexcept override
Definition boardeditorstate_addpad.cpp:165
const PositiveLength & getWidth() const noexcept
Definition boardeditorstate_addpad.h:91
void radiusChanged(const UnsignedLimitedRatio &radius)
bool getFunctionIsFiducial() const noexcept
Definition boardeditorstate_addpad.h:123
bool start(const Point &pos) noexcept
Definition boardeditorstate_addpad.cpp:368
QVector< std::pair< Uuid, QString > > getAvailableNets() const noexcept
Definition boardeditorstate_addpad.cpp:207
const MaskConfig & getStopMaskConfig() const noexcept
Definition boardeditorstate_addpad.h:116
std::optional< PositiveLength > getDrillDiameter() const noexcept
Definition boardeditorstate_addpad.h:103
PadType
Definition boardeditorstate_addpad.h:56
Pad::ComponentSide getComponentSide() const noexcept
Definition boardeditorstate_addpad.h:85
virtual bool processGraphicsSceneRightMouseButtonReleased(const GraphicsSceneMouseEvent &e) noexcept override
Definition boardeditorstate_addpad.cpp:187
bool finish(const Point &pos) noexcept
Definition boardeditorstate_addpad.cpp:419
const UnsignedLength & getCopperClearance() const noexcept
Definition boardeditorstate_addpad.h:112
void setDrillDiameter(const PositiveLength &diameter) noexcept
Definition boardeditorstate_addpad.cpp:306
BoardEditorState_AddPad(const BoardEditorState_AddPad &other)=delete
BoardPadData mCurrentProperties
Definition boardeditorstate_addpad.h:162
virtual bool processGraphicsSceneLeftMouseButtonPressed(const GraphicsSceneMouseEvent &e) noexcept override
Definition boardeditorstate_addpad.cpp:174
void shapeChanged(Pad::Shape shape)
void setWidth(const PositiveLength &width) noexcept
Definition boardeditorstate_addpad.cpp:259
const PositiveLength & getHeight() const noexcept
Definition boardeditorstate_addpad.h:95
const PadType mPadType
Definition boardeditorstate_addpad.h:156
std::optional< Uuid > mCurrentNetSignal
The current net signal of the via.
Definition boardeditorstate_addpad.h:165
void componentSideChanged(Pad::ComponentSide side)
PadType getType() const noexcept
Definition boardeditorstate_addpad.h:81
void netChanged(const std::optional< Uuid > &net)
void applySelectedNetSignal() noexcept
Definition boardeditorstate_addpad.cpp:463
BoardEditorState_AddPad & operator=(const BoardEditorState_AddPad &rhs)=delete
void heightChanged(const PositiveLength &height)
virtual bool processRotate(const Angle &rotation) noexcept override
Definition boardeditorstate_addpad.cpp:193
void setNet(const std::optional< Uuid > &net) noexcept
Definition boardeditorstate_addpad.cpp:224
BI_Pad * mCurrentPad
Definition boardeditorstate_addpad.h:169
Pad::Function getFunction() const noexcept
Definition boardeditorstate_addpad.h:120
void functionChanged(Pad::Function function)
virtual bool processGraphicsSceneLeftMouseButtonDoubleClicked(const GraphicsSceneMouseEvent &e) noexcept override
Definition boardeditorstate_addpad.cpp:182
void stopMaskConfigChanged(const MaskConfig &cfg)
bool abortCommand(bool showErrMsgBox) noexcept
Definition boardeditorstate_addpad.cpp:438
void setNetSignal(NetSignal *netsignal) noexcept
void makePadLayerVisible() noexcept
Definition boardeditorstate_addpad.cpp:499
bool mIsUndoCmdActive
Definition boardeditorstate_addpad.h:159
void drillDiameterChanged(const PositiveLength &diameter)
BoardEditorState_AddPad()=delete
virtual bool exit() noexcept override
Definition boardeditorstate_addpad.cpp:151
void widthChanged(const PositiveLength &width)
void copperClearanceChanged(const UnsignedLength &clearance)
bool updatePosition(BoardGraphicsScene &scene, const Point &pos) noexcept
Definition boardeditorstate_addpad.cpp:408
virtual ~BoardEditorState_AddPad() noexcept
Definition boardeditorstate_addpad.cpp:130
NetSignal * getCurrentNetSignal() const noexcept
Definition boardeditorstate_addpad.cpp:485
void applyRecommendedRoundedRectRadius() noexcept
Definition boardeditorstate_addpad.cpp:491
void setHeight(const PositiveLength &height) noexcept
Definition boardeditorstate_addpad.cpp:277
std::unique_ptr< CmdBoardPadEdit > mCurrentEditCmd
Definition boardeditorstate_addpad.h:170
void setCopperClearance(const UnsignedLength &clearance) noexcept
Definition boardeditorstate_addpad.cpp:330
const UnsignedLimitedRatio & getRadius() const noexcept
Definition boardeditorstate_addpad.h:99
virtual bool entry() noexcept override
Definition boardeditorstate_addpad.cpp:137
void setStopMaskConfig(const MaskConfig &cfg) noexcept
Definition boardeditorstate_addpad.cpp:342
The board editor state base class.
Definition boardeditorstate.h:60
The BoardGraphicsScene class.
Definition boardgraphicsscene.h:77
The CmdBoardPadEdit class.
Definition cmdboardpadedit.h:49
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
FSM Context.
Definition boardeditorfsm.h:99
Definition graphicsscene.h:45