    

 ## On this page

  

 

 # Class Water

 Last update: 16.07.2025 

Namespace: [VM.Managed.DAFUL.Track](VM.Managed.DAFUL.Track.md)  
Assembly: VMDTrackBase.dll

This class is to represent the water.

```csharp
public class Water : Entity<PropertyWater>, IObservableObject, IDisposableObject, ILinkable, ILinkContainerEvent, IVerifiable, IHistoryObjectSerializable, IAttributeContainer, IContainer, IEntity, IEntityBase, IObjectBase, IObject, ILinkContainer, IOwned, IHasID, IEventProvider, IHasKeyObject, IHasName, IEnabled, IHasComment, IVisible, IDocumentOwner, INamed, INavigatorItem, IVisible, IMultiChangable, IHasProperty, IGroup, IDraw, IDrawIcon, IReferencable, IWater, ITransformable, IReportable

```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) ← ObservableObject ← LinkableBase ← ObjectBase ← Object&lt;EntityEventCore&gt; ← ContainerObject&lt;EntityEventCore&gt; ← EntityBase ← Entity&lt;PropertyWater&gt; ← [Water](VM.Managed.DAFUL.Track.Water.md)

#### Implements

IObservableObject, IDisposableObject, ILinkable, ILinkContainerEvent, IVerifiable, IHistoryObjectSerializable, IAttributeContainer, IContainer, IEntity, IEntityBase, IObjectBase, IObject, ILinkContainer, IOwned, IHasID, IEventProvider, IHasKeyObject, IHasName, IEnabled, IHasComment, IVisible, IDocumentOwner, INamed, INavigatorItem, IVisible, IMultiChangable, IHasProperty, IGroup, IDraw, IDrawIcon, IReferencable, [IWater](VM.Managed.DAFUL.Track.IWater.md), ITransformable, IReportable

#### Inherited Members

