// 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 System.Collections.Generic; using System.Linq; using Core.Common.Base.Geometry; using Ringtoets.MacroStabilityInwards.Primitives; namespace Ringtoets.MacroStabilityInwards.Data { /// /// A 2D soil layer that has been adapted by using a surface line. /// public class SoilLayerUnderSurfaceLine { /// /// Creates a new instance of . /// /// The outer ring of the geometry of the soil layer. /// The properties of the soil layer. /// Thrown when any parameter is null. public SoilLayerUnderSurfaceLine(Point2D[] outerRing, SoilLayerProperties properties) : this(outerRing, Enumerable.Empty(), properties) {} /// /// Creates a new instance of . /// /// The outer ring of the geometry of the soil layer. /// The holes of the geometry of the soil layer. /// The properties of the soil layer. /// Thrown when any parameter is null. public SoilLayerUnderSurfaceLine(Point2D[] outerRing, IEnumerable holes, SoilLayerProperties properties) { if (outerRing == null) { throw new ArgumentNullException(nameof(outerRing)); } if (holes == null) { throw new ArgumentNullException(nameof(holes)); } if (properties == null) { throw new ArgumentNullException(nameof(properties)); } OuterRing = outerRing; Holes = holes; Properties = properties; } /// /// Gets the outer ring of the geometry. /// public Point2D[] OuterRing { get; } /// /// Gets the holes of the geometry. /// public IEnumerable Holes { get; } /// /// Gets the properties of the soil layer. /// public SoilLayerProperties Properties { get; } } }