// Copyright (C) Stichting Deltares 2017. All rights reserved. // // This file is part of Ringtoets. // // Ringtoets is free software: you can redistribute it and/or modify // it under the terms of the GNU 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 General Public License for more details. // // You should have received a copy of the GNU 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 Ringtoets.MacroStabilityInwards.KernelWrapper.Result; namespace Ringtoets.MacroStabilityInwards.KernelWrapper { /// /// This class contains all the results of a complete macro stability inwards calculation. /// public class MacroStabilityInwardsCalculatorResult { /// /// Creates a new instance of . /// The result will hold all the values which were given. /// /// The sliding curve result. /// The upliftVan calculation grid result. /// The container of the properties for the /// /// Thrown when any /// parameter is null. internal MacroStabilityInwardsCalculatorResult(MacroStabilityInwardsSlidingCurveResult slidingCurve, MacroStabilityInwardsUpliftVanCalculationGridResult upliftVanCalculationGrid, ConstructionProperties properties) { if (slidingCurve == null) { throw new ArgumentNullException(nameof(slidingCurve)); } if (upliftVanCalculationGrid == null) { throw new ArgumentNullException(nameof(upliftVanCalculationGrid)); } if (properties == null) { throw new ArgumentNullException(nameof(properties)); } SlidingCurve = slidingCurve; UpliftVanCalculationGrid = upliftVanCalculationGrid; FactorOfStability = properties.FactorOfStability; ZValue = properties.ZValue; ForbiddenZonesXEntryMin = properties.ForbiddenZonesXEntryMin; ForbiddenZonesXEntryMax = properties.ForbiddenZonesXEntryMax; ForbiddenZonesAutomaticallyCalculated = properties.ForbiddenZonesAutomaticallyCalculated; GridAutomaticallyCalculated = properties.GridAutomaticallyCalculated; } /// /// Container for properties for constructing a . /// s public class ConstructionProperties { /// /// Creates a new instance of . /// public ConstructionProperties() { FactorOfStability = double.NaN; ZValue = double.NaN; ForbiddenZonesXEntryMin = double.NaN; ForbiddenZonesXEntryMax = double.NaN; } /// /// Gets or sets the factor of stability of the upliftVan calculation. /// public double FactorOfStability { internal get; set; } /// /// Gets or sets the z value. /// public double ZValue { internal get; set; } /// /// Gets or sets the forbidden zones x entry min. /// public double ForbiddenZonesXEntryMin { internal get; set; } /// /// Gets or sets the forbidden zones x entry max. /// public double ForbiddenZonesXEntryMax { internal get; set; } /// /// Gets or sets whether the forbidden zones are automatically calculated. /// public bool ForbiddenZonesAutomaticallyCalculated { internal get; set; } /// /// Gets or sets whether the grid is automatically calculated. /// public bool GridAutomaticallyCalculated { internal get; set; } } #region properties /// /// Gets the sliding curve result. /// public MacroStabilityInwardsSlidingCurveResult SlidingCurve { get; } /// /// Gets the upliftVan calculation grid result. /// public MacroStabilityInwardsUpliftVanCalculationGridResult UpliftVanCalculationGrid { get; } /// /// Gets the factor of stability of the upliftVan calculation. /// public double FactorOfStability { get; } /// /// Gets the z value. /// public double ZValue { get; } /// /// Gets the forbidden zones x entry min. /// public double ForbiddenZonesXEntryMin { get; } /// /// Gets the forbidden zones x entry max. /// public double ForbiddenZonesXEntryMax { get; } /// /// Gets whether the forbidden zones are automatically calculated. /// public bool ForbiddenZonesAutomaticallyCalculated { get; } /// /// Gets whether the grid is automatically calculated. /// public bool GridAutomaticallyCalculated { get; } #endregion } }