+
+void CurveCreator_Profile::convert( const CurveCreator::PosPointsList& thePoints,
+ std::list<int>& theConvPoints )
+{
+ theConvPoints.clear();
+
+ CurveCreator::PosPointsList::const_iterator aPntIt = thePoints.begin(),
+ aPntLast = thePoints.end();
+ for( ; aPntIt != aPntLast; aPntIt++ )
+ {
+ int anIPnt = (*aPntIt)->myID;
+ theConvPoints.push_back( anIPnt );
+ }
+}
+
+bool CurveCreator_Profile::canPointsBeSorted()
+{
+ return true;
+}
+
+/**
+ * Add one point to the specified section starting from the given theIPnt index
+ * (or at the end of points if \a theIPnt is -1).
+ */
+bool CurveCreator_Profile::addPoints( const CurveCreator::Coordinates& theCoords,
+ const int theISection,
+ const int theIPnt )
+{
+ int anIPnt = theIPnt;
+
+ if ( anIPnt == - 1 && theCoords.size() > 1 ) {
+ CurveCreator::Coordinates aCoords;
+ for ( int i = 0, aNb = getNbPoints( theISection ); i < aNb; i++ ) {
+ aCoords = getPoint( theISection, i );
+ if ( aCoords.size() < 2 ) {
+ continue;
+ }
+
+ if ( theCoords[0] < aCoords[0] ) {
+ anIPnt = i;
+ break;
+ }
+ }
+ }
+
+ return CurveCreator_Curve::addPoints( theCoords, theISection, anIPnt );
+}
\ No newline at end of file