Skip to main content

Motion Standalone Postprocessor C# library 2024 R2

Struct OMatrix

Last update: 03.07.2024

Namespace: VM
Assembly: VM.dll

public struct OMatrix : IOMatrix

Implements

IOMatrix

Constructors

OMatrix(OMatrix)

Copy construct orientation matrix

public OMatrix(OMatrix mat)

Parameters

mat OMatrix

The matrix to copy

OMatrix(Plane, Vector, Vector)

Construct orientation matrix with two principal axis

public OMatrix(Plane type, Vector vecMaster, Vector vecSlave)

Parameters

type Plane

The plane type

vecMaster Vector

The master axis

vecSlave Vector

The slave axis

OMatrix(double[])

Construct orientation matrix with array of double

public OMatrix(double[] arr)

Parameters

arr double[]

The array contains orientation matrix

Properties

Array

Get/Set the array of matrix value

public double[] Array { get; set; }

Property Value

double[]

Identity

Gets the Identity Orientation Matrix.

public static OMatrix Identity { get; }

Property Value

OMatrix

XVector

Get/Set X vector of matrix

public Vector XVector { get; set; }

Property Value

Vector

YVector

Get/Set Y vector of matrix

public Vector YVector { get; set; }

Property Value

Vector

ZVector

Get/Set Z vector of matrix

public Vector ZVector { get; set; }

Property Value

Vector

this[int]

Get/Set the specific vector of matrix

public Vector this[int nIndex] { get; set; }

Property Value

Vector

this[Coordinate]

Get/Set the specific vector of matrix

public Vector this[Coordinate enIndex] { get; set; }

Property Value

Vector

this[int, int]

Get/Set the specific value of matrix element

public double this[int nRow, int nCol] { get; set; }

Property Value

double

this[Coordinate, Coordinate]

Get/Set the specific value of matrix element

public double this[Coordinate enRow, Coordinate enCol] { get; set; }

Property Value

double

Methods

CopyTo(double[], int)

Copy matrix values to the array

public void CopyTo(double[] arr, int nStartIndex)

Parameters

arr double[]

The array values copied to

nStartIndex int

The start index of array

Equals(object)

Determines whether the specified object is equal to the current object.

public override bool Equals(object obj)

Parameters

obj object

The object to compare.

Returns

bool

true if the objects are equal, otherwise false.

GetDirectionVector(Coordinate)

Get the direction vector for axis.

public Vector GetDirectionVector(Coordinate axis)

Parameters

axis Coordinate

The type of axis.

Returns

Vector

The direction vector.

GetDirectionVector(int)

Get the direction vector for axis.

public Vector GetDirectionVector(int axis)

Parameters

axis int

The type of axis.

Returns

Vector

The direction vector.

GetHashCode()

Returns the hash code for this vector

public override int GetHashCode()

Returns

int

A 32-bit signed integer hash code.

Initialize()

Initialize the Orientation Matrix

public void Initialize()

Normalize()

Normalize the Orientation Matrix

public void Normalize()

Exceptions

InvalidOperationException

The normalize operation failed .

RotateAxisDeg(Coordinate, double)

To rotate counterclockwise for coordinate.

public void RotateAxisDeg(Coordinate c, double dAngle)

Parameters

c Coordinate

The rotation coordinate.

dAngle double

The degree.

Exceptions

InvalidOperationException

The rotate operation failed .

RotateAxisDeg(int, double)

To rotate counterclockwise for coordinate.

public void RotateAxisDeg(int nCoord, double dAngle)

Parameters

nCoord int

The rotation coordinate.

dAngle double

The degree.

RotateAxisDeg(Vector, double)

To rotate counterclockwise for axis.

public void RotateAxisDeg(Vector axis, double dAngle)

Parameters

axis Vector

The rotation axis.

dAngle double

The degree.

Exceptions

InvalidOperationException

The rotate operation failed .

RotateAxisRad(Coordinate, double)

To rotate counterclockwise for coordinate.

public void RotateAxisRad(Coordinate c, double dAngle)

Parameters

c Coordinate

The rotation coordinate.

dAngle double

The radian.

Exceptions

InvalidOperationException

The rotate operation failed .

RotateAxisRad(int, double)

To rotate counterclockwise for coordinate.

public void RotateAxisRad(int nCoord, double dAngle)

Parameters

nCoord int

The rotation coordinate.

dAngle double

The radian.

RotateAxisRad(Vector, double)

To rotate counterclockwise for axis.

public void RotateAxisRad(Vector axis, double dAngle)

Parameters

axis Vector

The rotation axis.

dAngle double

The radian.

Exceptions

InvalidOperationException

The rotate operation failed .

RotateXDeg(double)

To rotate counterclockwise for x-axis.

