Files
qt5-legatus-legacy/Lts/Viewer/SituationMap/GraphicalObjects/graphical_object_ellipse.h
T
2026-08-13 18:33:10 +02:00

122 lines
2.9 KiB
C++
Executable File

/**
* @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<EllipseParameters> 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