    

 ## On this page

  

 

 # Interface IOMatrix

 Last update: 16.07.2025 

Namespace: [VM.Managed](VM.Managed.md)  
Assembly: VMAppCore.dll

This interface is to represent the orientation matrix.

```csharp
public interface IOMatrix

```

#### 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_)

## Properties

### Array

Gets or sets the data of OMatrix.

```csharp
double[] Array { get; set; }

```

#### Property Value

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

### XVector

Gets the XVector.

```csharp
VectorBase XVector { get; }

```

#### Property Value

[VectorBase](VM.Managed.VectorBase.md)

### YVector

Gets the YVector.

```csharp
VectorBase YVector { get; }

```

#### Property Value

[VectorBase](VM.Managed.VectorBase.md)

### ZVector

Gets the ZVector.

```csharp
VectorBase ZVector { get; }

```

#### Property Value

[VectorBase](VM.Managed.VectorBase.md)

## Methods

### GetDirectionVector(uint)

Get the direction vector for axis.

```csharp
VectorBase GetDirectionVector(uint axis)

```

#### Parameters

`axis` [uint](https://learn.microsoft.com/dotnet/api/system.uint32)

The type of axis.

#### Returns

[VectorBase](VM.Managed.VectorBase.md)

The direction vector.

### GetDirectionVector(Coordinate)

Get the direction vector for axis.

```csharp
VectorBase GetDirectionVector(Coordinate axis)

```

#### Parameters

`axis` Coordinate

The type of axis.

#### Returns

[VectorBase](VM.Managed.VectorBase.md)

The direction vector.

### Initialize()

Initializes a instance of OMatrix.

```csharp
void Initialize()

```

### Normalize()

Nomalize a instance of OMatrix.

```csharp
void Normalize()

```

### RotateAxisDeg(VectorBase, double)

To rotate counterclockwise for axis.

```csharp
void RotateAxisDeg(VectorBase axis, double dAngle)

```

#### Parameters

`axis` [VectorBase](VM.Managed.VectorBase.md)

The rotation axis.

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

The degree.

### RotateAxisDeg(uint, double)

To rotate counterclockwise for coordinate.

```csharp
void RotateAxisDeg(uint nCoord, double dAngle)

```

#### Parameters

`nCoord` [uint](https://learn.microsoft.com/dotnet/api/system.uint32)

The rotation coordinate.

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

The degree.

### RotateAxisDeg(Coordinate, double)

To rotate counterclockwise for coordinate.

```csharp
void RotateAxisDeg(Coordinate c, double dAngle)

```

#### Parameters

`c` Coordinate

The rotation coordinate.

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

The degree.

### RotateAxisRad(VectorBase, double)

To rotate counterclockwise for axis.

```csharp
void RotateAxisRad(VectorBase axis, double dAngle)

```

#### Parameters

`axis` [VectorBase](VM.Managed.VectorBase.md)

The rotation axis.

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

The radian.

### RotateAxisRad(uint, double)

To rotate counterclockwise for coordinate.

```csharp
void RotateAxisRad(uint nCoord, double dAngle)

```

#### Parameters

`nCoord` [uint](https://learn.microsoft.com/dotnet/api/system.uint32)

The rotation coordinate.

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

The radian.

### RotateAxisRad(Coordinate, double)

To rotate counterclockwise for coordinate.

```csharp
void RotateAxisRad(Coordinate c, double dAngle)

```

#### Parameters

`c` Coordinate

The rotation coordinate.

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

The radian.

### RotateXDeg(double)

To rotate counterclockwise for x-axis.

```csharp
void RotateXDeg(double dAngle)

```

#### Parameters

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

The degree.

### RotateXRad(double)

To rotate counterclockwise for x-axis.

```csharp
void RotateXRad(double dAngle)

```

#### Parameters

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

The radian.

### RotateYDeg(double)

To rotate counterclockwise for y-axis.

```csharp
void RotateYDeg(double dAngle)

```

#### Parameters

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

The degree.

### RotateYRad(double)

To rotate counterclockwise for y-axis.

```csharp
void RotateYRad(double dAngle)

```

#### Parameters

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

The radian.

### RotateZDeg(double)

To rotate counterclockwise for z-axis.

```csharp
void RotateZDeg(double dAngle)

```

#### Parameters

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

The degree.

### RotateZRad(double)

To rotate counterclockwise for z-axis.

```csharp
void RotateZRad(double dAngle)

```

#### Parameters

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

The radian.

### SetOrientation(double\[\])

Set data of orientation.

```csharp
void SetOrientation(double[] arr)

```

#### Parameters

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

The data of orientation.

### SetOrientation(OMatrix)

Set data of orientation.

```csharp
void SetOrientation(OMatrix mat)

```

#### Parameters

`mat` [OMatrix](VM.Managed.OMatrix.md)

The matrix of orientation.

### SetOrientation(Plane, VectorBase, VectorBase)

Set data of orientation.

```csharp
void SetOrientation(Plane type, VectorBase vecMaster, VectorBase vecSlave)

```

#### Parameters

`type` Plane

The type of plane.

`vecMaster` [VectorBase](VM.Managed.VectorBase.md)

The vector for master.

`vecSlave` [VectorBase](VM.Managed.VectorBase.md)

The vector for slave.

### SetOrientationEADeg(RotationAxes, double, double, double)

Set data of orientation for euler angle. Unit is degree.

```csharp
void SetOrientationEADeg(RotationAxes ea, double dAlpha, double dBeta, double dGamma)

```

#### Parameters

`ea` RotationAxes

The type of euler angle.

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

The alpha of euler angle.

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

The beta of euler angle.

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

The gamma of euler angle.

### SetOrientationEARad(RotationAxes, double, double, double)

Set data of orientation for euler angle. Unit is radian.

```csharp
void SetOrientationEARad(RotationAxes ea, double dAlpha, double dBeta, double dGamma)

```

#### Parameters

`ea` RotationAxes

The type of euler angle.

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

The alpha of euler angle.

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

The beta of euler angle.

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

The gamma of euler angle.

### SetOrientationFixedAngleDeg(RotationAxes, double, double, double)

Set data of orientation for fixed angle. Unit is degree.

```csharp
void SetOrientationFixedAngleDeg(RotationAxes ea, double dAlpha, double dBeta, double dGamma)

```

#### Parameters

`ea` RotationAxes

The type of fixed angle.

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

The alpha of fixed angle.

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

The beta of fixed angle.

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

The gamma of fixed angle.

### SetOrientationFixedAngleRad(RotationAxes, double, double, double)

Set data of orientation for fixed angle. Unit is radian.

```csharp
void SetOrientationFixedAngleRad(RotationAxes ea, double dAlpha, double dBeta, double dGamma)

```

#### Parameters

`ea` RotationAxes

The type of fixed angle.

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

The alpha of fixed angle.

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

The beta of fixed angle.

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

The gamma of fixed angle.

### TransposeOrientation()

Transposed rows and columns of the matrix.

```csharp
void TransposeOrientation()

```