Entity&lt;PropertyWater&gt;.Initialize(Unit.ConvertFactor), Entity&lt;PropertyWater&gt;.GetUnnamedObjectName(object), Entity&lt;PropertyWater&gt;.FindLocal(string), Entity&lt;PropertyWater&gt;.Property, EntityBase.Initialize(Unit.ConvertFactor), EntityBase.SetOldNameWithNewEntity(ObjectBase, ObjectBase), EntityBase.PropertyRequestUpdate(object, LinkEventArgs), EntityBase.OnDeserializationForAttribute(), EntityBase.OnUpdatePropertyImpl(Property, LinkEventArgs), EntityBase.LinkRequestDestroying(object, LinkEventArgs), EntityBase.GetModelNavigatorInformationImpl(XmlDocument, XmlElement, bool), EntityBase.FixUp(ObjectBase), EntityBase.FindLocal(string), EntityBase.WriteTemplateImpl(XmlWriter), EntityBase.ReadTemplateImpl(XmlReader), EntityBase.LinkAddedToDocument(object, AddToDocEventArgs), EntityBase.OnDeserialization(object), EntityBase.Name, EntityBase.FullName, EntityBase.NonSymmetricName, EntityBase.DisplayName, EntityBase.IsEnabled, EntityBase.Comment, EntityBase.HasLayerExplicitly, EntityBase.UntypedProperty, EntityBase.IsFileProperty, EntityBase.Layer, EntityBase.IsVisible, ContainerObject&lt;EntityEventCore&gt;.Find(string), ContainerObject&lt;EntityEventCore&gt;.FindLocal(string), ContainerObject&lt;EntityEventCore&gt;.GetUnnamedObjectName(object), ContainerObject&lt;EntityEventCore&gt;.GetNewEntityName(string), ContainerObject&lt;EntityEventCore&gt;.GetNewEntityName(string, bool, int), ContainerObject&lt;EntityEventCore&gt;.GetNewEntityName(string, bool, int, int), Object&lt;EntityEventCore&gt;.GetKey(), Object&lt;EntityEventCore&gt;.Initialize(Unit.ConvertFactor), Object&lt;EntityEventCore&gt;.SetIconColor(Canvas), Object&lt;EntityEventCore&gt;.OnDeserialization(object), Object&lt;EntityEventCore&gt;.CustomGetObjectData(SerializationInfo, StreamingContext), Object&lt;EntityEventCore&gt;.RollbackEvent(), Object&lt;EntityEventCore&gt;.OnDeserializedCore(object), Object&lt;EntityEventCore&gt;.Key, Object&lt;EntityEventCore&gt;.UntypedEventCore, Object&lt;EntityEventCore&gt;.EventCore, Object&lt;EntityEventCore&gt;.Attributes, ObjectBase.ReplaceEventCore(ObjectEventCore), ObjectBase.SetModifiedCore(ModifiedResult.ModifiedType), ObjectBase.AddPostDeserialize(StreamingContext), ObjectBase.LinkAddedToDocumentCore(IOwned, bool), ObjectBase.SetModified(ModifiedResult.ModifiedType), ObjectBase.SetModified(), ObjectBase.SetModified(ModifiedResult.ModifiedType, IDocument), ObjectBase.DestroyObject(object, LinkEventArgs), ObjectBase.DestroyObject(DestroyEventArgs), ObjectBase.DestroyObject(), ObjectBase.Initialize(Unit.ConvertFactor), ObjectBase.FixUp(ObjectBase), ObjectBase.DoWorkAfterUpdateContents(), ObjectBase.SetOldNameWithNewEntity(ObjectBase, ObjectBase), ObjectBase.SetIconColor(Canvas), ObjectBase.RemoveFromCreatedList(), ObjectBase.PostAddToDocument(), ObjectBase.PostRemoveFromDocument(Document), ObjectBase.GetArgumentList(LinkedList&lt;ObjectBase&gt;), ObjectBase.ResetInvalidEntity(), ObjectBase.OnDeserialization(object), ObjectBase.IsSerializableEvent(Delegate), ObjectBase.CustomGetObjectData(SerializationInfo, StreamingContext), ObjectBase.CheckAndUpdateLink(HashSet&lt;ObjectBase&gt;), ObjectBase.Verify(VerifiedResult), ObjectBase.ConnectProxy(), ObjectBase.RollbackEvent(), ObjectBase.LinkRequestUpdating(object, LinkEventArgs), ObjectBase.LinkRequestUpdate(object, LinkEventArgs), ObjectBase.LinkRequestDestroying(object, LinkEventArgs), ObjectBase.LinkRequestDestroy(object, LinkEventArgs), ObjectBase.LinkAddedToDocument(object, AddToDocEventArgs), ObjectBase.LinkRemovedFromDocument(object, RemoveFromDocEventArgs), ObjectBase.DisposeManagedResources(), ObjectBase.GetDestroyEventExtraData(), ObjectBase.OnLinkReserved(ILink, object, EventArgs), ObjectBase.CreateEntityWhenUpdateContents(Action), ObjectBase.GetObjectByKey(UIntPtr), ObjectBase.FindObjectOnXmlDeserialize(string), ObjectBase.UpdateContents(XmlReader, ObjectBase, string), ObjectBase.UpdateContents(XmlReader, ObjectBase), ObjectBase.UpdateContents(string, string), ObjectBase.UpdateContents(string), ObjectBase.SetFlagWhenXMLFile(string, bool), ObjectBase.IsEqualArray&lt;T&gt;(T\[\], T\[\]), ObjectBase.IsEqualList(List&lt;double&gt;, List&lt;double&gt;), ObjectBase.SetContainer(IOwned, bool), ObjectBase.GetTargetListForUpdate(), ObjectBase.SkipUpdateObjectImpl(), ObjectBase.raise\_OnUpdating(object, LinkEventArgs), ObjectBase.raise\_OnUpdate(object, LinkEventArgs), ObjectBase.raise\_OnDestroying(object, LinkEventArgs), ObjectBase.raise\_OnDestroy(object, LinkEventArgs), ObjectBase.raise\_Destroying(object, Identifier), ObjectBase.raise\_OnAdded(object, AddToDocEventArgs), ObjectBase.raise\_OnRemoved(object, RemoveFromDocEventArgs), ObjectBase.raise\_OnContentsUpdated(object, EventArgs), ObjectBase.Dispose(bool), ObjectBase.SkipModified, ObjectBase.ClearChildInfoBeforeDeserialize, ObjectBase.KeyImpl, ObjectBase.ID, ObjectBase.TopologyEntityTypeName, ObjectBase.ObjectStateForCircularError, ObjectBase.ObjectState, ObjectBase.IsChildExternable, ObjectBase.IsExternable, ObjectBase.Container, ObjectBase.Owner, ObjectBase.Document, ObjectBase.UntypedEventCore, ObjectBase.KernelKey, ObjectBase.Key, ObjectBase.OnContentsUpdated, ObjectBase.OnRemoved, ObjectBase.OnAdded, ObjectBase.Destroying, ObjectBase.OnDestroy, ObjectBase.OnDestroying, ObjectBase.OnUpdate, ObjectBase.OnUpdating, LinkableBase.OnDeserialization(object), ObservableObject.Dispose(), ObservableObject.RaisePropertyChanged(string), ObservableObject.RaisePropertyChanged(string, object, object), ObservableObject.Dispose(bool), ObservableObject.DisposeManagedResources(), ObservableObject.DisposeUnmanagedResources(), ObservableObject.IsDisposed, ObservableObject.TryDisposing, ObservableObject.Disposed, ObservableObject.Disposing, ObservableObject.PropertyChanged

#### Extension Methods

[LinkPropertyItemCache.GetLinkProperties(object, LinkPropertyType)](VM.Models.Pre.Cache.LinkPropertyItemCache.md#VM_Models_Pre_Cache_LinkPropertyItemCache_GetLinkProperties_System_Object_VM_Models_Pre_LinkPropertyType_), [LinkPropertyItemCache.GetLinkPropertiesAndValues(object, LinkPropertyType)](VM.Models.Pre.Cache.LinkPropertyItemCache.md#VM_Models_Pre_Cache_LinkPropertyItemCache_GetLinkPropertiesAndValues_System_Object_VM_Models_Pre_LinkPropertyType_), [LinkPropertyItemCache.GetLinkedObjects&lt;T&gt;(object, LinkPropertyType)](VM.Models.Pre.Cache.LinkPropertyItemCache.md#VM_Models_Pre_Cache_LinkPropertyItemCache_GetLinkedObjects__1_System_Object_VM_Models_Pre_LinkPropertyType_)

## Constructors

### Water()

Initializes a new instance of the  class.

```csharp
public Water()

```

### Water(string)

Initializes a new instance of the  class.

```csharp
public Water(string strName)

```

#### Parameters

`strName` [string](https://learn.microsoft.com/dotnet/api/system.string)

Name of the string.

## Properties

### Color

Gets or sets the color.

```csharp
public Color Color { get; set; }

```

#### Property Value

[Color](https://learn.microsoft.com/dotnet/api/system.drawing.color)

### DepthAtDeepWater

Gets or sets the Depth at Deep Water.

```csharp
public ExpressionValueVariable DepthAtDeepWater { get; set; }

```

#### Property Value

ExpressionValueVariable

#### Exceptions

[Exception](https://learn.microsoft.com/dotnet/api/system.exception)

Depth at Deep Water is null.

### DistanceToDeepWater

Gets or sets the Distance to DeepWater.

```csharp
public ExpressionValueVariable DistanceToDeepWater { get; set; }

```

#### Property Value

ExpressionValueVariable

#### Exceptions

[Exception](https://learn.microsoft.com/dotnet/api/system.exception)

Distance to DeepWater is null.

### HasLayerExplicitly

Gets a value indicating whether object has a layer explicitly.

```csharp
protected override bool HasLayerExplicitly { get; }

```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### Hide

Gets or sets a value indicating whether this instance is hide.

```csharp
public bool Hide { get; set; }

```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### Layer

Gets or sets the layer.

```csharp
public override Layer Layer { get; set; }

```

#### Property Value

Layer

### LengthInXAxis

Gets or sets the Length in X Axis.

```csharp
public ExpressionValueVariable LengthInXAxis { get; set; }

```

#### Property Value

ExpressionValueVariable

#### Exceptions

[Exception](https://learn.microsoft.com/dotnet/api/system.exception)

Length in X Axis is null.

### RandomPhase

Gets or sets the random phase

```csharp
public List<double> RandomPhase { get; set; }

```

#### Property Value

[List](https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1)&lt;[double](https://learn.microsoft.com/dotnet/api/system.double)&gt;

### ReferenceFrame

Gets or sets the reference frame.

```csharp
public Marker ReferenceFrame { get; set; }

```

#### Property Value

Marker

### Slope

Gets or sets the Slope.

```csharp
public ExpressionValueVariable Slope { get; set; }

```

#### Property Value

ExpressionValueVariable

#### Exceptions

[Exception](https://learn.microsoft.com/dotnet/api/system.exception)

Slope is null.

### Transparency

Gets or sets the transparency.

```csharp
public double Transparency { get; set; }

```

#### Property Value

[double](https://learn.microsoft.com/dotnet/api/system.double)

### UseSlope

Gets or sets the Slope flag.

```csharp
public bool UseSlope { get; set; }

```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### WidthInYAxis

Gets or sets the Width in Y Axis.

```csharp
public ExpressionValueVariable WidthInYAxis { get; set; }

```

#### Property Value

ExpressionValueVariable

#### Exceptions

[Exception](https://learn.microsoft.com/dotnet/api/system.exception)

Width in Y Axis is null.

### \_Color

Gets or sets the color.

```csharp
public int _Color { get; set; }

```

#### Property Value

[int](https://learn.microsoft.com/dotnet/api/system.int32)

## Methods

### CalculateWave(Document, WaveStructure, bool, ref double\[\], ref List&lt;WaveResult&gt;)

Calculate Wave

```csharp
public static void CalculateWave(Document doc, Water.WaveStructure waveStructure, bool bOnlyFirstResult, ref double[] ardX, ref List<Water.WaveResult> lstResult)

```

#### Parameters

`doc` Document

The Document

`waveStructure` [Water](VM.Managed.DAFUL.Track.Water.md).[WaveStructure](VM.Managed.DAFUL.Track.Water.WaveStructure.md)

The wave structure

`bOnlyFirstResult` [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

whether only first result gets or not

`ardX` [double](https://learn.microsoft.com/dotnet/api/system.double)\[\]

The X array

`lstResult` [List](https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1)&lt;[Water](VM.Managed.DAFUL.Track.Water.md).[WaveResult](VM.Managed.DAFUL.Track.Water.WaveResult.md)&gt;

The result

### CreateCurrentFile()

Create current file

```csharp
public void CreateCurrentFile()

```

### CreateCurrentFile(string)

Create current file

```csharp
public void CreateCurrentFile(string strCurrentFilePath)

```

#### Parameters

`strCurrentFilePath` [string](https://learn.microsoft.com/dotnet/api/system.string)

The current file path

### CreateWaveFile()

Create wave file

```csharp
public void CreateWaveFile()

```

### CreateWaveFile(Document, string)

Create wave file

```csharp
public void CreateWaveFile(Document doc, string strWaveFilePath)

```

#### Parameters

`doc` Document

The document

`strWaveFilePath` [string](https://learn.microsoft.com/dotnet/api/system.string)

The wave file path

### CreateWaveMesh(TransformBase, double, double\[\], List&lt;WaveResult&gt;, ref Vector\[\], ref int\[\])

Create Rectangular Mesh

```csharp
public static void CreateWaveMesh(TransformBase transform, double dWidth, double[] ardX, List<Water.WaveResult> lstResult, ref Vector[] arPos, ref int[] arConnectivity)

```

#### Parameters

`transform` TransformBase

The Transform

`dWidth` [double](https://learn.microsoft.com/dotnet/api/system.double)

The width

`ardX` [double](https://learn.microsoft.com/dotnet/api/system.double)\[\]

The x array

`lstResult` [List](https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1)&lt;[Water](VM.Managed.DAFUL.Track.Water.md).[WaveResult](VM.Managed.DAFUL.Track.Water.WaveResult.md)&gt;

The wave result for height

`arPos` Vector\[\]

The position array

`arConnectivity` [int](https://learn.microsoft.com/dotnet/api/system.int32)\[\]

The Connectivity array

### CreateWaveMesh(Document, TransformBase, double, ref Vector\[\], ref int\[\])

Create Rectangular Mesh

```csharp
public void CreateWaveMesh(Document doc, TransformBase transform, double dWidth, ref Vector[] arPos, ref int[] arConnectivity)

```

#### Parameters

`doc` Document

The document

`transform` TransformBase

The Transform

`dWidth` [double](https://learn.microsoft.com/dotnet/api/system.double)

The width

`arPos` Vector\[\]

The position array

`arConnectivity` [int](https://learn.microsoft.com/dotnet/api/system.int32)\[\]

The Connectivity array

### Draw(Canvas)

Draws the icon.

```csharp
public virtual void Draw(Canvas canvas)

```

#### Parameters

`canvas` Canvas

The canvas has icon information.

### GenerateRandomPhase()

Generate random phase

```csharp
public static List<double> GenerateRandomPhase()

```

#### Returns

[List](https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1)&lt;[double](https://learn.microsoft.com/dotnet/api/system.double)&gt;

### GetModelNavigatorInformationImpl(XmlDocument, XmlElement, bool)

Gets the object information for model navigator \[implementation\].

```csharp
protected override bool GetModelNavigatorInformationImpl(XmlDocument xmlDom, XmlElement xmlEle, bool bHasChild)

```

#### Parameters

`xmlDom` [XmlDocument](https://learn.microsoft.com/dotnet/api/system.xml.xmldocument)

The XmlDocument for object.

`xmlEle` [XmlElement](https://learn.microsoft.com/dotnet/api/system.xml.xmlelement)

The XmlElement for object.

`bHasChild` [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

if set to `true` \[has child\].

#### Returns

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

`true` if success; otherwise, `false`.

### Initialize(ConvertFactor)

Initializes member through unit convert factor.

```csharp
public override void Initialize(Unit.ConvertFactor factor)

```

#### Parameters

`factor` Unit.ConvertFactor

The unit convert factor.

### LinkRequestUpdate(object, LinkEventArgs)

Request for update the linked object.

```csharp
protected override void LinkRequestUpdate(object objNotifier, LinkEventArgs arg)

```

#### Parameters

`objNotifier` [object](https://learn.microsoft.com/dotnet/api/system.object)

The linked object.

`arg` LinkEventArgs

The  instance containing the event data.

### OnDeserialization(object)

Called when \[deserialization\].

```csharp
protected override void OnDeserialization(object sender)

```

#### Parameters

`sender` [object](https://learn.microsoft.com/dotnet/api/system.object)

The sender.

### PiersonMoskowitzSpectrum(PMPeriodType, List&lt;double\[\]&gt;, double, ref double, ref double\[\], ref double\[\], ref double\[\], ref List&lt;Tuple&lt;double, double&gt;&gt;)

Calculate Pierson-Moskowitz Spectrum

```csharp
public static void PiersonMoskowitzSpectrum(Wave.PMPeriodType typePMPeriod, List<double[]> lstWave, double dGravity, ref double dConvertedPeriod, ref double[] ardFrequency, ref double[] ardWaveAmp, ref double[] ardK, ref List<Tuple<double, double>> lstFreqToSpm)

```

#### Parameters

`typePMPeriod` [Wave](VM.Managed.DAFUL.Track.Wave.md).[PMPeriodType](VM.Managed.DAFUL.Track.Wave.PMPeriodType.md)

The Pierson-Moskowitz period type

`lstWave` [List](https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1)&lt;[double](https://learn.microsoft.com/dotnet/api/system.double)\[\]&gt;

The wave list

`dGravity` [double](https://learn.microsoft.com/dotnet/api/system.double)

The gravity

`dConvertedPeriod` [double](https://learn.microsoft.com/dotnet/api/system.double)

The convert period

`ardFrequency` [double](https://learn.microsoft.com/dotnet/api/system.double)\[\]

The frequency set

`ardWaveAmp` [double](https://learn.microsoft.com/dotnet/api/system.double)\[\]

The wave ampitude set

`ardK` [double](https://learn.microsoft.com/dotnet/api/system.double)\[\]

The k set

`lstFreqToSpm` [List](https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1)&lt;[Tuple](https://learn.microsoft.com/dotnet/api/system.tuple-2)&lt;[double](https://learn.microsoft.com/dotnet/api/system.double), [double](https://learn.microsoft.com/dotnet/api/system.double)&gt;&gt;

The Frequency and Spectrum data set

### ReDraw()

Redraw.

```csharp
public virtual void ReDraw()

```