Mapper  0.9.0
API documentation
Signals | Public Member Functions | List of all members
OpenOrienteering::ConstrainAngleToolHelper Class Reference

Helper class to constrain cursor positions to specific lines / directions which originate from a given point. More...

#include <tool_helpers.h>

Inheritance diagram for OpenOrienteering::ConstrainAngleToolHelper:
Inheritance graph
[legend]
Collaboration diagram for OpenOrienteering::ConstrainAngleToolHelper:
Collaboration graph
[legend]

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 &center)
 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 &center)
 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 ()
 
- Public Member Functions inherited from QObject
virtual const QMetaObjectmetaObject () 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)
 
QThreadthread () 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)
 
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 &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
const QObjectListchildren () 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< QByteArraydynamicPropertyNames () const const
 
void destroyed (QObject *obj)
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
bool inherits (const char *className) const const
 
void deleteLater ()
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
qobject_cast (QObject *object)
 
qobject_cast (const QObject *object)
 
qFindChild (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
 
 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

- Static Public Member Functions inherited from QObject
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)
 
- Public Attributes inherited from QObject
typedef QObjectList
 
- Protected Member Functions inherited from QObject
QObjectsender () 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)
 
- Properties inherited from QObject
 objectName
 

Detailed Description

Helper class to constrain cursor positions to specific lines / directions which originate from a given point.

Constructor & Destructor Documentation

◆ ConstrainAngleToolHelper()

OpenOrienteering::ConstrainAngleToolHelper::ConstrainAngleToolHelper ( )

Constructs a helper without allowed angles.

Use addAngle() and / or addAngles() to add allowed lines.

◆ ~ConstrainAngleToolHelper()

OpenOrienteering::ConstrainAngleToolHelper::~ConstrainAngleToolHelper ( )
override

Member Function Documentation

◆ activeAngleChanged

void OpenOrienteering::ConstrainAngleToolHelper::activeAngleChanged ( ) const
signal

Emitted when the angle the cursor position is constrained to changes.

◆ addAngle()

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.

◆ addAngles()

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.

◆ addAnglesDeg()

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.

◆ addDefaultAnglesDeg()

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.

◆ clearAngles()

void OpenOrienteering::ConstrainAngleToolHelper::clearAngles ( )

Removes all allowed angles.

◆ displayChanged

void OpenOrienteering::ConstrainAngleToolHelper::displayChanged ( ) const
signal

Emitted whenever the display of this tool helper changes.

This is when the active angle changes or the tool is activated / deactivated.

◆ draw()

void OpenOrienteering::ConstrainAngleToolHelper::draw ( QPainter painter,
MapWidget widget 
)

Draws the set of allowed angles as lines radiating out from the center point.

The active angle, if any, is highlighted.

◆ getConstrainedCursorPos()

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.

◆ getConstrainedCursorPositions()

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.

◆ getConstrainedCursorPosMap()

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.

◆ getDisplayRadius()

int OpenOrienteering::ConstrainAngleToolHelper::getDisplayRadius ( ) const
inline

Returns the radius of the visualization in pixels.

◆ includeDirtyRect()

void OpenOrienteering::ConstrainAngleToolHelper::includeDirtyRect ( QRectF rect)

Includes this helper's drawing region in the given rect.

◆ isActive()

bool OpenOrienteering::ConstrainAngleToolHelper::isActive ( ) const
inline

◆ setActive() [1/2]

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.

◆ setActive() [2/2]

void OpenOrienteering::ConstrainAngleToolHelper::setActive ( bool  active)

Version of setActive() which does not override the center.

◆ setCenter()

void OpenOrienteering::ConstrainAngleToolHelper::setCenter ( const MapCoordF center)

Sets the center of the lines.

◆ settingsChanged()

void OpenOrienteering::ConstrainAngleToolHelper::settingsChanged ( )

The documentation for this class was generated from the following files: