#include <deque>
#include <vector>
#include <string>
+#include <list>
class Handle_AIS_InteractiveObject;
//! Clear the polyline (remove all sections)
virtual bool clear() = 0;
- //! Join range of sections to one section (join all sections if -1 is passed in one of arguments)
- virtual bool join( const int theISectionTo = -1,
- const int theISectionFrom = -1 ) = 0;
+ //! Join list of sections to one section (join all if the list is empty)
+ // The first section in the list is a leader, another sections are joined to it
+ virtual bool join( const std::list<int>& theSections ) = 0;
//! Get number of sections
virtual int getNbSections() const = 0;
const std::deque<float>& theNewCoords ) = 0;
//! Set coordinates of specified points from different sections
- virtual bool setSeveralPoints( const SectionToPointCoordsList &theSectionToPntCoords) = 0;
+ virtual bool setSeveralPoints( const SectionToPointCoordsList &theSectionToPntCoords,
+ const bool theIsToSaveDiff = true ) = 0;
//! Remove point with given id
virtual bool removePoint( const int theISection, const int theIPnt = -1 ) = 0;
*/
virtual int getNbPoints( const int theISection ) const = 0;
+ /**
+ * Set skip sorting flag. If the flag is true - points sorting will be skipped.
+ */
+ virtual void setSkipSorting( const bool ) = 0;
+
+ /**
+ * Indicates whether the points can be sorted.
+ */
+ virtual bool canPointsBeSorted() = 0;
+
+ /**
+ * Saves points coordinates difference.
+ * \param theOldCoords the old points coordinates
+ */
+ virtual void saveCoordDiff( const SectionToPointCoordsList &theOldCoords ) = 0;
/***********************************************/
/*** Presentation methods ***/