# IRdMatrixfDisp Interface Reference

Inherits IDispatch.

List of all members.

## Public Member Functions
HRESULT | LoadIdentity (void)
HRESULT | LockData ([out, retval] RtFloat **pMatrix)
HRESULT | UnlockData (void)
HRESULT | GetAt ([in] RtUlong i,[in] RtUlong j,[out, retval] RtFloat *pVal)
HRESULT | SetAt ([in] RtUlong i,[in] RtUlong j,[in] RtFloat newVal)
HRESULT | RotationAxis ([in] RtFloat x,[in] RtFloat y,[in] RtFloat z,[in] RtFloat angle)
HRESULT | Mult ([in] IDispatch *pM)
HRESULT | PreMult ([in] IDispatch *pM)
HRESULT | GetAxisX ([out, retval] IDispatch **ppVect)
HRESULT | GetAxisY ([out, retval] IDispatch **ppVect)
HRESULT | GetAxisZ ([out, retval] IDispatch **ppVect)
HRESULT | GetTransX ([out, retval] RtFloat *pVal)
HRESULT | SetTransX ([in] RtFloat newVal)
HRESULT | GetTransY ([out, retval] RtFloat *pVal)
HRESULT | SetTransY ([in] RtFloat newVal)
HRESULT | GetTransZ ([out, retval] RtFloat *pVal)
HRESULT | SetTransZ ([in] RtFloat newVal)
HRESULT | GetRoll ([out, retval] RtFloat *pVal)
HRESULT | SetRoll ([in] RtFloat newVal)
HRESULT | GetPitch ([out, retval] RtFloat *pVal)
HRESULT | SetPitch ([in] RtFloat newVal)
HRESULT | GetYaw ([out, retval] RtFloat *pVal)
HRESULT | SetYaw ([in] RtFloat newVal)
HRESULT | GetScaleX ([out, retval] RtFloat *pVal)
HRESULT | SetScaleX ([in] RtFloat newVal)
HRESULT | GetScaleY ([out, retval] RtFloat *pVal)
HRESULT | SetScaleY ([in] RtFloat newVal)
HRESULT | GetScaleZ ([out, retval] RtFloat *pVal)
HRESULT | SetScaleZ ([in] RtFloat newVal)
HRESULT | GetShearX ([out, retval] RtFloat *pVal)
HRESULT | SetShearX ([in] RtFloat newVal)
HRESULT | GetShearY ([out, retval] RtFloat *pVal)
HRESULT | SetShearY ([in] RtFloat newVal)
HRESULT | GetShearZ ([out, retval] RtFloat *pVal)
HRESULT | SetShearZ ([in] RtFloat newVal)
HRESULT | AddScaleShear ([in] RtFloat sx,[in]RtFloat sy,[in] RtFloat sz,[in] RtFloat sxy,[in] RtFloat sxz,[in] RtFloat syz)
HRESULT | Rotate ([in] IDispatch *center,[in] IDispatch *axes,[in] RtFloat angle)
HRESULT | Decompose ([out, retval] IDispatch **ppComponents)
HRESULT | Compose ([in] IDispatch *pComponents)
HRESULT | Shift ([in] IDispatch *pShift)
HRESULT | LoadMatrix ([in] IDispatch *pM)
HRESULT | Invert ([out, retval] IDispatch **pM)
HRESULT | Transpose ([out, retval] IDispatch **pM)
HRESULT | ScaleLocal ([in] RtFloat x,[in] RtFloat y,[in] RtFloat z)
HRESULT | Scale ([in] RtFloat x,[in] RtFloat y,[in] RtFloat z)
HRESULT | Shear ([in] RtFloat x,[in] RtFloat y,[in] RtFloat z)
HRESULT | TranslateLocal ([in] RtFloat x,[in] RtFloat y,[in] RtFloat z)
HRESULT | Translate ([in] RtFloat x,[in] RtFloat y,[in] RtFloat z)
HRESULT | RotateEuler ([in] RtFloat x,[in] RtFloat y,[in] RtFloat z)
HRESULT | RotateEulerPRY ([in] RtFloat fPitch,[in] RtFloat fRoll,[in] RtFloat fYaw)
HRESULT | RotationX ([in] RtFloat x)
HRESULT | RotationY ([in] RtFloat y)
HRESULT | RotationZ ([in] RtFloat z)
HRESULT | TransformPoint ([in] IDispatch *SourcePoint,[out, retval] IDispatch **pDestPoint)
HRESULT | TransformVector ([in] IDispatch *SourceVect,[out, retval] IDispatch **pDestVect)
HRESULT | LookAt ([in] IDispatch *pEye,[in] IDispatch *pAt,[in] IDispatch *pUp)
HRESULT | MakeRotTrans ([in] IDispatch *center,[in] IDispatch *axis,[in] RtFloat angle)
HRESULT | GetTrans ([out, retval] IDispatch **ppVect)
HRESULT | SetTrans ([in] IDispatch *pVect)

