// 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.AssemblyTool.Data;
namespace Ringtoets.Integration.Data.Assembly
{
///
/// Assembly result for the combined failure mechanism section.
///
public class CombinedFailureMechanismSectionAssemblyResult
{
///
/// Creates a new instance of .
///
/// The start of the section from the beginning of the reference line
/// in meters.
/// The end of the section from the beginning of the reference line
/// in meters.
/// The total result of the section.
/// The container of the properties for the
/// .
/// Thrown when
/// is null.
public CombinedFailureMechanismSectionAssemblyResult(double sectionStart, double sectionEnd,
FailureMechanismSectionAssemblyCategoryGroup totalResult,
ConstructionProperties properties)
{
if (properties == null)
{
throw new ArgumentNullException(nameof(properties));
}
SectionStart = sectionStart;
SectionEnd = sectionEnd;
TotalResult = totalResult;
Piping = properties.Piping;
GrassCoverErosionInwards = properties.GrassCoverErosionInwards;
MacroStabilityInwards = properties.MacroStabilityInwards;
MacroStabilityOutwards = properties.MacroStabilityOutwards;
Microstability = properties.Microstability;
StabilityStoneCover = properties.StabilityStoneCover;
WaveImpactAsphaltCover = properties.WaveImpactAsphaltCover;
WaterPressureAsphaltCover = properties.WaterPressureAsphaltCover;
GrassCoverErosionOutwards = properties.GrassCoverErosionOutwards;
GrassCoverSlipOffOutwards = properties.GrassCoverSlipOffOutwards;
GrassCoverSlipOffInwards = properties.GrassCoverSlipOffInwards;
HeightStructures = properties.HeightStructures;
ClosingStructures = properties.ClosingStructures;
PipingStructure = properties.PipingStructure;
StabilityPointStructures = properties.StabilityPointStructures;
StrengthStabilityLengthwiseConstruction = properties.StrengthStabilityLengthwiseConstruction;
DuneErosion = properties.DuneErosion;
TechnicalInnovation = properties.TechnicalInnovation;
}
///
/// Gets the start of the section from the beginning of the reference line.
/// [m]
///
public double SectionStart { get; }
///
/// Gets the end of the section from the beginning of the reference line.
/// [m]
///
public double SectionEnd { get; }
///
/// Gets the total assembly result.
///
public FailureMechanismSectionAssemblyCategoryGroup TotalResult { get; }
///
/// Gets the assembly result for piping.
///
public FailureMechanismSectionAssemblyCategoryGroup Piping { get; }
///
/// Gets the assembly result for grass cover erosion inwards.
///
public FailureMechanismSectionAssemblyCategoryGroup GrassCoverErosionInwards { get; }
///
/// Gets the assembly result for macro stability inwards.
///
public FailureMechanismSectionAssemblyCategoryGroup MacroStabilityInwards { get; }
///
/// Gets the assembly result for macro stability outwards.
///
public FailureMechanismSectionAssemblyCategoryGroup MacroStabilityOutwards { get; }
///
/// Gets the assembly result for microstability.
///
public FailureMechanismSectionAssemblyCategoryGroup Microstability { get; }
///
/// Gets the assembly result for stability stone cover.
///
public FailureMechanismSectionAssemblyCategoryGroup StabilityStoneCover { get; }
///
/// Gets the assembly result for wave impact asphalt cover.
///
public FailureMechanismSectionAssemblyCategoryGroup WaveImpactAsphaltCover { get; }
///
/// Gets the assembly result for water pressure asphalt cover.
///
public FailureMechanismSectionAssemblyCategoryGroup WaterPressureAsphaltCover { get; }
///
/// Gets the assembly result for grass cover erosion outwards.
///
public FailureMechanismSectionAssemblyCategoryGroup GrassCoverErosionOutwards { get; }
///
/// Gets the assembly result for grass cover slip off outwards.
///
public FailureMechanismSectionAssemblyCategoryGroup GrassCoverSlipOffOutwards { get; }
///
/// Gets the assembly result for grass cover slip off inwards.
///
public FailureMechanismSectionAssemblyCategoryGroup GrassCoverSlipOffInwards { get; }
///
/// Gets the assembly result for height structures.
///
public FailureMechanismSectionAssemblyCategoryGroup HeightStructures { get; }
///
/// Gets the assembly result for closing structures.
///
public FailureMechanismSectionAssemblyCategoryGroup ClosingStructures { get; }
///
/// Gets the assembly result for piping structure.
///
public FailureMechanismSectionAssemblyCategoryGroup PipingStructure { get; }
///
/// Gets the assembly result for stability point structures.
///
public FailureMechanismSectionAssemblyCategoryGroup StabilityPointStructures { get; }
///
/// Gets the assembly result for strength stability lengthwise construction.
///
public FailureMechanismSectionAssemblyCategoryGroup StrengthStabilityLengthwiseConstruction { get; }
///
/// Gets the assembly result for dune erosion.
///
public FailureMechanismSectionAssemblyCategoryGroup DuneErosion { get; }
///
/// Gets the assembly result for technical innovation.
///
public FailureMechanismSectionAssemblyCategoryGroup TechnicalInnovation { get; }
///
/// Container for properties for constructing a .
/// s
public class ConstructionProperties
{
///
/// Creates a new instance of .
///
public ConstructionProperties()
{
Piping = FailureMechanismSectionAssemblyCategoryGroup.None;
GrassCoverErosionInwards = FailureMechanismSectionAssemblyCategoryGroup.None;
MacroStabilityInwards = FailureMechanismSectionAssemblyCategoryGroup.None;
MacroStabilityOutwards = FailureMechanismSectionAssemblyCategoryGroup.None;
Microstability = FailureMechanismSectionAssemblyCategoryGroup.None;
StabilityStoneCover = FailureMechanismSectionAssemblyCategoryGroup.None;
WaveImpactAsphaltCover = FailureMechanismSectionAssemblyCategoryGroup.None;
WaterPressureAsphaltCover = FailureMechanismSectionAssemblyCategoryGroup.None;
GrassCoverErosionOutwards = FailureMechanismSectionAssemblyCategoryGroup.None;
GrassCoverSlipOffOutwards = FailureMechanismSectionAssemblyCategoryGroup.None;
GrassCoverSlipOffInwards = FailureMechanismSectionAssemblyCategoryGroup.None;
HeightStructures = FailureMechanismSectionAssemblyCategoryGroup.None;
ClosingStructures = FailureMechanismSectionAssemblyCategoryGroup.None;
PipingStructure = FailureMechanismSectionAssemblyCategoryGroup.None;
StabilityPointStructures = FailureMechanismSectionAssemblyCategoryGroup.None;
StrengthStabilityLengthwiseConstruction = FailureMechanismSectionAssemblyCategoryGroup.None;
DuneErosion = FailureMechanismSectionAssemblyCategoryGroup.None;
TechnicalInnovation = FailureMechanismSectionAssemblyCategoryGroup.None;
}
///
/// Gets or sets the assembly result for piping.
///
public FailureMechanismSectionAssemblyCategoryGroup Piping { internal get; set; }
///
/// Gets or sets the assembly result for grass cover erosion inwards.
///
public FailureMechanismSectionAssemblyCategoryGroup GrassCoverErosionInwards { internal get; set; }
///
/// Gets or sets the assembly result for macro stability inwards.
///
public FailureMechanismSectionAssemblyCategoryGroup MacroStabilityInwards { internal get; set; }
///
/// Gets or sets the assembly result for macro stability outwards.
///
public FailureMechanismSectionAssemblyCategoryGroup MacroStabilityOutwards { internal get; set; }
///
/// Gets or sets the assembly result for microstability.
///
public FailureMechanismSectionAssemblyCategoryGroup Microstability { internal get; set; }
///
/// Gets or sets the assembly result for stability stone cover.
///
public FailureMechanismSectionAssemblyCategoryGroup StabilityStoneCover { internal get; set; }
///
/// Gets or sets the assembly result for wave impact asphalt cover.
///
public FailureMechanismSectionAssemblyCategoryGroup WaveImpactAsphaltCover { internal get; set; }
///
/// Gets or sets the assembly result for water pressure asphalt cover.
///
public FailureMechanismSectionAssemblyCategoryGroup WaterPressureAsphaltCover { internal get; set; }
///
/// Gets or sets the assembly result for grass cover erosion outwards.
///
public FailureMechanismSectionAssemblyCategoryGroup GrassCoverErosionOutwards { internal get; set; }
///
/// Gets or sets the assembly result for grass cover slip off outwards.
///
public FailureMechanismSectionAssemblyCategoryGroup GrassCoverSlipOffOutwards { internal get; set; }
///
/// Gets or sets the assembly result for grass cover slip off inwards.
///
public FailureMechanismSectionAssemblyCategoryGroup GrassCoverSlipOffInwards { internal get; set; }
///
/// Gets or sets the assembly result for height structures.
///
public FailureMechanismSectionAssemblyCategoryGroup HeightStructures { internal get; set; }
///
/// Gets or sets the assembly result for closing structures.
///
public FailureMechanismSectionAssemblyCategoryGroup ClosingStructures { internal get; set; }
///
/// Gets or sets the assembly result for piping structure.
///
public FailureMechanismSectionAssemblyCategoryGroup PipingStructure { internal get; set; }
///
/// Gets or sets the assembly result for stability point structures.
///
public FailureMechanismSectionAssemblyCategoryGroup StabilityPointStructures { internal get; set; }
///
/// Gets or sets the assembly result for strength stability lengthwise construction.
///
public FailureMechanismSectionAssemblyCategoryGroup StrengthStabilityLengthwiseConstruction { internal get; set; }
///
/// Gets or sets the assembly result for dune erosion.
///
public FailureMechanismSectionAssemblyCategoryGroup DuneErosion { internal get; set; }
///
/// Gets or sets the assembly result for technical innovation.
///
public FailureMechanismSectionAssemblyCategoryGroup TechnicalInnovation { internal get; set; }
}
}
}