HYDROData_SplitToZonesTool::SplitDataList aZonesList, anEdgesList;
Handle(HYDROData_PolylineXY) aBoundaryPolyline = GetBoundaryPolyline();
+
+ HYDROData_SequenceOfObjects InterPolys = GetInterPolyObjects();
+
HYDROData_SequenceOfObjects aGeomObjects = GetGeometryObjects();
if ( !aGeomObjects.IsEmpty() ) {
HYDROData_SequenceOfObjects aGeomGroups = GetGeometryGroups();
HYDROData_SplitToZonesTool::SplitDataList aSplitObjects =
- HYDROData_SplitToZonesTool::Split( aGeomObjects, aGeomGroups, aBoundaryPolyline );
+ HYDROData_SplitToZonesTool::Split( aGeomObjects, aGeomGroups, aBoundaryPolyline, InterPolys );
if ( !aSplitObjects.isEmpty() ) {
HYDROData_SplitToZonesTool::SplitDataListIterator anIter( aSplitObjects );
while( anIter.hasNext() ) {
return aCoeff;
}
+std::vector<double> HYDROData_CalculationCase::GetStricklerCoefficientForPoints(const std::vector<gp_XY>& thePoints,
+ double DefValue, bool UseMax ) const
+{
+ Handle( HYDROData_LandCoverMap ) aLCM = GetLandCoverMap();
+ Handle( HYDROData_StricklerTable ) aTable = GetStricklerTable();
+ std::vector<double> theCoeffs;
+ if( aLCM.IsNull() || aTable.IsNull() )
+ return theCoeffs;
+
+ aLCM->ClassifyPoints(thePoints, aTable, theCoeffs, DefValue, UseMax );
+
+ return theCoeffs;
+}
+
Handle(HYDROData_Region) HYDROData_CalculationCase::GetRegionFromPoint( const gp_XY& thePoint ) const
{
Handle(HYDROData_Region) aResRegion;
return HYDROData_PriorityQueue::GetRule( aRulesLab, theIndex,
theObject1, thePriority, theObject2, theMergeType );
}
+
+bool HYDROData_CalculationCase::AddInterPoly( const Handle(HYDROData_PolylineXY)& theInterPolyline )
+{
+ HYDROData_CalculationCase::DataTag aDataTag = DataTag_InterPoly;
+
+ if ( HasReference( theInterPolyline, aDataTag ) )
+ return false;
+
+ AddReferenceObject( theInterPolyline, aDataTag );
+
+ return true;
+}
+
+HYDROData_SequenceOfObjects HYDROData_CalculationCase::GetInterPolyObjects() const
+{
+ return GetReferenceObjects( DataTag_InterPoly );
+}
+
+void HYDROData_CalculationCase::RemoveInterPolyObject( const Handle(HYDROData_PolylineXY)& theInterPolyline )
+{
+ if ( theInterPolyline.IsNull() )
+ return;
+
+ RemoveReferenceObject( theInterPolyline->Label(), DataTag_InterPoly );
+
+}
+
+
+