const Handle(HYDROData_Object)& theObject2,
HYDROData_Zone::MergeAltitudesType theMergeType )
{
- TDF_Label aNewRuleLab = theRulesLabel.NewChild();
+ // Get the last rule index
+ Standard_Integer aRuleIndex = 0;
+ Handle(TDataStd_Integer) anIntVal;
+ if ( theRulesLabel.FindAttribute( TDataStd_Integer::GetID(), anIntVal ) ) {
+ aRuleIndex = anIntVal->Get();
+ }
+
+ TDF_Label aNewRuleLab = theRulesLabel.FindChild( aRuleIndex );
TDF_Label anObj1Lab = aNewRuleLab.FindChild( Object1_Tag );
Handle(TDataStd_ReferenceList) aRefs = TDataStd_ReferenceList::Set( anObj1Lab );
TDF_Label aMergeLab = aNewRuleLab.FindChild( Merge_Tag );
TDataStd_Integer::Set( aMergeLab, theMergeType );
+
+ // Increment the last rule index
+ TDataStd_Integer::Set( theRulesLabel, aRuleIndex + 1 );
}
HYDROData_ListOfRules HYDROData_PriorityQueue::GetRules( const TDF_Label& theRulesLabel )