X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_Polyline3D.cxx;h=b2650b635d77f1ee52c2c5046f281dc6e5626875;hb=f7c005b67e48ec7bac99c566fb4f34215ec1a4b1;hp=d5a9425ef1d42dcb1fca13ec4a9a14a0960ce878;hpb=4a4e234c1bde9db8ac7e1020842ab355e03335b0;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_Polyline3D.cxx b/src/HYDROData/HYDROData_Polyline3D.cxx index d5a9425e..b2650b63 100644 --- a/src/HYDROData/HYDROData_Polyline3D.cxx +++ b/src/HYDROData/HYDROData_Polyline3D.cxx @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #include "HYDROData_Polyline3D.h" @@ -34,19 +55,53 @@ HYDROData_Polyline3D::~HYDROData_Polyline3D() QStringList HYDROData_Polyline3D::DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const { QStringList aResList = dumpObjectCreation( theTreatedObjects ); - QString aName = GetObjPyName(); + QString aPolylineName = GetObjPyName(); Handle(HYDROData_PolylineXY) aRefPolyline = GetPolylineXY(); setPythonReferenceObject( theTreatedObjects, aResList, aRefPolyline, "SetPolylineXY" ); - Handle(HYDROData_ProfileUZ) aRefProfile = GetProfileUZ(); - setPythonReferenceObject( theTreatedObjects, aResList, aRefProfile, "SetProfileUZ" ); - - Handle(HYDROData_IAltitudeObject) aRefBathymetry = GetAltitudeObject(); - setPythonReferenceObject( theTreatedObjects, aResList, aRefBathymetry, "SetAltitudeObject" ); + 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( "" ); - aResList << QString( "%1.Update();" ).arg( aName ); + aResList << QString( "%1.Update();" ).arg( aPolylineName ); aResList << QString( "" ); return aResList; @@ -292,11 +347,16 @@ Handle(HYDROData_ProfileUZ) HYDROData_Polyline3D::GetChildProfileUZ( const bool aProfileUZ = aProfile->GetProfileUZ(); HYDROData_Polyline3D* me = const_cast( this ); // Temporary to be revised - me->SetReferenceObject( aProfileUZ, DataTag_ChildProfileUZ ); + 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 )