QMap<QString, Handle(HYDROData_Region)> aRegionsMap; //object name to region
QMap<QString, QString> aRegionNameToObjNameMap;
QString aZonesPref = CALCULATION_ZONES_PREF;
- HYDROData_PriorityQueue aPr( this, DataTag_CustomRules );
+ HYDROData_PriorityQueue aPr( this, theLandCover ? DataTag_CustomLandCoverRules : DataTag_CustomRules );
// 1. First we create a default region for each object included into the calculation case
HYDROData_SequenceOfObjects anObjects = theLandCover ? GetLandCovers() : GetGeometryObjects();
HYDROData_PriorityQueue::HYDROData_PriorityQueue( HYDROData_CalculationCase* theCalcCase,
Standard_Integer aTag )
{
- myGeomObjects = theCalcCase->GetGeometryObjects();
- for( int i=myGeomObjects.Lower(), n=myGeomObjects.Upper(); i<=n; i++ )
+ bool isLandCover = aTag == HYDROData_CalculationCase::DataTag_CustomLandCoverRules;
+ myObjects = isLandCover ? theCalcCase->GetLandCovers() : theCalcCase->GetGeometryObjects();
+ for( int i=myObjects.Lower(), n=myObjects.Upper(); i<=n; i++ )
{
- Handle(HYDROData_Entity) anObj = myGeomObjects.Value( i );
+ Handle(HYDROData_Entity) anObj = myObjects.Value( i );
if( !anObj.IsNull() )
{
QString anObjName = anObj->GetName();
HYDROData_Zone::MergeType& theMergeType ) const
{
QStringList aSortedZoneObjects;
- for( int i=myGeomObjects.Lower(), n=myGeomObjects.Upper(); i<=n; i++ )
+ for( int i=myObjects.Lower(), n=myObjects.Upper(); i<=n; i++ )
{
- QString aName = myGeomObjects.Value( i )->GetName();
+ QString aName = myObjects.Value( i )->GetName();
if( theZoneObjects.contains( aName ) )
aSortedZoneObjects.append( aName );
}
}
// 2. If no custom rule found, the standard ordering list is applied
- for( int i=myGeomObjects.Lower(), n=myGeomObjects.Upper(); i<=n; i++ )
+ for( int i=myObjects.Lower(), n=myObjects.Upper(); i<=n; i++ )
{
- if( myGeomObjects.Value( i )->Label() == theObj1->Label() )
+ if( myObjects.Value( i )->Label() == theObj1->Label() )
{
theMergeType = HYDROData_Zone::Merge_Object;
return true;
}
- if( myGeomObjects.Value( i )->Label() == theObj2->Label() )
+ if( myObjects.Value( i )->Label() == theObj2->Label() )
{
theMergeType = HYDROData_Zone::Merge_Object;
return false;
QString HYDROData_PriorityQueue::DumpRules( const TDF_Label& theRulesLab )
{
- QString aDump = "Rules:\n";
+ bool isLandCover = theRulesLab.Tag() == HYDROData_CalculationCase::DataTag_CustomLandCoverRules;
+ QString aDump = isLandCover ? "Land Cover rules:\n" : "Rules:\n";
+
HYDROData_ListOfRules aRules = GetRules( theRulesLab );
HYDROData_ListOfRules::const_iterator anIt = aRules.begin(), aLast = aRules.end();
for( ; anIt!=aLast; anIt++ )
private:
typedef QMap<QString, Handle(HYDROData_Entity)> MapNameToObject;
- HYDROData_SequenceOfObjects myGeomObjects; ///< the ordered list of objects (default priority)
- MapNameToObject myNames; ///< the map of name to object
- HYDROData_ListOfRules myRules; ///< the list of rules
+ HYDROData_SequenceOfObjects myObjects; ///< the ordered list of objects (default priority)
+ MapNameToObject myNames; ///< the map of name to object
+ HYDROData_ListOfRules myRules; ///< the list of rules
};
#endif