## Detailed Description

The IRdMatrixfDisp object:

- Stores the transformation matrix of size 4x4
- Encodes the rotation, scale and translation of an object in space.
- This object is generated for example by object into ObjMatrix connector.
- If you are accessing this object from SDK, you can use IRdMatrixf interface instead of IRdMatrixfDisp for faster access.

## Member Function Documentation

HRESULT IRdMatrixfDisp::LoadIdentity | ( | void |  | ) |

Initializes indentity matrix.

HRESULT IRdMatrixfDisp::LockData | ( | [out, retval] RtFloat ** | pMatrix | ) |

Locks matrix and returns access pointer to matrix data.

Returns:
  pMatrix [out,retval] Returned locked matrix.

HRESULT IRdMatrixfDisp::UnlockData | ( | void |  | ) |

Unlocks matrix data.

HRESULT IRdMatrixfDisp::GetAt | ( | [in] RtUlong | i,
|  | [in] RtUlong | j,
|  | [out, retval] RtFloat * | pVal |
| ) |  |  |

Returns the value of one matrix element.

Parameters:

  | i | [in] Row number.
  | j | [in] Column number.

Returns:
  pVal [out, retval] Returned value of matrix element.

HRESULT IRdMatrixfDisp::SetAt | ( | [in] RtUlong | i,
|  | [in] RtUlong | j,
|  | [in] RtFloat | newVal |
| ) |  |  |

Sets the value of one matrix element.

Parameters:

  | i | [in] Row number.
  | j | [in] Column number.
  | newVal | [in] New value to set for matrix element.

HRESULT IRdMatrixfDisp::RotationAxis | ( | [in] RtFloat | x,
|  | [in] RtFloat | y,
|  | [in] RtFloat | z,
|  | [in] RtFloat | angle |
| ) |  |  |

Rotates matrix around arbitrary axis and arbitrary angle.

Parameters:

  | x | [in] X coordinate of rotation axis.
  | y | [in] Y coordinate of rotation axis.
  | z | [in] Z coordinate of rotation axis.
  | angle | [in] Rotation angle in radians.

HRESULT IRdMatrixfDisp::Mult | ( | [in] IDispatch * | pM | ) |

Determines the product of given matrix and an arbitrary matrix.

- The result represents the current transformation followed by the transformation given by arbitrary matrix.

Parameters:

  | pM | [in] Matrix to multiply.

HRESULT IRdMatrixfDisp::PreMult | ( | [in] IDispatch * | pM | ) |

Determines the product of an arbitrary matrix and given matrix.

Parameters:

  | pM | [in] Matrix to multiply.

HRESULT IRdMatrixfDisp::GetAxisX | ( | [out, retval] IDispatch ** | ppVect | ) |

Returns the value of x axis for matrix.

Returns:
  ppVect [out, retval] Value of x axis.

HRESULT IRdMatrixfDisp::GetAxisY | ( | [out, retval] IDispatch ** | ppVect | ) |

Returns the value of y axis for matrix.

Returns:
  ppVect [out, retval] Value of y axis.

HRESULT IRdMatrixfDisp::GetAxisZ | ( | [out, retval] IDispatch ** | ppVect | ) |

Returns the value of z axis for matrix.

Returns:
  ppVect [out, retval] Value of z axis.

