20#ifndef LIBREPCB_EDITOR_PACKAGEEDITORSTATE_DRAWPOLYGONBASE_H
21#define LIBREPCB_EDITOR_PACKAGEEDITORSTATE_DRAWPOLYGONBASE_H
41class PolygonGraphicsItem;
65 bool entry() noexcept override;
66 bool exit() noexcept override;
111 bool start() noexcept;
112 bool abort(
bool showErrMsgBox = true) noexcept;
The Angle class is used to represent an angle (for example 12.75 degrees)
Definition angle.h:76
The Layer class provides all supported geometry layers.
Definition layer.h:42
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
bool isFilled() const noexcept
Definition polygon.h:74
const Layer & getLayer() const noexcept
Definition polygon.h:72
const UnsignedLength & getLineWidth() const noexcept
Definition polygon.h:73
bool isGrabArea() const noexcept
Definition polygon.h:75
The CmdPolygonEdit class.
Definition cmdpolygonedit.h:51
The PackageEditorState_DrawPolygonBase class.
Definition packageeditorstate_drawpolygonbase.h:50
bool processGraphicsSceneMouseMoved(const GraphicsSceneMouseEvent &e) noexcept override
Definition packageeditorstate_drawpolygonbase.cpp:118
PackageEditorState_DrawPolygonBase()=delete
void angleChanged(const Angle &angle)
PackageEditorState_DrawPolygonBase(const PackageEditorState_DrawPolygonBase &other)=delete
bool getGrabArea() const noexcept
Definition packageeditorstate_drawpolygonbase.h:91
bool abort(bool showErrMsgBox=true) noexcept
Definition packageeditorstate_drawpolygonbase.cpp:278
Point mArcCenter
Definition packageeditorstate_drawpolygonbase.h:133
void setLayer(const Layer &layer) noexcept
Definition packageeditorstate_drawpolygonbase.cpp:160
PackageEditorState_DrawPolygonBase & operator=(const PackageEditorState_DrawPolygonBase &rhs)=delete
bool addNextSegment() noexcept
Definition packageeditorstate_drawpolygonbase.cpp:301
Mode
Definition packageeditorstate_drawpolygonbase.h:55
bool mArcInSecondState
Definition packageeditorstate_drawpolygonbase.h:134
bool processGraphicsSceneLeftMouseButtonPressed(const GraphicsSceneMouseEvent &e) noexcept override
Definition packageeditorstate_drawpolygonbase.cpp:126
void updateCursorPosition(Qt::KeyboardModifiers modifiers) noexcept
Definition packageeditorstate_drawpolygonbase.cpp:365
Angle mLastAngle
Definition packageeditorstate_drawpolygonbase.h:128
QHash< const Layer *, UnsignedLength > mUsedLineWidths
Definition packageeditorstate_drawpolygonbase.h:138
bool processAbortCommand() noexcept override
Definition packageeditorstate_drawpolygonbase.cpp:143
const Layer & getLayer() const noexcept
Definition packageeditorstate_drawpolygonbase.h:81
void fillCheckBoxCheckedChanged(bool checked) noexcept
QSet< const Layer * > getAvailableLayers() const noexcept
Definition packageeditorstate_drawpolygonbase.cpp:155
bool processGraphicsSceneLeftMouseButtonDoubleClicked(const GraphicsSceneMouseEvent &e) noexcept override
Definition packageeditorstate_drawpolygonbase.cpp:137
void updateOverlayText() noexcept
Definition packageeditorstate_drawpolygonbase.cpp:437
bool processKeyPressed(const GraphicsSceneKeyEvent &e) noexcept override
Definition packageeditorstate_drawpolygonbase.cpp:98
const UnsignedLength & getLineWidth() const noexcept
Definition packageeditorstate_drawpolygonbase.h:85
void grabAreaCheckBoxCheckedChanged(bool checked) noexcept
bool mIsUndoCmdActive
Definition packageeditorstate_drawpolygonbase.h:130
bool start() noexcept
Definition packageeditorstate_drawpolygonbase.cpp:232
void angleEditValueChanged(const Angle &value) noexcept
Polygon mCurrentProperties
Definition packageeditorstate_drawpolygonbase.h:137
void layerComboBoxValueChanged(const Layer &layer) noexcept
void setFilled(bool filled) noexcept
Definition packageeditorstate_drawpolygonbase.cpp:193
bool exit() noexcept override
Definition packageeditorstate_drawpolygonbase.cpp:81
std::shared_ptr< Polygon > mCurrentPolygon
Definition packageeditorstate_drawpolygonbase.h:142
virtual ~PackageEditorState_DrawPolygonBase() noexcept
Definition packageeditorstate_drawpolygonbase.cpp:63
void setGrabArea(bool grabArea) noexcept
Definition packageeditorstate_drawpolygonbase.cpp:203
void setAngle(const Angle &angle) noexcept
Definition packageeditorstate_drawpolygonbase.cpp:213
const Mode mMode
Definition packageeditorstate_drawpolygonbase.h:126
std::unique_ptr< CmdPolygonEdit > mCurrentEditCmd
Definition packageeditorstate_drawpolygonbase.h:143
void setLineWidth(const UnsignedLength &width) noexcept
Definition packageeditorstate_drawpolygonbase.cpp:180
void filledChanged(bool filled)
void grabAreaChanged(bool grabArea)
bool processKeyReleased(const GraphicsSceneKeyEvent &e) noexcept override
Definition packageeditorstate_drawpolygonbase.cpp:108
void updateStatusBarMessage() noexcept
Definition packageeditorstate_drawpolygonbase.cpp:524
void lineWidthEditValueChanged(const UnsignedLength &value) noexcept
void layerChanged(const Layer &layer)
bool getFilled() const noexcept
Definition packageeditorstate_drawpolygonbase.h:89
Point mLastScenePos
Definition packageeditorstate_drawpolygonbase.h:127
void lineWidthChanged(const UnsignedLength &width)
Point mCursorPos
Definition packageeditorstate_drawpolygonbase.h:129
bool entry() noexcept override
Definition packageeditorstate_drawpolygonbase.cpp:70
std::shared_ptr< PolygonGraphicsItem > mCurrentGraphicsItem
Definition packageeditorstate_drawpolygonbase.h:144
void updatePolygonPath() noexcept
Definition packageeditorstate_drawpolygonbase.cpp:380
virtual void notifyToolEnter() noexcept=0
const Angle & getAngle() const noexcept
Definition packageeditorstate_drawpolygonbase.h:93
The PackageEditorState class is the base class of all package editor FSM states.
Definition packageeditorstate.h:52
The PolygonGraphicsItem class.
Definition polygongraphicsitem.h:48
Definition occmodel.cpp:77
type_safe::constrained_type< Length, UnsignedLengthConstraint, UnsignedLengthVerifier > UnsignedLength
Definition length.h:694
Definition graphicsscene.h:52
Definition graphicsscene.h:45
Definition packageeditorfsm.h:89