LuciadCPillar 2023.1.03
|
Class that allows to build a zoom action and apply it, either directly or using an animation. More...
#include <luciad/maps/MapNavigator.h>
Public Member Functions | |
~ZoomAction () | |
ZoomAction & | animate (bool animated) |
Specifies if the action should use an animation. More... | |
ZoomAction & | duration (std::chrono::milliseconds duration) |
Specifies the duration of the animation. More... | |
ZoomAction & | factor (double factor) |
Sets the zoom factor. More... | |
ZoomAction & | targetScale (MapScale targetScale) |
Sets the map scale to which to zoom to. More... | |
ZoomAction & | toLocation (const Point &toMapLocation) |
Sets the location (in Map coordinates) towards which the MapNavigator will zoom. More... | |
void | zoom () const |
Executes the zoom action. More... | |
Class that allows to build a zoom action and apply it, either directly or using an animation.
Zooming works by:
Example: zoom in 50% (2x zoom)
luciad::MapNavigator::ZoomAction::~ZoomAction | ( | ) |
ZoomAction & luciad::MapNavigator::ZoomAction::animate | ( | bool | animated | ) |
Specifies if the action should use an animation.
animated | if this action should use an animation. The default is false. |
ZoomAction & luciad::MapNavigator::ZoomAction::duration | ( | std::chrono::milliseconds | duration | ) |
Specifies the duration of the animation.
This parameter is only used if animate(bool) is called with true as argument.
duration | the duration of the animation in milliseconds. The default is 2000 (=2 seconds) |
ZoomAction & luciad::MapNavigator::ZoomAction::factor | ( | double | factor | ) |
Sets the zoom factor.
A value larger than 1 will zoom out. A value between ]0, 1[ will zoom in.
For example: A zoom factor of 0.5 will move the camera twice as close to the target location. A value of 2.0 will move the camera away twice as far from the target location.
It is mandatory to set either this property, or the targetScale property. Not setting either of them will cause the ZoomAction::zoom method to throw an exception. If both methods are called, the one called last has precedence.
factor | the zoom factor, a value between ]0, 1[ to zoom in and between ]1, +inf[ to zoom out. |
luciad::InvalidArgumentException | if the factor value is invalid. |
ZoomAction & luciad::MapNavigator::ZoomAction::targetScale | ( | MapScale | targetScale | ) |
Sets the map scale to which to zoom to.
It is mandatory to set either this property, or the factor property. Not setting either of them will cause the ZoomAction::zoom method to throw an exception. If both methods are called, the one called last has precedence.
targetScale | the target scale to zoom to |
ZoomAction & luciad::MapNavigator::ZoomAction::toLocation | ( | const Point & | toMapLocation | ) |
Sets the location (in Map coordinates) towards which the MapNavigator will zoom.
This property is mandatory. Not setting it will cause the ZoomAction::zoom method to throw an exception.
toMapLocation | a location, defined in the reference of the Map |
luciad::InvalidArgumentException | if the toMapLocation parameter is not in the map coordinate reference. |
void luciad::MapNavigator::ZoomAction::zoom | ( | ) | const |
Executes the zoom action.
luciad::LogicException | if the action is not built correctly, for example if mandatory parameters are missing, or if incompatible parameters are configured. |