HRESULT IRdMatrixfDisp::GetTransX | ( | [out, retval] RtFloat * | pVal | ) |

Returns the x coordinate of translation.

Returns:
  pVal [out, retval] X coordinate of translation.

HRESULT IRdMatrixfDisp::SetTransX | ( | [in] RtFloat | newVal | ) |

Sets the x coordinate of translation.

Parameters:

  | pVal | [in] X coordinate of translation to set.

HRESULT IRdMatrixfDisp::GetTransY | ( | [out, retval] RtFloat * | pVal | ) |

Returns the y coordinate of translation.

Returns:
  pVal [out, retval] Y coordinate of translation.

HRESULT IRdMatrixfDisp::SetTransY | ( | [in] RtFloat | newVal | ) |

Sets the y coordinate of translation.

Parameters:

  | pVal | [in] Y coordinate of translation to set.

HRESULT IRdMatrixfDisp::GetTransZ | ( | [out, retval] RtFloat * | pVal | ) |

Returns the z coordinate of translation.

Returns:
  pVal [out, retval] Z coordinate of translation.

HRESULT IRdMatrixfDisp::SetTransZ | ( | [in] RtFloat | newVal | ) |

Sets the z coordinate of translation.

Parameters:

  | pVal | [in] Z coordinate of translation to set.

HRESULT IRdMatrixfDisp::GetRoll | ( | [out, retval] RtFloat * | pVal | ) |

Returns the roll value.

Returns:
  pVal [out, retval] Roll value.

HRESULT IRdMatrixfDisp::SetRoll | ( | [in] RtFloat | newVal | ) |

Sets the roll value.

Parameters:

  | pVal | [in] Roll value to set.

HRESULT IRdMatrixfDisp::GetPitch | ( | [out, retval] RtFloat * | pVal | ) |

Returns the pitch value.

Returns:
  pVal [out, retval] Pitch.

HRESULT IRdMatrixfDisp::SetPitch | ( | [in] RtFloat | newVal | ) |

Sets the pitch value.

Parameters:

  | pVal | [in] Pitch value to set.

HRESULT IRdMatrixfDisp::GetYaw | ( | [out, retval] RtFloat * | pVal | ) |

Returns the yaw value.

Returns:
  pVal [out, retval] Yaw.

HRESULT IRdMatrixfDisp::SetYaw | ( | [in] RtFloat | newVal | ) |

Sets the yaw value.

Parameters:

  | pVal | [in] Yaw value to set.

HRESULT IRdMatrixfDisp::GetScaleX | ( | [out, retval] RtFloat * | pVal | ) |

Returns the scale in x axis.

Returns:
  pVal [out, retval] X scale value.

HRESULT IRdMatrixfDisp::SetScaleX | ( | [in] RtFloat | newVal | ) |

Sets the scale in x axis.

Parameters:

  | pVal | [in] X scale value to set.

HRESULT IRdMatrixfDisp::GetScaleY | ( | [out, retval] RtFloat * | pVal | ) |

Returns the scale in y axis.

Returns:
  pVal [out, retval] Y scale value.

HRESULT IRdMatrixfDisp::SetScaleY | ( | [in] RtFloat | newVal | ) |

Sets the scale in y axis.

Parameters:

  | pVal | [in] Y scale value to set.

HRESULT IRdMatrixfDisp::GetScaleZ | ( | [out, retval] RtFloat * | pVal | ) |

Returns the scale in z axis.

Parameters:

  | pVal | [out, retval] Z scale value.

HRESULT IRdMatrixfDisp::SetScaleZ | ( | [in] RtFloat | newVal | ) |

Sets the scale in z axis.

Parameters:

  | pVal | [in] Z scale value to set.

HRESULT IRdMatrixfDisp::GetShearX | ( | [out, retval] RtFloat * | pVal | ) |

Returns the shear in xy.

Returns:
  pVal [out, retval] XY shear value.

HRESULT IRdMatrixfDisp::SetShearX | ( | [in] RtFloat | newVal | ) |

Sets the shear in xy.

Parameters:

  | pVal | [in] XY shear value to set.

