X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_Polyline3D.cxx;h=dd246a236cf10f997593f3f798c6311ee56f41e2;hb=81c9f5cdf82909d0aebd2c491c50fa7516cc80b7;hp=67fe1a88f3d26daecbebc3274c9a390a3ec9a90d;hpb=8543e637cbb4ae48998c596241fce567a729eb67;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_Polyline3D.cxx b/src/HYDROData/HYDROData_Polyline3D.cxx index 67fe1a88..dd246a23 100644 --- a/src/HYDROData/HYDROData_Polyline3D.cxx +++ b/src/HYDROData/HYDROData_Polyline3D.cxx @@ -18,8 +18,6 @@ #include #include -#define PYTHON_POLYLINE_ID "KIND_POLYLINE" - IMPLEMENT_STANDARD_HANDLE(HYDROData_Polyline3D,HYDROData_Object) IMPLEMENT_STANDARD_RTTIEXT(HYDROData_Polyline3D,HYDROData_Object) @@ -35,21 +33,55 @@ HYDROData_Polyline3D::~HYDROData_Polyline3D() QStringList HYDROData_Polyline3D::DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const { - QStringList aResList; + QStringList aResList = dumpObjectCreation( theTreatedObjects ); + QString aPolylineName = GetObjPyName(); - Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( myLab ); - if ( aDocument.IsNull() ) - return aResList; + Handle(HYDROData_PolylineXY) aRefPolyline = GetPolylineXY(); + setPythonReferenceObject( theTreatedObjects, aResList, aRefPolyline, "SetPolylineXY" ); - QString aDocName = aDocument->GetDocPyName(); - QString aPolylineName = GetName(); + Handle(HYDROData_ProfileUZ) aRefProfileUZ = GetProfileUZ(); + if ( !aRefProfileUZ.IsNull() ) + { + Handle(HYDROData_Profile) aProfile = + Handle(HYDROData_Profile)::DownCast( aRefProfileUZ->GetFatherObject() ); + if ( checkObjectPythonDefinition( theTreatedObjects, aResList, aProfile ) ) + { + QString aProfileName = aProfile->GetObjPyName(); + if ( !aProfileName.isEmpty() ) + { + aResList << QString( "%1.SetProfileUZ( %2.GetProfileUZ() );" ) + .arg( aPolylineName ).arg( aProfileName ); + } + } + } + else + { + Handle(HYDROData_IAltitudeObject) aRefBathymetry = GetAltitudeObject(); + if ( !aRefBathymetry.IsNull() ) + { + Handle(HYDROData_ProfileUZ) aChildProfileUZ = GetChildProfileUZ(); + if ( !aChildProfileUZ.IsNull() ) + { + Handle(HYDROData_Profile) aProfile = + Handle(HYDROData_Profile)::DownCast( aChildProfileUZ->GetFatherObject() ); + if ( checkObjectPythonDefinition( theTreatedObjects, aResList, aProfile ) ) + { + QString aProfileName = aProfile->GetObjPyName(); + if ( !aProfileName.isEmpty() ) + { + aResList << QString( "%1.SetChildProfileUZ( %2.GetProfileUZ() );" ) + .arg( aPolylineName ).arg( aProfileName ); + } + } + } + + setPythonReferenceObject( theTreatedObjects, aResList, aRefBathymetry, "SetAltitudeObject" ); + } + } - aResList << QString( "%1 = %2.CreateObject( %3 );" ) - .arg( aPolylineName ).arg( aDocName ).arg( PYTHON_POLYLINE_ID ); - aResList << QString( "%1.SetName( \"%1\" );" ).arg( aPolylineName ); aResList << QString( "" ); - - // TODO + aResList << QString( "%1.Update();" ).arg( aPolylineName ); + aResList << QString( "" ); return aResList; } @@ -293,12 +325,17 @@ Handle(HYDROData_ProfileUZ) HYDROData_Polyline3D::GetChildProfileUZ( const bool aProfileUZ = aProfile->GetProfileUZ(); - Handle(HYDROData_Polyline3D) me = this; - me->SetReferenceObject( aProfileUZ, DataTag_ChildProfileUZ ); + HYDROData_Polyline3D* me = const_cast( this ); // Temporary to be revised + me->SetChildProfileUZ( aProfileUZ ); return aProfileUZ; } +void HYDROData_Polyline3D::SetChildProfileUZ( const Handle(HYDROData_ProfileUZ)& theProfile ) +{ + SetReferenceObject( theProfile, DataTag_ChildProfileUZ ); +} + HYDROData_IPolyline::PointsList generateProfileUZPoints( const Handle(HYDROData_PolylineXY)& thePolyline, const Handle(HYDROData_IAltitudeObject)& theAltitude )