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

96 lines
2.4 KiB
C++
Executable File

/**
* @RDE_HEADER@
* EllipseParameters
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
// Own
#include <situation_map_export.h>
#include <ostream>
// Qt
//----------------------------------------------------------------------------
namespace SituationMap
{
//----------------------------------------------------------------------------
class SITUATIONMAP_EXPORT EllipseParameters
{
public:
static constexpr unsigned int MAX_POINT_COUNT_DEFAULT = 30;
EllipseParameters() = default;
float lengthX() const;
void setLengthX(float lengthX);
float lengthY() const;
void setLengthY(float lengthY);
float directionDegree() const;
void setDirectionDegree(float directionDegree);
int maxSegmentLength() const;
void setMaxSegmentLength(int value);
int maxPointCount() const;
void setMaxPointCount(int maxPointCount);
bool isValid() const;
/**
* @brief operator== Compare two objects
* @param other to be compared with
* @return true if identical, otherwise false.
*/
bool operator==(const EllipseParameters &other) const
{
return ((this->m_lengthX == other.m_lengthX) &&
(this->m_lengthY == other.m_lengthY) &&
(this->m_directionDegree == other.m_directionDegree) &&
(this->m_maxSegmentLength == other.m_maxSegmentLength) &&
(this->m_maxPointCount == other.m_maxPointCount)
);
}
/**
* @brief operator!= Compare two objects
* @param other to be compared with
* @return true if NOT identical, otherwise false.
*/
bool operator!=(const EllipseParameters &other) const
{
return !(*this == other);
}
private:
float m_lengthX = 0;
float m_lengthY = 0;
float m_directionDegree = 0;
int m_maxSegmentLength = 10; // meter
int m_maxPointCount = MAX_POINT_COUNT_DEFAULT;
};
//-----------------------------------------------------------------------------
// output operator:
//-----------------------------------------------------------------------------
SITUATIONMAP_EXPORT std::ostream &operator<< (std::ostream &stream,
const EllipseParameters &value);
} // namespace SituationMap