/** * @RDE_HEADER@ * GraphicalObjectCube * $Id$ * $HeadURL$ * $Author$ */ #pragma once // Own #include "abstract_graphical_object.h" // Esri // Qt // forward: //---------------------------------------------------------------------------- namespace SituationMap { /** * @brief The GraphicalObjectCube class for 3D * */ class SITUATIONMAP_EXPORT GraphicalObjectCube : public AbstractGraphicalObject { using BaseClass = AbstractGraphicalObject; public: explicit GraphicalObjectCube(const Esri::ArcGISRuntime::GeoView *geoView , Esri::ArcGISRuntime::GraphicsOverlay *graphicsLayer , const QString &debugInfo , const UniqueMapId &uniqueMapId); ~GraphicalObjectCube(); double height() const { return m_height.value(); } void setHeight(double height) { m_height = height; } const QString &extrusionColorName() const { return m_extrusionColorName.value(); } void setExtrusionColorName(const QString &extrusionColorName) { m_extrusionColorName = extrusionColorName; } protected: // Internal/Admin bool create() override; bool changed() override { return BaseClass::changed() || m_height.changed() || m_extrusionColorName.changed(); } void resetChanged() override { BaseClass::resetChanged(); m_height.reset(); m_extrusionColorName.reset(); } bool updateViewImpl() override; // Data SimpleValue m_height; SimpleValue m_extrusionColorName; private: LOGGER_T m_logger; ///< Interface of the Logging-Facility }; //----------------------------------------------------------------------------- // output operator: //----------------------------------------------------------------------------- SITUATIONMAP_EXPORT std::ostream &operator<< (std::ostream &stream, const GraphicalObjectCube &value); } // namespace SituationMap