#include <HYDROData_Object.h>
+#include <TCollection_ExtendedString.hxx>
+
#include <QPointF>
#include <QPainterPath>
#include <QList>
DEFINE_STANDARD_HANDLE(HYDROData_Polyline, HYDROData_Object)
+struct PolylineSection{
+public:
+ enum SectionType{ SECTION_POLYLINE=0, SECTION_SPLINE=1 };
+
+ PolylineSection(){ myIsClosed=true; myType=SECTION_POLYLINE; mySectionName="Section";}
+ TCollection_ExtendedString mySectionName;
+ SectionType myType;
+ bool myIsClosed;
+ QList<double> myCoords;
+};
+
/**\class HYDROData_Polyline
* \brief Class that stores/retreives information about the painter path.
*
*/
class HYDROData_Polyline : public HYDROData_Object
{
+protected:
+ /**
+ * Enumeration of tags corresponding to the persistent object parameters.
+ */
+ enum DataTag
+ {
+ DataTag_First = HYDROData_Object::DataTag_First + 100, ///< first tag, to reserve
+ DataTag_SectionsName,
+ DataTag_SectionsClosed,
+ DataTag_SectionsSize,
+ DataTag_SectionsType
+ };
+
public:
DEFINE_STANDARD_RTTI(HYDROData_Polyline);
HYDRODATA_EXPORT virtual const ObjectKind GetKind() const {return KIND_POLYLINE;}
/**
- * Replace current array by points list
- * \param thePoint the point to add
+ * Replace current polyline data by new sections list
+ * \param theSections the sections list
*/
- HYDRODATA_EXPORT void setPoints( QList<QPointF> thePointsList );
+ HYDRODATA_EXPORT void setPolylineData( const QList<PolylineSection>& theSections );
/**
- * Add point to the end of point list
- * \param thePoint the point to add
+ * Return polyline data
+ * \return polyline section list
*/
- HYDRODATA_EXPORT void addPoint( const QPointF& thePoint );
+ HYDRODATA_EXPORT QList<PolylineSection> getPolylineData();
/**
- * Add point to the point list at the specified position
- * \param theIndex the index of the list the point will insert after
- */
- HYDRODATA_EXPORT bool insertPoint( int theIndex, const QPointF& thePoint);
-
- /**
- * Remove point from polyline
- * \param theIndex the point index
+ * Return polyline dimension
+ * \return polyline dimension (2 or 3)
*/
- HYDRODATA_EXPORT bool removePoint( int theIndex );
+ HYDRODATA_EXPORT int getDimension() const;
/**
- * Remove all points from polyline
- * \param theIndex the point index
+ * Set polyline dimension (2 or 3)
+ * \param theDimension the polyline dimension
*/
- HYDRODATA_EXPORT void removeAllPoints();
+ HYDRODATA_EXPORT void setDimension( int theDimension );
/**
- * Return list point count
- * \return list point count
+ * Remove all sections from polyline
*/
- HYDRODATA_EXPORT int pointsCount();
-
- /**
- * Returns list of points
- * \return list of points
- */
- HYDRODATA_EXPORT QList<QPointF> points();
+ HYDRODATA_EXPORT void removeAll();
/**
* Returns the painter path. The painter path is construct by lines
*/
- HYDRODATA_EXPORT QPainterPath painterPathLinear();
+ HYDRODATA_EXPORT QPainterPath painterPath();
protected:
* Destructs properties of the object and object itself, removes it from the document.
*/
~HYDROData_Polyline();
-
};
#endif