QString aCalculName = GetObjPyName();
- AssignmentMode aMode = GetAssignmentMode();
+ AssignmentMode aMode = GetAssignmentMode();
QString aModeStr = aMode==MANUAL ? "HYDROData_CalculationCase.MANUAL" : "HYDROData_CalculationCase.AUTOMATIC";
aResList << QString( "%0.SetAssignmentMode( %1 )" ).arg( aCalculName ).arg( aModeStr );
+ AssignmentMode aModeLC = GetAssignmentLandCoverMode();
+ QString aModeLCStr = aModeLC==MANUAL ? "HYDROData_CalculationCase.MANUAL" : "HYDROData_CalculationCase.AUTOMATIC";
+ aResList << QString( "%0.SetAssignmentLandCoverMode( %1 )" ).arg( aCalculName ).arg( aModeLCStr );
+
HYDROData_SequenceOfObjects aGeomObjects = GetGeometryObjects();
HYDROData_SequenceOfObjects::Iterator anIter( aGeomObjects );
for ( ; anIter.More(); anIter.Next() )
if( aMode==AUTOMATIC )
DumpRulesToPython( aCalculName, aResList );
+ if( aModeLC==AUTOMATIC )
+ DumpLandCoverRulesToPython( aCalculName, aResList );
aResList << QString( "" );
aResList << "# Start the algorithm of the partition and assignment";
{
// Now we restore the
// - regions and zones order
- DumpRegionsToPython( aResList, theTreatedObjects, GetRegions( false ) );
+ DumpRegionsToPython( aResList, theTreatedObjects, GetRegions( false ) );
+ }
+
+ if( aModeLC==MANUAL )
+ {
+ // Now we restore the
// - land cover regions and zones order
DumpRegionsToPython( aResList, theTreatedObjects, GetRegions( true ) );
}
switch( GetAssignmentMode() )
{
case MANUAL:
- CreateRegionsDef( aDocument, aZonesList, false );
+ CreateRegionsDef( aDocument, aZonesList, false );
+ break;
+ case AUTOMATIC:
+ CreateRegionsAuto( aDocument, aZonesList, false );
+ break;
+ }
+
+ switch( GetAssignmentLandCoverMode() )
+ {
+ case MANUAL:
CreateRegionsDef( aDocument, aLandCoverZonesList, true );
break;
case AUTOMATIC:
- CreateRegionsAuto( aDocument, aZonesList, false );
CreateRegionsAuto( aDocument, aLandCoverZonesList, true );
break;
}
+
CreateEdgeGroupsDef( aDocument, anEdgesList );
}
GEOM::GEOM_Gen_var aGEOMEngine = HYDROData_GeomTool::GetGeomGen();
SALOMEDS::Study_var aDSStudy = HYDROData_GeomTool::GetStudyByID( theStudyId );
- QString aGeomObjEntry;
- bool isOK = Export( aGEOMEngine, aDSStudy, aGeomObjEntry );
+ QString aGeomObjEntry, anErrorMsg;
+ bool isOK = Export( aGEOMEngine, aDSStudy, aGeomObjEntry, anErrorMsg );
return isOK ? aGeomObjEntry : QString();
}
bool HYDROData_CalculationCase::Export( GEOM::GEOM_Gen_var theGeomEngine,
SALOMEDS::Study_ptr theStudy,
- QString& theGeomObjEntry ) const
+ QString& theGeomObjEntry,
+ QString& theErrorMsg ) const
{
HYDROData_ShapesGroup::SeqOfGroupsDefs aSeqOfGroupsDefs;
}
// Get faces
+ bool isAllNotSubmersible = true;
TopTools_ListOfShape aFaces;
HYDROData_SequenceOfObjects aCaseRegions = GetRegions( false );
HYDROData_SequenceOfObjects::Iterator aRegionIter( aCaseRegions );
Handle(HYDROData_Region)::DownCast( aRegionIter.Value() );
if( aRegion.IsNull() || !aRegion->IsSubmersible() )
continue;
+
+ if ( isAllNotSubmersible )
+ isAllNotSubmersible = false;
TopoDS_Shape aRegionShape = aRegion->GetShape( &aSeqOfGroupsDefs );
aFaces.Append( aRegionShape );
}
- return Export( theGeomEngine, theStudy, aFaces, aSeqOfGroupsDefs, theGeomObjEntry );
+ bool aRes = false;
+
+ if ( aCaseRegions.IsEmpty() ) {
+ theErrorMsg = QString("the list of regions is empty.");
+ } else if ( isAllNotSubmersible ) {
+ theErrorMsg = QString("there are no submersible regions.");
+ } else {
+ aRes = Export( theGeomEngine, theStudy, aFaces, aSeqOfGroupsDefs, theGeomObjEntry );;
+ }
+
+ return aRes;
}
bool HYDROData_CalculationCase::Export( GEOM::GEOM_Gen_var theGeomEngine,
return HYDROData_PriorityQueue::DumpRules( aRulesLab );
}
+QString HYDROData_CalculationCase::DumpLandCoverRules() const
+{
+ TDF_Label aRulesLab = myLab.FindChild( DataTag_CustomLandCoverRules );
+ return HYDROData_PriorityQueue::DumpRules( aRulesLab );
+}
+
void HYDROData_CalculationCase::SetAssignmentMode( AssignmentMode theMode )
{
TDF_Label aModeLab = myLab.FindChild( DataTag_AssignmentMode );
HYDROData_PriorityQueue::DumpRulesToPython( aRulesLab, theCalcCaseName, theScript );
}
+void HYDROData_CalculationCase::DumpLandCoverRulesToPython( const QString& theCalcCaseName,
+ QStringList& theScript ) const
+{
+ TDF_Label aRulesLab = myLab.FindChild( DataTag_CustomLandCoverRules );
+ HYDROData_PriorityQueue::DumpRulesToPython( aRulesLab, theCalcCaseName, theScript );
+}
+
HYDROData_Warning HYDROData_CalculationCase::GetLastWarning() const
{
return myLastWarning;