Salome HOME
TShell cannot be disconnected; use TCompound of shells/faces instead
[modules/hydro.git] / src / HYDROData / HYDROData_CalculationCase.cxx
index 3d3d918b7521712f904aba29a71516aba1fa2466..34b413fa97e92e229ec27e6076e0ec6646ad57a5 100644 (file)
@@ -578,9 +578,14 @@ void HYDROData_CalculationCase::RemoveStricklerTable()
 
 Handle(HYDROData_LandCoverMap) HYDROData_CalculationCase::GetLandCoverMap() const
 {
-  // TODO
-  Handle(HYDROData_LandCoverMap) aLandCoverMap = NULL;
-  return aLandCoverMap;
+  Handle(HYDROData_LandCoverMap) aMap = Handle(HYDROData_LandCoverMap)::DownCast(
+    GetReferenceObject( DataTag_LandCoverMap ) );
+  return aMap;
+}
+
+void HYDROData_CalculationCase::SetLandCoverMap( const Handle(HYDROData_LandCoverMap)& theMap )
+{
+  SetReferenceObject( theMap, DataTag_LandCoverMap );
 }
 
 Handle(HYDROData_Region) HYDROData_CalculationCase::AddNewRegion( const Handle(HYDROData_Zone)& theZone )
@@ -843,8 +848,15 @@ NCollection_Sequence<double> HYDROData_CalculationCase::GetAltitudesForPoints(
 
 double HYDROData_CalculationCase::GetStricklerCoefficientForPoint( const gp_XY& thePoint ) const
 {
-  //TODO: #652
-  return 0.0;
+  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;
 }
 
 Handle(HYDROData_Region) HYDROData_CalculationCase::GetRegionFromPoint( const gp_XY& thePoint ) const