myDisplayer->eraseAll( true );
// Delete all allocated data.
- mySections[ 0 ]->myPoints.clear();
+ CurveCreator_Section* aSection = getSection( 0 );
+ if ( aSection )
+ aSection->myPoints.clear();
return true;
}
-bool CurveCreator_Profile::joinInternal( const int theISectionTo,
- const int theISectionFrom )
+bool CurveCreator_Profile::joinInternal( const std::list<int>& theSections )
{
return false;
}
-bool CurveCreator_Profile::join( const int theISectionTo,
- const int theISectionFrom )
+bool CurveCreator_Profile::join( const std::list<int>& theSections )
{
return false;
}
return false;
}
-bool CurveCreator_Profile::setSectionTypeInternal( const int theISection,
- const CurveCreator::SectionType theType )
-{
- return CurveCreator_Curve::setSectionTypeInternal( theISection, theType );
-}
-
-bool CurveCreator_Profile::setSectionType( const int theISection,
- const CurveCreator::SectionType theType )
-{
- return CurveCreator_Curve::setSectionType( theISection, theType );
-}
-
bool CurveCreator_Profile::addPointsInternal( const CurveCreator::SectionsMap &theSectionsMap )
{
bool res = false;
- CurveCreator_Section* aSection = mySections.at( 0 );
+ CurveCreator_Section* aSection = getSection( 0 );
if( !aSection )
return res;
}
int anISection = 0;
- CurveCreator_Section* aSection = mySections.at( anISection );
+ CurveCreator_Section* aSection = getSection( anISection );
if( !aSection )
return aRes;
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