81 lines
2.2 KiB
C++
Executable File
81 lines
2.2 KiB
C++
Executable File
/**
|
||
* @RDE_HEADER@
|
||
* Interface of MapObjectIndicator
|
||
* $Id$
|
||
* $HeadURL$
|
||
* $Author$
|
||
*/
|
||
|
||
#pragma once
|
||
|
||
#include "abstract_multi_point_map_object.h"
|
||
|
||
//----------------------------------------------------------------------------
|
||
namespace SituationMap
|
||
{
|
||
|
||
/**
|
||
* @brief The MapObjectIndicator points to exactly one MapObject defined by its uniqueMapId.
|
||
*
|
||
* This MapObjectIndicator should be smart, you normally don´t have to set the position,
|
||
* color or similar directly.
|
||
* Just call setMapObjectToPointTo() and updateView();
|
||
* \n The MapObjectIndicator shoud 'follow' the object to be pointed to.
|
||
* \n The color is taken from the objectToBePointedTo (if that changes, call updateView() again).
|
||
*
|
||
* <b>Some Annotations / Recommendations:</b>
|
||
* - Layer: create the MapObjectIndicator in the topmost (operational) layer (LayerType::Operational)
|
||
* - The drawOrder is internal choosen to be OVER the objectToBePointedTo
|
||
* - The method setPositions() should never be called.
|
||
*
|
||
*/
|
||
class MapObjectIndicator : public virtual AbstractMultiPointMapObject
|
||
{
|
||
|
||
public:
|
||
|
||
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
* Don't use "= default" because of bug in VS2015 JT 2016/11/7
|
||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
|
||
MapObjectIndicator() : AbstractMultiPointMapObject() {;} ///< Contructor
|
||
|
||
virtual ~MapObjectIndicator() = default; ///< Destructor
|
||
|
||
|
||
/*! \name Specific data*/
|
||
//@{
|
||
|
||
|
||
/**
|
||
* @brief Start and end point:.
|
||
*/
|
||
virtual Point3D startPoint() const = 0;
|
||
virtual Point3D endPoint() const = 0;
|
||
|
||
virtual void setStartAndEndPoint(const Point3D &start, const Point3D &end) = 0;
|
||
|
||
/**
|
||
* @brief mapObjectToPointTo
|
||
* @return uniqueId of the object to be pointed to.
|
||
*/
|
||
virtual UniqueMapId mapObjectToPointTo() = 0;
|
||
|
||
/**
|
||
* @brief Set uniqueId of object should to be pointed to.
|
||
* @attention But there is NO automatic update yet. Caller is responsable for operforming updateView()!
|
||
* @param uniqueId of the object to be pointed to.
|
||
*/
|
||
virtual void setMapObjectToPointTo(UniqueMapId uniqueId) = 0;
|
||
//@}
|
||
|
||
|
||
// void setPositions(const PositionCont& posCont) //SHOULD NEVER BE CALLED
|
||
|
||
|
||
};
|
||
|
||
|
||
|
||
|
||
} // namespace SituationMap
|