    

 ## On this page

  

 

 # Interface IOMatrix

 Last update: 09.03.2026 

<a id="VM_IOMatrix"></a>

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

This interface is to represent the orientation matrix.

```csharp
public interface IOMatrix

```

## Properties

### <a id="VM_IOMatrix_Array"></a> Array

Gets or sets the data of OMatrix.

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

```

#### Property Value

double\[\]

### <a id="VM_IOMatrix_XVector"></a> XVector

Gets or sets the XVector.

```csharp
Vector XVector { get; set; }

```

#### Property Value

[Vector](VM.Vector.md)

### <a id="VM_IOMatrix_YVector"></a> YVector

Gets or sets the YVector.

```csharp
Vector YVector { get; set; }

```

#### Property Value

[Vector](VM.Vector.md)

### <a id="VM_IOMatrix_ZVector"></a> ZVector

Gets or sets the ZVector.

```csharp
Vector ZVector { get; set; }

```

#### Property Value

[Vector](VM.Vector.md)

## Methods

### <a id="VM_IOMatrix_GetDirectionVector_VM_Coordinate_"></a> GetDirectionVector(Coordinate)

Get the direction vector for axis.

```csharp
Vector GetDirectionVector(Coordinate axis)

```

#### Parameters

`axis` [Coordinate](VM.Coordinate.md)

The type of axis.

#### Returns

[Vector](VM.Vector.md)

The direction vector.

### <a id="VM_IOMatrix_GetDirectionVector_System_Int32_"></a> GetDirectionVector(int)

Get the direction vector for axis.

```csharp
Vector GetDirectionVector(int axis)

```

#### Parameters

`axis` int

The type of axis.

#### Returns

[Vector](VM.Vector.md)

The direction vector.

### <a id="VM_IOMatrix_Initialize"></a> Initialize()

Initializes a instance of OMatrix.

```csharp
void Initialize()

```

### <a id="VM_IOMatrix_Normalize"></a> Normalize()

Nomalize a instance of OMatrix.

```csharp
void Normalize()

```

### <a id="VM_IOMatrix_RotateAxisDeg_VM_Coordinate_System_Double_"></a> RotateAxisDeg(Coordinate, double)

To rotate counterclockwise for coordinate.

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

```

#### Parameters

`c` [Coordinate](VM.Coordinate.md)

The rotation coordinate.

`dAngle` double

The degree.

### <a id="VM_IOMatrix_RotateAxisDeg_System_Int32_System_Double_"></a> RotateAxisDeg(int, double)

To rotate counterclockwise for coordinate.

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

```

#### Parameters

`nCoord` int

The rotation coordinate.

`dAngle` double

The degree.

### <a id="VM_IOMatrix_RotateAxisDeg_VM_Vector_System_Double_"></a> RotateAxisDeg(Vector, double)

To rotate counterclockwise for axis.

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

```

#### Parameters

`axis` [Vector](VM.Vector.md)

The rotation axis.

`dAngle` double

The degree.

### <a id="VM_IOMatrix_RotateAxisRad_VM_Coordinate_System_Double_"></a> RotateAxisRad(Coordinate, double)

To rotate counterclockwise for coordinate.

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

```

#### Parameters

`c` [Coordinate](VM.Coordinate.md)

The rotation coordinate.

`dAngle` double

The radian.

### <a id="VM_IOMatrix_RotateAxisRad_System_Int32_System_Double_"></a> RotateAxisRad(int, double)

To rotate counterclockwise for coordinate.

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

```

#### Parameters

`nCoord` int

The rotation coordinate.

`dAngle` double

The radian.

### <a id="VM_IOMatrix_RotateAxisRad_VM_Vector_System_Double_"></a> RotateAxisRad(Vector, double)

To rotate counterclockwise for axis.

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

```

#### Parameters

`axis` [Vector](VM.Vector.md)

The rotation axis.

`dAngle` double

The radian.

### <a id="VM_IOMatrix_RotateXDeg_System_Double_"></a> RotateXDeg(double)

To rotate counterclockwise for x-axis.

```csharp
void RotateXDeg(double dAngle)

