+ QStringList aResList;
+
+ Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( myLab );
+ if ( aDocument.IsNull() )
+ return aResList;
+
+ QString aDocName = aDocument->GetDocPyName();
+ QString aPolylineName = GetName();
+
+ aResList << QString( "%1 = %2.CreateObject( %3 );" )
+ .arg( aPolylineName ).arg( aDocName ).arg( PYTHON_POLYLINE_ID );
+ aResList << QString( "%1.SetName( \"%1\" );" ).arg( aPolylineName );
+
+ // Set polilyne dimension
+
+ aResList << QString( "" );
+
+ int aDim = GetDimension();
+ aResList << QString( "%1.SetDimension( %2 );" )
+ .arg( aPolylineName ).arg( aDim );
+
+ // Set polilyne data
+
+ PolylineData aPolylineData = GetPolylineData();
+ if ( !aPolylineData.isEmpty() )
+ {
+ QString aPolylineDataName = "polyline_data";
+
+ aResList << QString( "" );
+ aResList << QString( "%1 = [];" ).arg( aPolylineDataName );
+
+ PolylineData::const_iterator aDataIt = aPolylineData.constBegin();
+ for ( ; aDataIt != aPolylineData.constEnd(); ++aDataIt )
+ {
+ const PolylineSection& aSection = *aDataIt;
+
+ QString aPolylineSectName = "polyline_section";
+
+ aResList << QString( "" );
+ aResList << QString( "%1 = PolylineSection();" ).arg( aPolylineSectName );
+
+ QString aCoordsStr;
+ foreach( const double& aCoordVal, aSection.myCoords )
+ aCoordsStr += QString::number( aCoordVal ) + ", ";
+ aCoordsStr.remove( aCoordsStr.length() - 2, 2 );
+
+ aResList << QString( "" );
+
+ aResList << QString( "%1.mySectionName = \"%2\";" )
+ .arg( aPolylineSectName )
+ .arg( TCollection_AsciiString( aSection.mySectionName ).ToCString() );
+ aResList << QString( "%1.myType = %2;" )
+ .arg( aPolylineSectName ).arg( aSection.myType );
+ aResList << QString( "%1.myIsClosed = %2;" )
+ .arg( aPolylineSectName ).arg( aSection.myIsClosed );
+ aResList << QString( "%1.myCoords = [ %2 ];" )
+ .arg( aPolylineSectName ).arg( aCoordsStr );
+
+ aResList << QString( "%1.append( %2 );" )
+ .arg( aPolylineDataName ).arg( aPolylineSectName );
+ }
+ aResList << QString( "" );
+
+ aResList << QString( "%1.SetPolylineData( %2 );" )
+ .arg( aPolylineName ).arg( aPolylineDataName );
+ }
+
+ return aResList;