public void RotateXDeg(double dAngle)

Parameters

dAngle double

The degree.

Exceptions

InvalidOperationException

The rotate operation failed .

RotateXRad(double)

To rotate counterclockwise for x-axis.

public void RotateXRad(double dAngle)

Parameters

dAngle double

The radian.

Exceptions

InvalidOperationException

The rotate operation failed .

RotateYDeg(double)

To rotate counterclockwise for y-axis.

public void RotateYDeg(double dAngle)

Parameters

dAngle double

The degree.

Exceptions

InvalidOperationException

The rotate operation failed .

RotateYRad(double)

To rotate counterclockwise for y-axis.

public void RotateYRad(double dAngle)

Parameters

dAngle double

The radian.

Exceptions

InvalidOperationException

The rotate operation failed .

RotateZDeg(double)

To rotate counterclockwise for z-axis.

public void RotateZDeg(double dAngle)

Parameters

dAngle double

The degree.

Exceptions

InvalidOperationException

The rotate operation failed .

RotateZRad(double)

To rotate counterclockwise for z-axis.

public void RotateZRad(double dAngle)

Parameters

dAngle double

The radian.

Exceptions

InvalidOperationException

The rotate operation failed .

SetOrientation(Plane, Vector, Vector)

Set data of orientation.

public void SetOrientation(Plane type, Vector vecMaster, Vector vecSlave)

Parameters

type Plane

The type of plane.

vecMaster Vector

The vector for master.

vecSlave Vector

The vector for slave.

Exceptions

InvalidOperationException

The set data of orientation operation failed .

SetOrientation(OMatrix)

Set data of orientation.

public void SetOrientation(OMatrix mat)

Parameters

mat OMatrix

The matrix of orientation.

SetOrientation(double[])

Set data of orientation.

public void SetOrientation(double[] arr)

Parameters

arr double[]

The data of orientation.

SetOrientationEADeg(RotationAxes, double, double, double)

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

public void SetOrientationEADeg(RotationAxes ea, double dAlpha, double dBeta, double dGamma)

Parameters

ea RotationAxes

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.

Exceptions

InvalidOperationException

The set data of orientation operation failed .

SetOrientationEARad(RotationAxes, double, double, double)

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

public void SetOrientationEARad(RotationAxes ea, double dAlpha, double dBeta, double dGamma)

Parameters

ea RotationAxes

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.

Exceptions

InvalidOperationException

The set data of orientation operation failed .

SetOrientationFixedAngleDeg(RotationAxes, double, double, double)

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

public void SetOrientationFixedAngleDeg(RotationAxes ea, double dAlpha, double dBeta, double dGamma)

Parameters

ea RotationAxes

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.

Exceptions

InvalidOperationException

The set data of orientation operation failed .

SetOrientationFixedAngleRad(RotationAxes, double, double, double)

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

public void SetOrientationFixedAngleRad(RotationAxes ea, double dAlpha, double dBeta, double dGamma)

Parameters

ea RotationAxes

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.

Exceptions

InvalidOperationException

The set data of orientation operation failed .

ToString()

public override string ToString()

Returns

string

TransposeOrientation()

Transposed rows and columns of the matrix.

public void TransposeOrientation()

Exceptions

InvalidOperationException

The transpose operation failed .

Operators

operator ==(OMatrix, OMatrix)

Compare two orientation matrices are same or not

public static bool operator ==(OMatrix matLeft, OMatrix matRight)

Parameters

matLeft OMatrix

The left matrix to compare

matRight OMatrix

The right matrix to compare

Returns

bool

true if two matrices are same, otherwise false.

Exceptions

InvalidOperationException

The equality operation failed .

operator !=(OMatrix, OMatrix)

Compare two orientation matrices are same or not

public static bool operator !=(OMatrix matLeft, OMatrix matRight)

Parameters

matLeft OMatrix

The left matrix to compare

matRight OMatrix

The right matrix to compare

Returns

bool

true if two matrices are not same, otherwise false.

Exceptions

InvalidOperationException

The inequality operation failed .

operator *(OMatrix, OMatrix)

Cross product two orientation matrices.

public static OMatrix operator *(OMatrix matA, OMatrix matB)

Parameters

matA OMatrix

The left matrix to cross product

matB OMatrix

The right matrix to cross product

Returns

OMatrix

The cross product matrix.

Exceptions

InvalidOperationException

The multiply operation failed .

operator *(Vector, OMatrix)

Multiply vector to the matrix.

public static Vector operator *(Vector vec, OMatrix mat)

Parameters

vec Vector

The vector to multiply value

mat OMatrix

The matrix to multiply

Returns

Vector

The Multiplied vector.

Exceptions

InvalidOperationException

The multiply operation failed .