Mapper  0.9.0
API documentation
Classes | Public Types | Public Member Functions | List of all members
OpenOrienteering::ObjectMover Class Reference

Implements the logic to move sets of objects and / or object points for edit tools. More...

#include <object_mover.h>

Public Types

enum  HandleOpMode { Never, Click }
 

Public Member Functions

 ObjectMover (Map *map, const MapCoordF &start_pos)
 Creates a mover for the map with the given cursor start position. More...
 
void setStartPos (const MapCoordF &start_pos)
 Sets the start position. More...
 
void setCornerTolerance (qreal corner_tolerance)
 Sets corner point tolerance. More...
 
void addObject (Object *object)
 Adds an object to the set of elements to move. More...
 
void addPoint (PathObject *object, MapCoordVector::size_type point_index)
 Adds a point to the set of elements to move. More...
 
void addLine (PathObject *object, MapCoordVector::size_type start_point_index)
 Adds a line to the set of elements to move. More...
 
void addTextHandle (TextObject *text, MapCoordVector::size_type handle)
 Adds a text handle to the set of elements to move. More...
 
void move (const MapCoordF &cursor_pos, HandleOpMode move_opposite_handles, qint32 *out_dx=nullptr, qint32 *out_dy=nullptr)
 Moves the elements. More...
 
void move (qint32 dx, qint32 dy, HandleOpMode move_opposite_handles)
 Overload of move() taking delta values. More...
 

Detailed Description

Implements the logic to move sets of objects and / or object points for edit tools.

Member Enumeration Documentation

◆ HandleOpMode

Enumerator
Never 

Never move opposite curve handles.

Click 

Move opposite handles once they get aligned in line, move them together from that point on.

Constructor & Destructor Documentation

◆ ObjectMover()

OpenOrienteering::ObjectMover::ObjectMover ( Map map,
const MapCoordF start_pos 
)

Creates a mover for the map with the given cursor start position.

Member Function Documentation

◆ addLine()

void OpenOrienteering::ObjectMover::addLine ( PathObject object,
MapCoordVector::size_type  start_point_index 
)

Adds a line to the set of elements to move.

◆ addObject()

void OpenOrienteering::ObjectMover::addObject ( Object object)

Adds an object to the set of elements to move.

◆ addPoint()

void OpenOrienteering::ObjectMover::addPoint ( PathObject object,
MapCoordVector::size_type  point_index 
)

Adds a point to the set of elements to move.

◆ addTextHandle()

void OpenOrienteering::ObjectMover::addTextHandle ( TextObject text,
MapCoordVector::size_type  handle 
)

Adds a text handle to the set of elements to move.

◆ move() [1/2]

void OpenOrienteering::ObjectMover::move ( const MapCoordF cursor_pos,
HandleOpMode  move_opposite_handles,
qint32 *  out_dx = nullptr,
qint32 *  out_dy = nullptr 
)

Moves the elements.

Parameters
move_opposite_handlesOpposite curve handles either operate in "click in" mode or move independently.
out_dxreturns the move along the x coordinate in map units
out_dyreturns the move along the y coordinate in map units

◆ move() [2/2]

void OpenOrienteering::ObjectMover::move ( qint32  dx,
qint32  dy,
HandleOpMode  move_opposite_handles 
)

Overload of move() taking delta values.

◆ setCornerTolerance()

void OpenOrienteering::ObjectMover::setCornerTolerance ( qreal  corner_tolerance)

Sets corner point tolerance.

A curve anchor point is considered a corner point during editing when the moving curve handle is more than corner_tolerance away from the direction line set by the opposite handle.

Parameters
corner_toleranceMaximum difference in vector directions in millimeters.

◆ setStartPos()

void OpenOrienteering::ObjectMover::setStartPos ( const MapCoordF start_pos)

Sets the start position.


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