HRESULT IRdMatrixfDisp::GetShearY | ( | [out, retval] RtFloat * | pVal | ) |

Returns the shear in xz.

Returns:
  pVal [out, retval] XZ shear value.

HRESULT IRdMatrixfDisp::SetShearY | ( | [in] RtFloat | newVal | ) |

Sets the shear in xz.

Parameters:

  | pVal | [in] XZ shear value to set.

HRESULT IRdMatrixfDisp::GetShearZ | ( | [out, retval] RtFloat * | pVal | ) |

Returns the shear in yz.

Returns:
  pVal [out, retval] YZ shear value.

HRESULT IRdMatrixfDisp::SetShearZ | ( | [in] RtFloat | newVal | ) |

Sets the shear in yz.

Parameters:

  | pVal | [in] YZ shear value to set.

HRESULT IRdMatrixfDisp::AddScaleShear | ( | [in] RtFloat | sx,
|  | [in] RtFloat | sy,
|  | [in] RtFloat | sz,
|  | [in] RtFloat | sxy,
|  | [in] RtFloat | sxz,
|  | [in] RtFloat | syz |
| ) |  |  |

Adds the scale and shear transformation to matrix.

Parameters:

  | sx | [in] Scale in x.
  | sy | [in] Scale in y.
  | sz | [in] Scale in z.
  | sxy | [in] Shear in xy.
  | sxz | [in] Shear in xz.
  | syz | [in] Shear in yz.

HRESULT IRdMatrixfDisp::Rotate | ( | [in] IDispatch * | center,
|  | [in] IDispatch * | axes,
|  | [in] RtFloat | angle |
| ) |  |  |

Adds rotation to matrix around arbitrary axis and center.

Parameters:

  | center | [in] Center of rotation.
  | axis | [in] Axis of rotation.
  | angle | [in] Angle of rotation.

See also:
  IRdVertex

HRESULT IRdMatrixfDisp::Decompose | ( | [out, retval] IDispatch ** | ppComponents | ) |

Decomposes transframtion matrix to translation (x,y,z), rotation (roll, pitch, yaw) and scale (sx, sy, sz, sxy, syz, syz).

Returns:
  ppComponents [out, retval] Components of transformation matrix.

See also:
  IRdComponents

HRESULT IRdMatrixfDisp::Compose | ( | [in] IDispatch * | pComponents | ) |

Composes transformtion matrix from translation (x,y,z), rotation (roll, pitch, yaw) and scale (sx, sy, sz, sxy, syz, syz).

Parameters:

  | pComponents | [in] Components of transformation matrix.

See also:
  IRdComponents

HRESULT IRdMatrixfDisp::Shift | ( | [in] IDispatch * | pShift | ) |

Adds shift to transfomation matrix according to arbitrary vector.

Parameters:

  | pShift | [in] Shift vector to add.

See also:
  IRdVertex

HRESULT IRdMatrixfDisp::LoadMatrix | ( | [in] IDispatch * | pM | ) |

LoadMatrix.

Parameters:

  | pM | [in] .

HRESULT IRdMatrixfDisp::Invert | ( | [out, retval] IDispatch ** | pM | ) |

Invert Matrix.

Parameters:

  | pM | [in] Matrix to invert.

HRESULT IRdMatrixfDisp::Transpose | ( | [out, retval] IDispatch ** | pM | ) |

Transpose Matrix.

Parameters:

  | pM | [in] Matrix to transpose.

HRESULT IRdMatrixfDisp::ScaleLocal | ( | [in] RtFloat | x,
|  | [in] RtFloat | y,
|  | [in] RtFloat | z |
| ) |  |  |

ScaleLocal.

Parameters:

  | x | [in] Set local scale for x axis.
  | y | [in] Set local scale for y axis.
  | z | [in] Set local scale for z axis.

HRESULT IRdMatrixfDisp::Scale | ( | [in] RtFloat | x,
|  | [in] RtFloat | y,
|  | [in] RtFloat | z |
| ) |  |  |

Scale.

Parameters:

  | x | [in] Set scale for x axis.
  | y | [in] Set scale for y axis.
  | z | [in] Set scale for z axis.

