/** * @RDE_HEADER@ * GraphicalObjectEllipse * $Id$ * $HeadURL$ * $Author$ */ #pragma once // Own #include "abstract_graphical_object.h" #include "ellipse_parameters.h" // Esri // Qt // forward: namespace Esri { namespace ArcGISRuntime { class Polygon; class Point; class GeodesicEllipseParameters; } } //---------------------------------------------------------------------------- namespace SituationMap { class SITUATIONMAP_EXPORT GraphicalObjectEllipse : public AbstractGraphicalObject { using BaseClass = AbstractGraphicalObject; public: GraphicalObjectEllipse(const Esri::ArcGISRuntime::GeoView *geoView , Esri::ArcGISRuntime::GraphicsOverlay *graphicsLayer , const QString &debugInfo , const UniqueMapId &uniqueMapId); ~GraphicalObjectEllipse(); EllipseParameters ellipseParameters() const; EllipseParameters &rEllipseParameters(); void setEllipseParameters(const EllipseParameters &ellipseParameters); static bool createEllipsePolygon(const Esri::ArcGISRuntime::GeodesicEllipseParameters &ellipseParameters, Esri::ArcGISRuntime::Polygon &polygon); static bool createCirclePolygon(const Esri::ArcGISRuntime::Point &originMap, float radius, unsigned int maxPointCount, Esri::ArcGISRuntime::Polygon &polygon); static bool createCirclePolygon(const Esri::ArcGISRuntime::Point &originMap, float radius, unsigned int maxPointCount, PositionCont &posCont); protected: // Internal/Admin bool create() override; bool changed() override { return BaseClass::changed() || m_ellipseParameters.changed(); } void resetChanged() override { BaseClass::resetChanged(); m_ellipseParameters.reset(); } bool updateViewImpl() override; // Data Esri::ArcGISRuntime::GeodesicEllipseParameters *m_internalParameters = nullptr; SimpleValue m_ellipseParameters; void parameterToInternal(); virtual bool createEllipse(Esri::ArcGISRuntime::Polygon &ellipse); private: LOGGER_T m_logger; ///< Interface of the Logging-Facility // Forbid some overloaded methods without effects of this object; virtual PositionCont positions() const override { return PositionCont(); } virtual void setPositions(const PositionCont &posCont) override { Q_UNUSED(posCont); } }; //----------------------------------------------------------------------------- // output operator: //----------------------------------------------------------------------------- std::ostream &operator<< (std::ostream &stream, const GraphicalObjectEllipse &value); } // namespace SituationMap