
# IWave interface

*No description yet.*

```csharp
public interface IWave : IPrimitive
```

**Namespace:** SCH · **Assembly:** Altium.SDK.Interfaces

**Inherits:** [IPrimitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IPrimitive.md)

**Derived:** [IPlottedWave](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IPlottedWave.md), [ISourceWave](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISourceWave.md)

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [DataType](#datatype) | [TDataType](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TDataType.md) | get; set |  |
| [Hint](#hint) | `string` | get; set |  |
| [Name](#name) | `string` | get; set |  |
| [ParentChart](#parentchart) | [IChart](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IChart.md) | get; set |  |
| [PointCount](#pointcount) | `int` | get |  |
| [XComplex](#xcomplex) | `bool` | get |  |
| [XImag](#ximag) | `float` | get; set |  |
| [XPlot](#xplot) | `float` | get |  |
| [XReal](#xreal) | `float` | get; set |  |
| [XValue](#xvalue) | `double` | get |  |
| [YComplex](#ycomplex) | `bool` | get |  |
| [YImag](#yimag) | `float` | get; set |  |
| [YPlot](#yplot) | `float` | get |  |
| [YReal](#yreal) | `float` | get; set |  |
| [YUnits](#yunits) | `string` | get; set |  |
| [YValue](#yvalue) | `double` | get |  |

### DataType

*No description yet.*

```csharp
TDataType GetProperty_DataType();
void SetProperty_DataType(TDataType argValue);
```

**Type:** [TDataType](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TDataType.md) · **Access:** read/write

The accessors are extension methods of `IWaveHelper` (`using SCH;`).

### Hint

*No description yet.*

```csharp
string GetProperty_Hint();
void SetProperty_Hint(string argValue);
```

**Type:** `string` · **Access:** read/write

### Name

*No description yet.*

```csharp
string GetProperty_Name();
void SetProperty_Name(string argValue);
```

**Type:** `string` · **Access:** read/write

### ParentChart

*No description yet.*

```csharp
IChart GetProperty_ParentChart();
void SetProperty_ParentChart(IChart argValue);
```

**Type:** [IChart](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IChart.md) · **Access:** read/write

The accessors are extension methods of `IWaveHelper` (`using SCH;`).

### PointCount

*No description yet.*

```csharp
int GetProperty_PointCount();
```

**Type:** `int` · **Access:** read-only

### XComplex

*No description yet.*

```csharp
bool GetProperty_XComplex();
```

**Type:** `bool` · **Access:** read-only

### XImag

*No description yet.*

```csharp
float GetProperty_XImag(int argIndex);
void SetProperty_XImag(int argIndex, float argValue);
```

**Type:** `float` · **Access:** read/write · **Index:** `argIndex` (`int`)

### XPlot

*No description yet.*

```csharp
float GetProperty_XPlot(int argIndex);
```

**Type:** `float` · **Access:** read-only · **Index:** `argIndex` (`int`)

### XReal

*No description yet.*

```csharp
float GetProperty_XReal(int argIndex);
void SetProperty_XReal(int argIndex, float argValue);
```

**Type:** `float` · **Access:** read/write · **Index:** `argIndex` (`int`)

### XValue

*No description yet.*

```csharp
double GetProperty_XValue(double argYValue);
```

**Type:** `double` · **Access:** read-only · **Index:** `argYValue` (`double`)

### YComplex

*No description yet.*

```csharp
bool GetProperty_YComplex();
```

**Type:** `bool` · **Access:** read-only

### YImag

*No description yet.*

```csharp
float GetProperty_YImag(int argIndex);
void SetProperty_YImag(int argIndex, float argValue);
```

**Type:** `float` · **Access:** read/write · **Index:** `argIndex` (`int`)

### YPlot

*No description yet.*

```csharp
float GetProperty_YPlot(int argIndex);
```

**Type:** `float` · **Access:** read-only · **Index:** `argIndex` (`int`)

### YReal

*No description yet.*

```csharp
float GetProperty_YReal(int argIndex);
void SetProperty_YReal(int argIndex, float argValue);
```

**Type:** `float` · **Access:** read/write · **Index:** `argIndex` (`int`)

### YUnits

*No description yet.*

```csharp
string GetProperty_YUnits();
void SetProperty_YUnits(string argValue);
```

**Type:** `string` · **Access:** read/write

### YValue

*No description yet.*

```csharp
double GetProperty_YValue(double argXValue);
```

**Type:** `double` · **Access:** read-only · **Index:** `argXValue` (`double`)

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [AddPoint](#addpoint) | `int` |  |
| [ClearPoints](#clearpoints) | `void` |  |
| [GetLineValues](#getlinevalues) | `bool` |  |
| [GetMaximum](#getmaximum) | `bool` |  |
| [GetMinimum](#getminimum) | `bool` |  |
| [GetNextPeak](#getnextpeak) | `bool` |  |
| [GetNextTrough](#getnexttrough) | `bool` |  |
| [GetRiseFallTime](#getrisefalltime) | `bool` |  |
| [GetState_MinMax](#getstate_minmax) | `void` |  |
| [GetState_MinMax_1](#getstate_minmax_1) | `void` |  |
| [GetTopLine](#gettopline) | `bool` |  |
| [InsertPoint](#insertpoint) | `void` |  |
| [SetDataIndeces](#setdataindeces) | `void` |  |

### AddPoint

*No description yet.*

```csharp
int AddPoint(double argRealX, double argImagX, double argRealY, double argImagY);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argRealX` | `double` | value |
| `argImagX` | `double` | value |
| `argRealY` | `double` | value |
| `argImagY` | `double` | value |

**Returns:** `int`

### ClearPoints

*No description yet.*

```csharp
void ClearPoints();
```

**Returns:** nothing (`void`)

### GetLineValues

*No description yet.*

```csharp
bool GetLineValues(Coord argMin, Coord argMax, ref double argBaseVal, ref double argTopVal);
bool GetLineValues(ICoord argMin, ICoord argMax, ref double argBaseVal, ref double argTopVal);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argMin` | [Coord](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/Coord.md) | value |
| `argMax` | [Coord](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/Coord.md) | value |
| `argBaseVal` | `double` | ref |
| `argTopVal` | `double` | ref |

**Returns:** `bool`

The first overload is an extension method of `IWaveHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### GetMaximum

*No description yet.*

```csharp
bool GetMaximum(Coord argMin, Coord argMax, ref Coord argResult);
bool GetMaximum(ICoord argMin, ICoord argMax, ref ICoord argResult);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argMin` | [Coord](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/Coord.md) | value |
| `argMax` | [Coord](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/Coord.md) | value |
| `argResult` | [Coord](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/Coord.md) | ref |

**Returns:** `bool`

The first overload is an extension method of `IWaveHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### GetMinimum

*No description yet.*

```csharp
bool GetMinimum(Coord argMin, Coord argMax, ref Coord argResult);
bool GetMinimum(ICoord argMin, ICoord argMax, ref ICoord argResult);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argMin` | [Coord](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/Coord.md) | value |
| `argMax` | [Coord](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/Coord.md) | value |
| `argResult` | [Coord](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/Coord.md) | ref |

**Returns:** `bool`

The first overload is an extension method of `IWaveHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### GetNextPeak

*No description yet.*

```csharp
bool GetNextPeak(int argCurrentDataPoint, int argDirection, ref Coord argResult);
bool GetNextPeak(int argCurrentDataPoint, int argDirection, ref ICoord argResult);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argCurrentDataPoint` | `int` | value |
| `argDirection` | `int` | value |
| `argResult` | [Coord](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/Coord.md) | ref |

**Returns:** `bool`

The first overload is an extension method of `IWaveHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### GetNextTrough

*No description yet.*

```csharp
bool GetNextTrough(int argCurrentDataPoint, int argDirection, ref Coord argResult);
bool GetNextTrough(int argCurrentDataPoint, int argDirection, ref ICoord argResult);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argCurrentDataPoint` | `int` | value |
| `argDirection` | `int` | value |
| `argResult` | [Coord](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/Coord.md) | ref |

**Returns:** `bool`

The first overload is an extension method of `IWaveHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### GetRiseFallTime

*No description yet.*

```csharp
bool GetRiseFallTime(Coord argMin, Coord argMax, ref double argRiseTime, ref double argFallTime);
bool GetRiseFallTime(ICoord argMin, ICoord argMax, ref double argRiseTime, ref double argFallTime);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argMin` | [Coord](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/Coord.md) | value |
| `argMax` | [Coord](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/Coord.md) | value |
| `argRiseTime` | `double` | ref |
| `argFallTime` | `double` | ref |

**Returns:** `bool`

The first overload is an extension method of `IWaveHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### GetState_MinMax

*No description yet.*

```csharp
void GetState_MinMax(ref double argMinX, ref double argMaxX, ref double argMinY, ref double argMaxY);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argMinX` | `double` | ref |
| `argMaxX` | `double` | ref |
| `argMinY` | `double` | ref |
| `argMaxY` | `double` | ref |

**Returns:** nothing (`void`)

### GetState_MinMax_1

*No description yet.*

```csharp
void GetState_MinMax_1(ref double argMinX, ref double argMaxX, ref double argMinY, ref double argMaxY, TScaleMode argnXScaleMode, int argLogScaleBase);
void GetState_MinMax_1(ref double argMinX, ref double argMaxX, ref double argMinY, ref double argMaxY, int argnXScaleMode, int argLogScaleBase);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argMinX` | `double` | ref |
| `argMaxX` | `double` | ref |
| `argMinY` | `double` | ref |
| `argMaxY` | `double` | ref |
| `argnXScaleMode` | [TScaleMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TScaleMode.md) | value |
| `argLogScaleBase` | `int` | value |

**Returns:** nothing (`void`)

The first overload is an extension method of `IWaveHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### GetTopLine

*No description yet.*

```csharp
bool GetTopLine(Coord argMin, Coord argMax, ref double argResult);
bool GetTopLine(ICoord argMin, ICoord argMax, ref double argResult);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argMin` | [Coord](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/Coord.md) | value |
| `argMax` | [Coord](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/Coord.md) | value |
| `argResult` | `double` | ref |

**Returns:** `bool`

The first overload is an extension method of `IWaveHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### InsertPoint

*No description yet.*

```csharp
void InsertPoint(double argRealX, double argImagX, double argRealY, double argImagY, int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argRealX` | `double` | value |
| `argImagX` | `double` | value |
| `argRealY` | `double` | value |
| `argImagY` | `double` | value |
| `argIndex` | `int` | value |

**Returns:** nothing (`void`)

### SetDataIndeces

*No description yet.*

```csharp
void SetDataIndeces(bool argnXComplexFlag, bool argYComplexFlag);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argnXComplexFlag` | `bool` | value |
| `argYComplexFlag` | `bool` | value |

**Returns:** nothing (`void`)

## Inherited members

- From [IPrimitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IPrimitive.md): [BoundingRect](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IPrimitive.md#boundingrect), [ViewablePrimitiveId](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IPrimitive.md#viewableprimitiveid)

## Returned by

[IWaveList.Wave](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IWaveList.md#wave)
