// 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.Geometry;
namespace Ringtoets.Common.IO.SurfaceLines
{
///
/// This class represents a collection of characterizing locations on a surface line.
///
public class CharacteristicPoints
{
///
/// Creates an instance of .
///
/// The name of the location for which the
/// defines characteristic points.
/// Thrown when is null.
public CharacteristicPoints(string name)
{
if (name == null)
{
throw new ArgumentNullException(nameof(name), @"Cannot make a definition of characteristic points for an unknown location.");
}
Name = name;
}
///
/// Gets the name of the location for which the defines
/// characteristic points.
///
public string Name { get; private set; }
///
/// Gets or sets the location which generalizes the surface level on the
/// inside of the polder
///
public Point3D SurfaceLevelInside { get; set; }
///
/// Gets or sets the location of the start of the ditch when approaching from
/// inside the polder.
///
public Point3D DitchPolderSide { get; set; }
///
/// Gets or sets the location of the bottom of the ditch when approaching
/// from inside the polder.
///
public Point3D BottomDitchPolderSide { get; set; }
///
/// Gets or sets the location of the bottom of the ditch when approaching
/// from the dike.
///
public Point3D BottomDitchDikeSide { get; set; }
///
/// Gets or sets the location of the start of the ditch when approaching
/// from the dike.
///
public Point3D DitchDikeSide { get; set; }
///
/// Gets or sets the location of dike toe when approaching from inside
/// the polder.
///
public Point3D DikeToeAtPolder { get; set; }
///
/// Gets or sets the location where the shoulder on the side of the polder
/// declines towards the location of the dike toe when approaching from inside
/// the polder.
///
public Point3D TopShoulderInside { get; set; }
///
/// Gets or sets the location where the shoulder on the side of the polder
/// connects with the dike.
///
public Point3D ShoulderInside { get; set; }
///
/// Gets or sets the location of the top of the dike when approaching from
/// inside the polder.
///
public Point3D DikeTopAtPolder { get; set; }
///
/// Gets or sets the location of the start of traffic load when approaching
/// from inside the polder.
///
public Point3D TrafficLoadInside { get; set; }
///
/// Gets or sets the location of the start of traffic load when approaching
/// from outside the polder.
///
public Point3D TrafficLoadOutside { get; set; }
///
/// Gets or sets the location of the top of the dike when approaching
/// from outside the polder.
///
public Point3D DikeTopAtRiver { get; set; }
///
/// Gets or sets the location where the shoulder on the outside of the polder
/// connects with the dike.
///
public Point3D ShoulderOutisde { get; set; }
///
/// Gets or sets the location where the shoulder on the outside of the polder
/// declines towards the location of the dike toe when approaching from outside
/// the polder.
///
public Point3D TopShoulderOutside { get; set; }
///
/// Gets or sets the location of dike toe when approaching from outside
/// the polder.
///
public Point3D DikeToeAtRiver { get; set; }
///
/// Gets or sets the location which generalizes the height of the surface
/// on the oustide of the polder.
///
public Point3D SurfaceLevelOutside { get; set; }
///
/// Gets or sets the location of dike table height.
///
public Point3D DikeTableHeight { get; set; }
///
/// Gets or sets the location of insert river channel.
///
public Point3D InsertRiverChannel { get; set; }
///
/// Gets or sets the location of bottom river channel.
///
public Point3D BottomRiverChannel { get; set; }
}
}