HRESULT IRdMatrixfDisp::Shear | ( | [in] RtFloat | x,
|  | [in] RtFloat | y,
|  | [in] RtFloat | z |
| ) |  |  |

Shear.

Parameters:

  | x | [in] Set shear in x axis.
  | y | [in] Set shear in y axis.
  | z | [in] Set shear in z axis.

HRESULT IRdMatrixfDisp::TranslateLocal | ( | [in] RtFloat | x,
|  | [in] RtFloat | y,
|  | [in] RtFloat | z |
| ) |  |  |

TranslateLocal.

Parameters:

  | x | [in] Set local translation value for x.
  | y | [in] Set local translation value for y.
  | z | [in] Set local translation value for z.

HRESULT IRdMatrixfDisp::Translate | ( | [in] RtFloat | x,
|  | [in] RtFloat | y,
|  | [in] RtFloat | z |
| ) |  |  |

Translate.

Parameters:

  | x | [in] Set translation value for x.
  | y | [in] Set translation value for y.
  | z | [in] Set translation value for z.

HRESULT IRdMatrixfDisp::RotateEuler | ( | [in] RtFloat | x,
|  | [in] RtFloat | y,
|  | [in] RtFloat | z |
| ) |  |  |

RotateEuler.

Parameters:

  | x | [in] Set euler rotation value for x.
  | y | [in] Set euler rotation value for y.
  | z | [in] Set euler rotation value for z.

HRESULT IRdMatrixfDisp::RotateEulerPRY | ( | [in] RtFloat | fPitch,
|  | [in] RtFloat | fRoll,
|  | [in] RtFloat | fYaw |
| ) |  |  |

RotateEulerPRY {pitch/roll/yaw).

Parameters:

  | x | [in] Set eulerPRY rotation value for x.
  | y | [in] Set eulerPRY rotation value for y.
  | z | [in] Set eulerPRY rotation value for z.

HRESULT IRdMatrixfDisp::RotationX | ( | [in] RtFloat | x | ) |

RotationX.

Parameters:

  | x | [in] Set x rotation value.

HRESULT IRdMatrixfDisp::RotationY | ( | [in] RtFloat | y | ) |

RotationY.

Parameters:

  | y | [in] Set y rotation value.

HRESULT IRdMatrixfDisp::RotationZ | ( | [in] RtFloat | z | ) |

RotationZ.

Parameters:

  | z | [in] Set z rotation value.

HRESULT IRdMatrixfDisp::TransformPoint | ( | [in] IDispatch * | SourcePoint,
|  | [out, retval] IDispatch ** | pDestPoint |
| ) |  |  |

TransformPoint.

Parameters:

  | SourcePoint | [in] Source point.

Returns:
  pDestPoint [out,retval] Returns destination point.

HRESULT IRdMatrixfDisp::TransformVector | ( | [in] IDispatch * | SourceVect,
|  | [out, retval] IDispatch ** | pDestVect |
| ) |  |  |

TransformVector.

Parameters:

  | SourceVect | [in] Source vector.

Returns:
  pDestVect [out,retval] Destination vector.

HRESULT IRdMatrixfDisp::LookAt | ( | [in] IDispatch * | pEye,
|  | [in] IDispatch * | pAt,
|  | [in] IDispatch * | pUp |
| ) |  |  |

LookAt.

Parameters:

  | pEye | [in] .
  | pAt | [in] .
  | pUp | [in] .

HRESULT IRdMatrixfDisp::MakeRotTrans | ( | [in] IDispatch * | center,
|  | [in] IDispatch * | axis,
|  | [in] RtFloat | angle |
| ) |  |  |

MakeRotTrans.

Parameters:

  | center | [in] .
  | axis | [in] .
  | angle | [in] .

HRESULT IRdMatrixfDisp::GetTrans | ( | [out, retval] IDispatch ** | ppVect | ) |

Returns the translation vector.

Returns:
  pVal [out, retval] Translation vector.

HRESULT IRdMatrixfDisp::SetTrans | ( | [in] IDispatch * | pVect | ) |

Sets the translation vector.

Parameters:

  | pVect | [in] Translation vector.