// Copyright (C) Stichting Deltares 2018. All rights reserved. // // This file is part of the Dam Engine. // // The Dam Engine is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Deltares.DamEngine.Data.General { public class StabilityOptions { private double? forbiddenZoneFactor = 1.0; private double? zoneAreaRestSlopeCrestWidth = 3.0; private double? minimalCircleDepth = 0; private double? trafficLoad = 0; /// /// Gets or sets the map for soilgeometries2d (sti-files). /// /// /// The map for soilgeometries2d. /// public string SoilGeometries2DPath { get; set; } = ""; /// /// Gets or sets the name of the soil database. /// /// /// The name of the soil database. /// public string SoilDatabaseName { get; set; } = ""; /// /// Gets or sets the type of the stability zone. /// /// /// The type of the stability zone. /// public MStabZonesType StabilityZoneType { get; set; } = MStabZonesType.NoZones; /// /// Gets or sets the forbidden zone factor. /// /// /// The forbidden zone factor. /// public double? ForbiddenZoneFactor { get { return forbiddenZoneFactor; } set { forbiddenZoneFactor = value; } } /// /// Gets or sets the width of the zone area rest slope crest. /// /// /// The width of the zone area rest slope crest. /// public double? ZoneAreaRestSlopeCrestWidth { get { return zoneAreaRestSlopeCrestWidth; } set { zoneAreaRestSlopeCrestWidth = value; } } /// /// Gets or sets the traffic load. /// /// /// The traffic load. /// public double? TrafficLoad { get { return trafficLoad; } set { trafficLoad = value; } } /// /// Gets or sets the minimal circle depth. /// /// /// The minimal circle depth. /// public double? MinimalCircleDepth { get { return minimalCircleDepth; } set { minimalCircleDepth = value; } } /// /// Sets the default values; taking into account which DamProjectType and DamType is set /// /// Type of the dam. /// Type of the dam project. // TODO fix hiding parameter (e.g. use field instead of parameter) // TODO possibly set this when setting a damType and damProjectType for this location public void SetDefaultValues(DamType damType, DamProjectType damProjectType) { if ((damType == DamType.Regional) && (damProjectType == DamProjectType.AssessmentRegional)) { zoneAreaRestSlopeCrestWidth = 1.5; } else { zoneAreaRestSlopeCrestWidth = 3.0; } } } }