// 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 Core.Common.Base.Data;
using Core.Common.Base.Geometry;
namespace Ringtoets.DuneErosion.Forms.Views
{
///
/// Class that holds all the information of a dune location and calculations.
///
public class AggregatedDuneLocation
{
///
/// Creates a new instance of .
///
/// The id of the dune location.
/// The name of the dune location.
/// The location of the dune location
/// The coastal area id of the dune location.
/// The offset of the dune location.
/// The d50 of the dune location.
/// The result of the water level calculation
/// for the mechanism specific factorized signaling norm.
/// The result of the water level calculation
/// for the mechanism specific signaling norm.
/// The result of the water level calculation
/// for the mechanism specific lower limit norm.
/// The result of the water level calculation
/// for the lower limit norm.
/// The result of the water level calculation
/// for the factorized lower limit norm.
/// The result of the wave height calculation
/// for the mechanism specific factorized signaling norm.
/// The result of the wave height calculation
/// for the mechanism specific signaling norm.
/// The result of the wave height calculation
/// for the mechanism specific lower limit norm.
/// The result of the wave height calculation
/// for the lower limit norm.
/// The result of the wave height calculation
/// for the factorized lower limit norm.
/// The result of the wave period calculation
/// for the mechanism specific factorized signaling norm.
/// The result of the wave period calculation
/// for the mechanism specific signaling norm.
/// The result of the wave period calculation
/// for the mechanism specific lower limit norm.
/// The result of the wave period calculation
/// for the lower limit norm.
/// The result of the wave period calculation
/// for the factorized lower limit norm.
/// Thrown when or
/// is null.
public AggregatedDuneLocation(long id, string name, Point2D location, int coastalAreaId, RoundedDouble offset, RoundedDouble d50,
RoundedDouble waterLevelForMechanismSpecificFactorizedSignalingNorm,
RoundedDouble waterLevelForMechanismSpecificSignalingNorm,
RoundedDouble waterLevelForMechanismSpecificLowerLimitNorm,
RoundedDouble waterLevelForLowerLimitNorm,
RoundedDouble waterLevelForFactorizedLowerLimitNorm,
RoundedDouble waveHeightForMechanismSpecificFactorizedSignalingNorm,
RoundedDouble waveHeightForMechanismSpecificSignalingNorm,
RoundedDouble waveHeightForMechanismSpecificLowerLimitNorm,
RoundedDouble waveHeightForLowerLimitNorm,
RoundedDouble waveHeightForFactorizedLowerLimitNorm,
RoundedDouble wavePeriodForMechanismSpecificFactorizedSignalingNorm,
RoundedDouble wavePeriodForMechanismSpecificSignalingNorm,
RoundedDouble wavePeriodForMechanismSpecificLowerLimitNorm,
RoundedDouble wavePeriodForLowerLimitNorm,
RoundedDouble wavePeriodForFactorizedLowerLimitNorm)
{
if (name == null)
{
throw new ArgumentNullException(nameof(name));
}
if (location == null)
{
throw new ArgumentNullException(nameof(location));
}
Id = id;
Name = name;
Location = location;
CoastalAreaId = coastalAreaId;
Offset = offset;
D50 = d50;
WaterLevelForMechanismSpecificFactorizedSignalingNorm = waterLevelForMechanismSpecificFactorizedSignalingNorm;
WaterLevelForMechanismSpecificSignalingNorm = waterLevelForMechanismSpecificSignalingNorm;
WaterLevelForMechanismSpecificLowerLimitNorm = waterLevelForMechanismSpecificLowerLimitNorm;
WaterLevelForLowerLimitNorm = waterLevelForLowerLimitNorm;
WaterLevelForFactorizedLowerLimitNorm = waterLevelForFactorizedLowerLimitNorm;
WaveHeightForMechanismSpecificFactorizedSignalingNorm = waveHeightForMechanismSpecificFactorizedSignalingNorm;
WaveHeightForMechanismSpecificSignalingNorm = waveHeightForMechanismSpecificSignalingNorm;
WaveHeightForMechanismSpecificLowerLimitNorm = waveHeightForMechanismSpecificLowerLimitNorm;
WaveHeightForLowerLimitNorm = waveHeightForLowerLimitNorm;
WaveHeightForFactorizedLowerLimitNorm = waveHeightForFactorizedLowerLimitNorm;
WavePeriodForMechanismSpecificFactorizedSignalingNorm = wavePeriodForMechanismSpecificFactorizedSignalingNorm;
WavePeriodForMechanismSpecificSignalingNorm = wavePeriodForMechanismSpecificSignalingNorm;
WavePeriodForMechanismSpecificLowerLimitNorm = wavePeriodForMechanismSpecificLowerLimitNorm;
WavePeriodForLowerLimitNorm = wavePeriodForLowerLimitNorm;
WavePeriodForFactorizedLowerLimitNorm = wavePeriodForFactorizedLowerLimitNorm;
}
///
/// Gets the id of the dune location.
///
public long Id { get; }
///
/// Gets the name of the dune location.
///
public string Name { get; }
///
/// Gets the location of the dune location.
///
public Point2D Location { get; }
///
/// Gets the coastal area id of the dune location.
///
public int CoastalAreaId { get; }
///
/// Gets the offset of the dune location.
///
public RoundedDouble Offset { get; }
///
/// Gets the d50 of the dune location.
///
public RoundedDouble D50 { get; }
///
/// Gets the result of the water level for the mechanism specific factorized signaling norm.
///
public RoundedDouble WaterLevelForMechanismSpecificFactorizedSignalingNorm { get; }
///
/// Gets the result of the water level for the mechanism specific signaling norm.
///
public RoundedDouble WaterLevelForMechanismSpecificSignalingNorm { get; }
///
/// Gets the result of the water level for the mechanism specific lower limit norm.
///
public RoundedDouble WaterLevelForMechanismSpecificLowerLimitNorm { get; }
///
/// Gets the result of the water level for the lower limit norm.
///
public RoundedDouble WaterLevelForLowerLimitNorm { get; }
///
/// Gets the result of the water level for the factorized lower limit norm.
///
public RoundedDouble WaterLevelForFactorizedLowerLimitNorm { get; }
///
/// Gets the result of the wave height for the mechanism specific factorized signaling norm.
///
public RoundedDouble WaveHeightForMechanismSpecificFactorizedSignalingNorm { get; }
///
/// Gets the result of the wave height for the mechanism specific signaling norm.
///
public RoundedDouble WaveHeightForMechanismSpecificSignalingNorm { get; }
///
/// Gets the result of the wave height for the mechanism specific lower limit norm.
///
public RoundedDouble WaveHeightForMechanismSpecificLowerLimitNorm { get; }
///
/// Gets the result of the wave height for the lower limit norm.
///
public RoundedDouble WaveHeightForLowerLimitNorm { get; }
///
/// Gets the result of the wave height for the factorized lower limit norm.
///
public RoundedDouble WaveHeightForFactorizedLowerLimitNorm { get; }
///
/// Gets the result of the wave period for the mechanism specific factorized signaling norm.
///
public RoundedDouble WavePeriodForMechanismSpecificFactorizedSignalingNorm { get; }
///
/// Gets the result of the wave period for the mechanism specific signaling norm.
///
public RoundedDouble WavePeriodForMechanismSpecificSignalingNorm { get; }
///
/// Gets the result of the wave period for the mechanism specific lower limit norm.
///
public RoundedDouble WavePeriodForMechanismSpecificLowerLimitNorm { get; }
///
/// Gets the result of the wave period for the lower limit norm.
///
public RoundedDouble WavePeriodForLowerLimitNorm { get; }
///
/// Gets the result of the wave period for the factorized lower limit norm.
///
public RoundedDouble WavePeriodForFactorizedLowerLimitNorm { get; }
}
}