using Deltares.Geometry;
using Deltares.Standard;
using Deltares.Standard.Attributes;
using Deltares.Standard.EventPublisher;
using Deltares.Standard.Units;
using Deltares.Standard.Validation;
namespace Deltares.Stability
{
///
/// Earthquake data class
///
public class Earthquake : GeometryObject, IVisibleEnabled
{
private double freeWaterFact = 0;
private double horQuakeFact = 0;
private double verQuakeFact = 0;
public Earthquake()
{
Name = "Earthquake";
}
///
/// Horizontal earthquake factor - Unit string is - [g]
///
[Unit(UnitType.None)]
[Minimum(0)]
[Maximum(10)]
[PropertyOrder(1)]
[Label("Horizontal earthquake factor")]
[Format("F3")]
public double HorQuakeFact
{
get
{
return horQuakeFact;
}
set
{
if (value != horQuakeFact)
{
DataEventPublisher.BeforeChange(this, "HorQuakeFact");
horQuakeFact = value;
DataEventPublisher.AfterChange(this, "HorQuakeFact");
}
}
}
///
/// Vertical earthquake factor - Unit string is - [g]
///
[Unit(UnitType.None)]
[Minimum(-10)]
[Maximum(10)]
[PropertyOrder(2)]
[Label("Vertical earthquake factor")]
[Format("F3")]
public double VerQuakeFact
{
get
{
return verQuakeFact;
}
set
{
if (value != verQuakeFact)
{
DataEventPublisher.BeforeChange(this, "VerQuakeFact");
verQuakeFact = value;
DataEventPublisher.AfterChange(this, "VerQuakeFact");
}
}
}
///
/// Free water factor
///
[Unit(UnitType.None)]
[Minimum(0)]
[Maximum(1)]
[PropertyOrder(3)]
[Label("Free water factor")]
[Format("F3")]
public double FreeWaterFact
{
get
{
return freeWaterFact;
}
set
{
if (value != freeWaterFact)
{
DataEventPublisher.BeforeChange(this, "FreeWaterFact");
freeWaterFact = value;
DataEventPublisher.AfterChange(this, "FreeWaterFact");
}
}
}
public override string ToString()
{
return "Earthquake";
}
public bool IsVisible(string property)
{
switch (property)
{
case "Name":
return false;
default:
return true;
}
}
public bool IsEnabled(string property)
{
return true;
}
}
}