+NCollection_Sequence<double> HYDROData_CalculationCase::GetAltitudesForPoints(
+ const NCollection_Sequence<gp_XY>& thePoints,
+ const Handle(HYDROData_Region)& theRegion,
+ int theMethod) const
+{
+ DEBTRACE("HYDROData_CalculationCase::GetAltitudesForPoints " << theRegion->GetName().toStdString());
+ NCollection_Sequence<double> aResSeq;
+
+ for ( int i = 1, n = thePoints.Length(); i <= n; ++i )
+ {
+ const gp_XY& thePnt = thePoints.Value( i );
+
+ double anAltitude = GetAltitudeForPoint( thePnt, theRegion, theMethod );
+ aResSeq.Append( anAltitude );
+ }
+
+ return aResSeq;
+}
+
+NCollection_Sequence<double> HYDROData_CalculationCase::GetAltitudesForPoints(
+ const NCollection_Sequence<gp_XY>& thePoints,
+ const Handle(HYDROData_Zone)& theZone,
+ int theMethod) const
+{
+ NCollection_Sequence<double> aResSeq;
+
+ for ( int i = 1, n = thePoints.Length(); i <= n; ++i )
+ {
+ const gp_XY& thePnt = thePoints.Value( i );
+
+ double anAltitude = GetAltitudeForPoint( thePnt, theZone, theMethod );
+ aResSeq.Append( anAltitude );
+ }
+
+ return aResSeq;
+}
+
+double HYDROData_CalculationCase::GetStricklerCoefficientForPoint( const gp_XY& thePoint ) const
+{
+ Handle( HYDROData_LandCoverMap ) aMap = GetLandCoverMap();
+ Handle( HYDROData_StricklerTable ) aTable = GetStricklerTable();
+ if( aMap.IsNull() )
+ return 0.0;
+
+ QString aType;
+ aMap->FindByPoint( thePoint, aType );
+ double aCoeff = aTable->Get( aType, 0.0 );
+ return aCoeff;
+}
+
+std::vector<double> HYDROData_CalculationCase::GetStricklerCoefficientForPoints(const std::vector<gp_XY>& thePoints,
+ double DefValue, bool UseMax ) const
+{
+ DEBTRACE("GetStricklerCoefficientForPoints");
+ Handle( HYDROData_LandCoverMap ) aLCM = GetLandCoverMap();
+ Handle( HYDROData_StricklerTable ) aTable = GetStricklerTable();
+ std::vector<double> theCoeffs;
+ DEBTRACE("aLCM.IsNull() " << aLCM.IsNull());
+ DEBTRACE("aTable.IsNull() "<< aTable.IsNull());
+ if( aLCM.IsNull() || aTable.IsNull() )
+ return theCoeffs;
+
+ aLCM->ClassifyPoints(thePoints, aTable, theCoeffs, DefValue, UseMax );
+
+ return theCoeffs;
+}
+
+std::vector<int> HYDROData_CalculationCase::GetStricklerTypeForPoints( const std::vector<gp_XY>& thePoints ) const
+{
+ Handle( HYDROData_LandCoverMap ) aLCM = GetLandCoverMap();
+ Handle( HYDROData_StricklerTable ) aTable = GetStricklerTable();
+ std::vector<int> types;
+ if( aLCM.IsNull() || aTable.IsNull() )
+ return types;
+
+ aLCM->ClassifyPoints(thePoints, aTable, types );
+ return types;
+}
+
+Handle(HYDROData_Region) HYDROData_CalculationCase::GetRegionFromPoint( const gp_XY& thePoint ) const
+{
+ Handle(HYDROData_Region) aResRegion;
+
+ Handle(HYDROData_Zone) aZone = GetZoneFromPoint( thePoint );
+ if ( !aZone.IsNull() )
+ aResRegion = Handle(HYDROData_Region)::DownCast( aZone->GetFatherObject() );
+
+ return aResRegion;
+}
+