![]() |
Mapper
0.9.0
API documentation
|
Helper class to constrain cursor positions to specific lines / directions which originate from a given point. More...
#include <tool_helpers.h>
Signals | |
void | activeAngleChanged () const |
Emitted when the angle the cursor position is constrained to changes. More... | |
void | displayChanged () const |
Emitted whenever the display of this tool helper changes. More... | |
Public Member Functions | |
ConstrainAngleToolHelper () | |
Constructs a helper without allowed angles. More... | |
~ConstrainAngleToolHelper () override | |
void | setCenter (const MapCoordF ¢er) |
Sets the center of the lines. More... | |
void | addAngle (qreal angle) |
Adds a single allowed angle. More... | |
void | addAngles (qreal base, qreal stepping) |
Adds a circular set of allowed angles, starting from 'base' with interval 'stepping'. More... | |
void | addAnglesDeg (qreal base, qreal stepping) |
Like addAngles, but in degrees. More... | |
void | addDefaultAnglesDeg (qreal base) |
Adds the default angles given by the MapEditor_FixedAngleStepping setting. More... | |
void | clearAngles () |
Removes all allowed angles. More... | |
double | getConstrainedCursorPos (const QPoint &in_pos, QPointF &out_pos, MapWidget *widget) |
Get the cursor position, projected onto the closest of the allowed angles. More... | |
double | getConstrainedCursorPosMap (const MapCoordF &in_pos, MapCoordF &out_pos) |
Get the cursor position, projected onto the closest of the allowed angles. More... | |
double | getConstrainedCursorPositions (const MapCoordF &in_pos_map, MapCoordF &out_pos_map, QPointF &out_pos, MapWidget *widget) |
Combination of the above methods for convenience. More... | |
void | setActive (bool active, const MapCoordF ¢er) |
Activates or deactivates this tool. More... | |
void | setActive (bool active) |
Version of setActive() which does not override the center. More... | |
bool | isActive () const |
void | draw (QPainter *painter, MapWidget *widget) |
Draws the set of allowed angles as lines radiating out from the center point. More... | |
void | includeDirtyRect (QRectF &rect) |
Includes this helper's drawing region in the given rect. More... | |
int | getDisplayRadius () const |
Returns the radius of the visualization in pixels. More... | |
void | settingsChanged () |
![]() | |
virtual const QMetaObject * | metaObject () const const |
QObject (QObject *parent) | |
virtual | ~QObject () |
virtual bool | event (QEvent *e) |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
QString | objectName () const const |
void | setObjectName (const QString &name) |
bool | isWidgetType () const const |
bool | isWindowType () const const |
bool | signalsBlocked () const const |
bool | blockSignals (bool block) |
QThread * | thread () const const |
void | moveToThread (QThread *targetThread) |
int | startTimer (int interval, Qt::TimerType timerType) |
int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType) |
void | killTimer (int id) |
T | findChild (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QRegExp ®Exp, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const |
const QObjectList & | children () const const |
void | setParent (QObject *parent) |
void | installEventFilter (QObject *filterObj) |
void | removeEventFilter (QObject *obj) |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const |
bool | disconnect (const char *signal, const QObject *receiver, const char *method) const const |
bool | disconnect (const QObject *receiver, const char *method) const const |
void | dumpObjectTree () |
void | dumpObjectInfo () |
void | dumpObjectTree () const const |
void | dumpObjectInfo () const const |
bool | setProperty (const char *name, const QVariant &value) |
QVariant | property (const char *name) const const |
QList< QByteArray > | dynamicPropertyNames () const const |
void | destroyed (QObject *obj) |
void | objectNameChanged (const QString &objectName) |
QObject * | parent () const const |
bool | inherits (const char *className) const const |
void | deleteLater () |
Q_DISABLE_COPY (Class) | |
Q_DISABLE_MOVE (Class) | |
Q_DISABLE_COPY_MOVE (Class) | |
T | qobject_cast (QObject *object) |
T | qobject_cast (const QObject *object) |
T | qFindChild (const QObject *obj, const QString &name) |
QList< T > | qFindChildren (const QObject *obj, const QString &name) |
QList< T > | qFindChildren (const QObject *obj, const QRegExp ®Exp) |
Q_CLASSINFO (Name, Value) | |
Q_INTERFACES (...) | |
Q_PROPERTY (...) | |
Q_ENUMS (...) | |
Q_FLAGS (...) | |
Q_ENUM (...) | |
Q_FLAG (...) | |
Q_ENUM_NS (...) | |
Q_FLAG_NS (...) | |
Q_OBJECT Q_OBJECT | |
Q_GADGET Q_GADGET | |
Q_NAMESPACE Q_NAMESPACE | |
Q_SIGNALS Q_SIGNALS | |
Q_SIGNAL Q_SIGNAL | |
Q_SLOTS Q_SLOTS | |
Q_SLOT Q_SLOT | |
Q_EMIT Q_EMIT | |
Q_INVOKABLE Q_INVOKABLE | |
Q_REVISION Q_REVISION | |
Q_SET_OBJECT_NAME (Object) | |
QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT | |
Additional Inherited Members | |
![]() | |
QString | tr (const char *sourceText, const char *disambiguation, int n) |
QString | trUtf8 (const char *sourceText, const char *disambiguation, int n) |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, Functor functor) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type) |
bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method) |
bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method) |
bool | disconnect (const QMetaObject::Connection &connection) |
bool | disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method) |
![]() | |
typedef | QObjectList |
![]() | |
QObject * | sender () const const |
int | senderSignalIndex () const const |
int | receivers (const char *signal) const const |
bool | isSignalConnected (const QMetaMethod &signal) const const |
virtual void | timerEvent (QTimerEvent *event) |
virtual void | childEvent (QChildEvent *event) |
virtual void | customEvent (QEvent *event) |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
![]() | |
objectName | |
Helper class to constrain cursor positions to specific lines / directions which originate from a given point.
OpenOrienteering::ConstrainAngleToolHelper::ConstrainAngleToolHelper | ( | ) |
Constructs a helper without allowed angles.
Use addAngle() and / or addAngles() to add allowed lines.
|
override |
|
signal |
Emitted when the angle the cursor position is constrained to changes.
void OpenOrienteering::ConstrainAngleToolHelper::addAngle | ( | qreal | angle | ) |
Adds a single allowed angle.
Zero is to the right, the direction counter-clockwise in Qt's coordinate system.
void OpenOrienteering::ConstrainAngleToolHelper::addAngles | ( | qreal | base, |
qreal | stepping | ||
) |
Adds a circular set of allowed angles, starting from 'base' with interval 'stepping'.
Zero is to the right, the direction counter-clockwise in Qt's coordinate system.
void OpenOrienteering::ConstrainAngleToolHelper::addAnglesDeg | ( | qreal | base, |
qreal | stepping | ||
) |
Like addAngles, but in degrees.
Helps to avoid floating-point inaccuracies if using angle steppings like 15 degrees which could lead to two near-zero allowed angles otherwise.
void OpenOrienteering::ConstrainAngleToolHelper::addDefaultAnglesDeg | ( | qreal | base | ) |
Adds the default angles given by the MapEditor_FixedAngleStepping setting.
Usage of this method has the advantage that the stepping is updated automatically when the setting is changed.
void OpenOrienteering::ConstrainAngleToolHelper::clearAngles | ( | ) |
Removes all allowed angles.
|
signal |
Emitted whenever the display of this tool helper changes.
This is when the active angle changes or the tool is activated / deactivated.
Draws the set of allowed angles as lines radiating out from the center point.
The active angle, if any, is highlighted.
double OpenOrienteering::ConstrainAngleToolHelper::getConstrainedCursorPos | ( | const QPoint & | in_pos, |
QPointF & | out_pos, | ||
MapWidget * | widget | ||
) |
Get the cursor position, projected onto the closest of the allowed angles.
Returns the chosen angle and marks it as active.
double OpenOrienteering::ConstrainAngleToolHelper::getConstrainedCursorPositions | ( | const MapCoordF & | in_pos_map, |
MapCoordF & | out_pos_map, | ||
QPointF & | out_pos, | ||
MapWidget * | widget | ||
) |
Combination of the above methods for convenience.
double OpenOrienteering::ConstrainAngleToolHelper::getConstrainedCursorPosMap | ( | const MapCoordF & | in_pos, |
MapCoordF & | out_pos | ||
) |
Get the cursor position, projected onto the closest of the allowed angles.
Returns the chosen angle and marks it as active.
|
inline |
Returns the radius of the visualization in pixels.
void OpenOrienteering::ConstrainAngleToolHelper::includeDirtyRect | ( | QRectF & | rect | ) |
Includes this helper's drawing region in the given rect.
|
inline |
void OpenOrienteering::ConstrainAngleToolHelper::setActive | ( | bool | active, |
const MapCoordF & | center | ||
) |
Activates or deactivates this tool.
If deactivated, it does nothing. This is just for convenience to avoid if-clauses in places where this tool is used sometimes. If activated, the center is replaced with the new one.
TODO: This is ugly and should be two functions. Do not use in new code. Instead of setting the center when activating, the center should be always kept up-to-date independently of the activation which is more intuitive.
void OpenOrienteering::ConstrainAngleToolHelper::setActive | ( | bool | active | ) |
Version of setActive() which does not override the center.
void OpenOrienteering::ConstrainAngleToolHelper::setCenter | ( | const MapCoordF & | center | ) |
Sets the center of the lines.
void OpenOrienteering::ConstrainAngleToolHelper::settingsChanged | ( | ) |