/** * @RDE_HEADER@ * EllipseParameters * $Id$ * $HeadURL$ * $Author$ */ #pragma once // Own #include #include // 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