LuciadCPillar 2024.0.08
|
Common representation for layers that can be added to a map. More...
#include <luciad/layers/Layer.h>
Public Member Functions | |
Layer () | |
Default constructor. More... | |
virtual | ~Layer ()=default |
virtual void | addObserver (std::shared_ptr< ILayerObserver > layerObserver)=0 |
Adds an observer that allows to receive change events from this layer. More... | |
virtual LayerId | getId () const |
Returns the layer's unique id. More... | |
virtual const std::string & | getTitle () const =0 |
Returns the layer's title. More... | |
virtual bool | isVisible () const =0 |
Returns whether this layer is visible. More... | |
virtual void | removeObserver (const std::shared_ptr< ILayerObserver > &layerObserver)=0 |
Removes the given observer. More... | |
virtual void | setTitle (std::string title)=0 |
Sets the layer's title. More... | |
virtual void | setVisible (bool visible)=0 |
Sets whether this layer is visible. More... | |
Static Public Member Functions | |
static const std::string & | propertyTitle () |
Property name for the LayerEvent that is fired as a result of changing the layer's title. More... | |
static const std::string & | propertyVisible () |
Property name for the LayerEvent that is fired as a result of changing the layer's visible flag. More... | |
Common representation for layers that can be added to a map.
A layer has a few properties that can be changed.
An observer can be attached to get notifications about layer changes.
Use one of the concrete classes extending this class.
Note that this class tracks on which thread it is constructed. This is done so that, in subsequent calls, it can verify that the same threads are used consistently. When an inconsistency is detected, an assertion is triggered. This means that all functions on Layer (and its subclasses) must be called on the thread on which the Map was constructed (the "UI" thread). The only exception is adding and removing observers. Related article: Threading rules for the Map
luciad::Layer::Layer | ( | ) |
Default constructor.
It's not the intent to extend from this class, nor is it the intent to directly instantiate this class, so this constructor must not be used.
|
virtualdefault |
|
pure virtual |
Adds an observer that allows to receive change events from this layer.
Adding the same observer twice is forbidden, and will cause an exception to be thrown.
layerObserver | an observer. |
luciad::InvalidArgumentException | when the observer was already added. |
luciad::NullArgumentException | when the observer is nullptr . |
Implemented in luciad::FeatureLayer, luciad::LonLatGridLayer, luciad::MgrsGridLayer, luciad::MbTilesFeatureLayer, luciad::RasterLayer, and luciad::TileSet3DLayer.
|
virtual |
Returns the layer's unique id.
|
pure virtual |
Returns the layer's title.
Should be suitable for presenting to the user.
Implemented in luciad::FeatureLayer, luciad::LonLatGridLayer, luciad::MgrsGridLayer, luciad::MbTilesFeatureLayer, luciad::RasterLayer, and luciad::TileSet3DLayer.
|
pure virtual |
Returns whether this layer is visible.
Implemented in luciad::FeatureLayer, luciad::LonLatGridLayer, luciad::MgrsGridLayer, luciad::MbTilesFeatureLayer, luciad::RasterLayer, and luciad::TileSet3DLayer.
|
static |
Property name for the LayerEvent that is fired as a result of changing the layer's title.
|
static |
Property name for the LayerEvent that is fired as a result of changing the layer's visible flag.
|
pure virtual |
Removes the given observer.
If the given observer was never added, an exception is thrown.
layerObserver | an observer. |
luciad::InvalidArgumentException | when the observer is not known. |
luciad::NullArgumentException | when the observer is nullptr . |
Implemented in luciad::FeatureLayer, luciad::LonLatGridLayer, luciad::MgrsGridLayer, luciad::MbTilesFeatureLayer, luciad::RasterLayer, and luciad::TileSet3DLayer.
|
pure virtual |
Sets the layer's title.
Should be suitable for presenting to the user.
If the new title is indeed different from the old one, a LayerEvent is delivered to the observers with the property name PropertyTitle.
title | the new title. |
Implemented in luciad::FeatureLayer, luciad::LonLatGridLayer, luciad::MgrsGridLayer, luciad::MbTilesFeatureLayer, luciad::RasterLayer, and luciad::TileSet3DLayer.
|
pure virtual |
Sets whether this layer is visible.
Changes this layer's visibility. If the new visibility is different from the old one, a LayerEvent is delivered to the observers with the property name PropertyVisible.
visible | the new visibility. |
Implemented in luciad::FeatureLayer, luciad::LonLatGridLayer, luciad::MgrsGridLayer, luciad::MbTilesFeatureLayer, luciad::RasterLayer, and luciad::TileSet3DLayer.