#include "HYDROData_CalculationCase.h"
#include "HYDROData_ArtificialObject.h"
-#include "HYDROData_Bathymetry.h"
+#include "HYDROData_IAltitudeObject.h"
#include "HYDROData_Document.h"
#include "HYDROData_ShapesGroup.h"
#include "HYDROData_Iterator.h"
if ( aRegion.IsNull() )
continue;
- QString aRegionName = aRegion->GetName();
- if ( aRegionName.startsWith( anOldCaseName ) )
- {
- aRegionName.replace( anOldCaseName, theName );
- aRegion->SetName( aRegionName );
- }
+ HYDROData_Tool::UpdateChildObjectName( anOldCaseName, theName, aRegion );
HYDROData_SequenceOfObjects aZones = aRegion->GetZones();
HYDROData_SequenceOfObjects::Iterator anIter( aZones );
if ( aRegZone.IsNull() )
continue;
- QString aRegionZoneName = aRegZone->GetName();
- if ( aRegionZoneName.startsWith( anOldCaseName ) )
- {
- aRegionZoneName.replace( anOldCaseName, theName );
- aRegZone->SetName( aRegionZoneName );
- }
+ HYDROData_Tool::UpdateChildObjectName( anOldCaseName, theName, aRegZone );
}
}
if ( aGroup.IsNull() )
continue;
- QString aGroupName = aGroup->GetName();
- if ( aGroupName.startsWith( anOldCaseName ) )
- {
- aGroupName.replace( anOldCaseName, theName );
- aGroup->SetName( aGroupName );
- }
+ HYDROData_Tool::UpdateChildObjectName( anOldCaseName, theName, aGroup );
}
}
double HYDROData_CalculationCase::GetAltitudeForPoint( const gp_XY& thePoint ) const
{
- double aResAltitude = HYDROData_Bathymetry::GetInvalidAltitude();
+ double aResAltitude = HYDROData_IAltitudeObject::GetInvalidAltitude();
Handle(HYDROData_Zone) aZone = GetZoneFromPoint( thePoint );
if ( aZone.IsNull() )
return aResAltitude;
- HYDROData_Zone::MergeBathymetriesType aZoneMergeType = aZone->GetMergeType();
+ HYDROData_Zone::MergeAltitudesType aZoneMergeType = aZone->GetMergeType();
if ( !aZone->IsMergingNeed() )
{
aZoneMergeType = HYDROData_Zone::Merge_UNKNOWN;
if ( aZoneMergeType == HYDROData_Zone::Merge_Object )
{
- Handle(HYDROData_Bathymetry) aMergeBathymetry = aZone->GetMergeBathymetry();
- if ( !aMergeBathymetry.IsNull() )
- aResAltitude = aMergeBathymetry->GetAltitudeForPoint( thePoint );
+ Handle(HYDROData_IAltitudeObject) aMergeAltitude = aZone->GetMergeAltitude();
+ if ( !aMergeAltitude.IsNull() )
+ aResAltitude = aMergeAltitude->GetAltitudeForPoint( thePoint );
}
else
{
if ( aZoneObj.IsNull() )
continue;
- Handle(HYDROData_Bathymetry) anObjBathymetry = aZoneObj->GetBathymetry();
- if ( anObjBathymetry.IsNull() )
+ Handle(HYDROData_IAltitudeObject) anObjAltitude = aZoneObj->GetAltitudeObject();
+ if ( anObjAltitude.IsNull() )
continue;
- double aPointAltitude = anObjBathymetry->GetAltitudeForPoint( thePoint );
- if ( ValuesEquals( aPointAltitude, HYDROData_Bathymetry::GetInvalidAltitude() ) )
+ double aPointAltitude = anObjAltitude->GetAltitudeForPoint( thePoint );
+ if ( ValuesEquals( aPointAltitude, HYDROData_IAltitudeObject::GetInvalidAltitude() ) )
continue;
if ( aZoneMergeType == HYDROData_Zone::Merge_UNKNOWN )
}
else if ( aZoneMergeType == HYDROData_Zone::Merge_ZMIN )
{
- if ( ValuesEquals( aResAltitude, HYDROData_Bathymetry::GetInvalidAltitude() ) ||
+ if ( ValuesEquals( aResAltitude, HYDROData_IAltitudeObject::GetInvalidAltitude() ) ||
aResAltitude > aPointAltitude )
{
aResAltitude = aPointAltitude;
}
else if ( aZoneMergeType == HYDROData_Zone::Merge_ZMAX )
{
- if ( ValuesEquals( aResAltitude, HYDROData_Bathymetry::GetInvalidAltitude() ) ||
+ if ( ValuesEquals( aResAltitude, HYDROData_IAltitudeObject::GetInvalidAltitude() ) ||
aResAltitude < aPointAltitude )
{
aResAltitude = aPointAltitude;
}
}
- GEOM::GEOM_IGroupOperations_var aGroupOp =
- theGeomEngine->GetIGroupOperations( theStudy->StudyId() );
-
- foreach ( const QString& aGroupName, aGroupsData.keys() ) {
- QSet<int> aGroupIndexes = aGroupsData.value( aGroupName );
-
- GEOM::GEOM_Object_var aGroup = aGroupOp->CreateGroup( aMainShape, TopAbs_EDGE );
- if ( !CORBA::is_nil(aGroup) && aGroupOp->IsDone() ) {
- GEOM::ListOfLong_var anIndexes = new GEOM::ListOfLong;
- int aListIndex = 0;
- foreach ( const int anIndex, aGroupIndexes ) {
- anIndexes[aListIndex++] = anIndex;
- }
+ if ( !aGroupsData.isEmpty() ) {
+ GEOM::GEOM_IGroupOperations_var aGroupOp =
+ theGeomEngine->GetIGroupOperations( theStudy->StudyId() );
+
+ foreach ( const QString& aGroupName, aGroupsData.keys() ) {
+ QSet<int> aGroupIndexes = aGroupsData.value( aGroupName );
+
+ GEOM::GEOM_Object_var aGroup = aGroupOp->CreateGroup( aMainShape, TopAbs_EDGE );
+ if ( !CORBA::is_nil(aGroup) && aGroupOp->IsDone() ) {
+ GEOM::ListOfLong_var anIndexes = new GEOM::ListOfLong;
+ anIndexes->length( aGroupIndexes.count() );
+ int aListIndex = 0;
+ foreach ( const int anIndex, aGroupIndexes ) {
+ anIndexes[aListIndex++] = anIndex;
+ }
- aGroupOp->UnionIDs( aGroup, anIndexes );
- if ( aGroupOp->IsDone() ) {
- SALOMEDS::SObject_var aGroupSO =
- theGeomEngine->AddInStudy( theStudy, aGroup, qPrintable( aName ), aMainShape );
+ aGroupOp->UnionIDs( aGroup, anIndexes );
+ if ( aGroupOp->IsDone() ) {
+ SALOMEDS::SObject_var aGroupSO =
+ theGeomEngine->AddInStudy( theStudy, aGroup, qPrintable( aGroupName ), aMainShape );
+ }
}
}
}
SALOMEDS::SObject_var aResultSO =
theGeomEngine->PublishInStudy( theStudy, SALOMEDS::SObject::_nil(),
- aGeomObj, qPrintable( theName ) );
+ aGeomObj, qPrintable( aName ) );
if ( aResultSO->_is_nil() ) {
aGeomObj = GEOM::GEOM_Object::_nil();
}