* The CurveCreator_Curve object is represented as one or more sets of
* connected points; thus CurveCreator_Curve object can contain several
* not connected curves (polylines or b-splines), each such curve has two
- * only ends � start and end points � in other words non-manifold curves
+ * only ends "start and end points" in other words non-manifold curves
* are not supported.
*/
class CURVECREATOR_EXPORT CurveCreator_Curve : public CurveCreator_ICurve
virtual bool clear();
//! For internal use only! Undo/Redo are not used here.
- virtual bool joinInternal( const int theISectionTo = -1,
- const int theISectionFrom = -1 );
- //! 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 );
+ virtual bool joinInternal( const std::list<int>& theSections );
+
+ //! 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 );
//! Get number of sections
virtual int getNbSections() const;
const CurveCreator::Coordinates& theNewCoords );
//! Set coordinates of specified points from different sections
- virtual bool setSeveralPoints( const SectionToPointCoordsList &theSectionToPntCoords);
+ virtual bool setSeveralPoints( const SectionToPointCoordsList &theSectionToPntCoords,
+ const bool theIsToSaveDiff = true );
//! For internal use only! Undo/Redo are not used here.
virtual bool removePointsInternal( const SectionToPointList &thePoints );
*/
virtual int getNbPoints( const int theISection ) const;
+ /**
+ * Set skip sorting flag. If the flag is true - points sorting will be skipped.
+ */
+ virtual void setSkipSorting( const bool theIsToSkip );
+
+ /**
+ * Indicates whether the points can be sorted.
+ */
+ virtual bool canPointsBeSorted();
+
+ /**
+ * Saves points coordinates difference.
+ * \param theOldCoords the old points coordinates
+ */
+ virtual void saveCoordDiff( const SectionToPointCoordsList &theOldCoords );
/***********************************************/
/*** Presentation methods ***/
protected:
virtual void constructAISObject();
+ /**
+ * Returns the section by the section index or NULL if the index is out of the section
+ * list range
+ * \param theSectionId the section index
+ */
+ CurveCreator_Section* getSection( const int theSectionId ) const;
+
+protected:
+ bool mySkipSorting;
public:
bool myIsLocked;