```

#### Parameters

`dAngle` double

The degree.

### <a id="VM_IOMatrix_RotateXRad_System_Double_"></a> RotateXRad(double)

To rotate counterclockwise for x-axis.

```csharp
void RotateXRad(double dAngle)

```

#### Parameters

`dAngle` double

The radian.

### <a id="VM_IOMatrix_RotateYDeg_System_Double_"></a> RotateYDeg(double)

To rotate counterclockwise for y-axis.

```csharp
void RotateYDeg(double dAngle)

```

#### Parameters

`dAngle` double

The degree.

### <a id="VM_IOMatrix_RotateYRad_System_Double_"></a> RotateYRad(double)

To rotate counterclockwise for y-axis.

```csharp
void RotateYRad(double dAngle)

```

#### Parameters

`dAngle` double

The radian.

### <a id="VM_IOMatrix_RotateZDeg_System_Double_"></a> RotateZDeg(double)

To rotate counterclockwise for z-axis.

```csharp
void RotateZDeg(double dAngle)

```

#### Parameters

`dAngle` double

The degree.

### <a id="VM_IOMatrix_RotateZRad_System_Double_"></a> RotateZRad(double)

To rotate counterclockwise for z-axis.

```csharp
void RotateZRad(double dAngle)

```

#### Parameters

`dAngle` double

The radian.

### <a id="VM_IOMatrix_SetOrientation_VM_Plane_VM_Vector_VM_Vector_"></a> SetOrientation(Plane, Vector, Vector)

Set data of orientation.

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

```

#### Parameters

`type` [Plane](VM.Plane.md)

The type of plane.

`vecMaster` [Vector](VM.Vector.md)

The vector for master.

`vecSlave` [Vector](VM.Vector.md)

The vector for slave.

### <a id="VM_IOMatrix_SetOrientation_VM_OMatrix_"></a> SetOrientation(OMatrix)

Set data of orientation.

```csharp
void SetOrientation(OMatrix mat)

```

#### Parameters

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

The matrix of orientation.

### <a id="VM_IOMatrix_SetOrientation_System_Double___"></a> SetOrientation(double\[\])

Set data of orientation.

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

```

#### Parameters

`arr` double\[\]

The data of orientation.

### <a id="VM_IOMatrix_SetOrientationEADeg_VM_RotationAxes_System_Double_System_Double_System_Double_"></a> 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](VM.RotationAxes.md)

The type of euler angle.

`dAlpha` double

The alpha of euler angle.

`dBeta` double

The beta of euler angle.

`dGamma` double

The gamma of euler angle.

### <a id="VM_IOMatrix_SetOrientationEARad_VM_RotationAxes_System_Double_System_Double_System_Double_"></a> 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](VM.RotationAxes.md)

The type of euler angle.

`dAlpha` double

The alpha of euler angle.

`dBeta` double

The beta of euler angle.

`dGamma` double

The gamma of euler angle.

### <a id="VM_IOMatrix_SetOrientationFixedAngleDeg_VM_RotationAxes_System_Double_System_Double_System_Double_"></a> 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](VM.RotationAxes.md)

The type of fixed angle.

`dAlpha` double

The alpha of fixed angle.

`dBeta` double

The beta of fixed angle.

`dGamma` double

The gamma of fixed angle.

### <a id="VM_IOMatrix_SetOrientationFixedAngleRad_VM_RotationAxes_System_Double_System_Double_System_Double_"></a> 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](VM.RotationAxes.md)

The type of fixed angle.

`dAlpha` double

The alpha of fixed angle.

`dBeta` double

The beta of fixed angle.

`dGamma` double

The gamma of fixed angle.

### <a id="VM_IOMatrix_TransposeOrientation"></a> TransposeOrientation()

Transposed rows and columns of the matrix.

```csharp
void TransposeOrientation()

```