# IRsUnknownCoordinateSystem Interface Reference

Inherits IUnknown.

List of all members.

## Public Member Functions
HRESULT | GetCoordinateSystem ([in] GUID *guid,[out] RtMatrixf *pMatrix)
HRESULT | GetCoordinateSystemScaling ([in] GUID *guid,[out] RtVector4f *pScalePlane)
HRESULT | GetCoordinateSystemViewDependence ([in] GUID *guid,[out] RtBool *pbDependent)

## Detailed Description

Specifies base interface for coordinate system classes. Because coordinate systems are required also outside read/write threads (during rendering) calls must be thread safe. Implemnetations can be sure, that they will NOT be released during procedure calls.

## Member Function Documentation

HRESULT IRsUnknownCoordinateSystem::GetCoordinateSystem | ( | [in] GUID * | guid,
|  | [out] RtMatrixf * | pMatrix |
| ) |  |  |

Evaluate coordinate system matrix for specified slot.

- Slots are used to distinguish between various node output connectors for nodes with multiple coordinate systems.
- Slot = port.

Parameters:

  | guid | [in] Specifies port/slot ID.
  | pMatrix | [out] Fill matrix with coordinate system.

Returns:
  standard HRESULT processing can be applied to returned value.

HRESULT IRsUnknownCoordinateSystem::GetCoordinateSystemScaling | ( | [in] GUID * | guid,
|  | [out] RtVector4f * | pScalePlane |
| ) |  |  |

Compute widget scale multiplication plane.

- Widget rendering matrices are multiplied by distance of their centers from this plane.
- This can be used to build coordinate systems that have widget sizes independent on their distance from viewer.

Parameters:

  | guid | [in] Specifies port/slot ID.
  | pScalePlane | [out] Fill this structure with plane.

Returns:
  standard HRESULT processing can be applied to returned value.

HRESULT IRsUnknownCoordinateSystem::GetCoordinateSystemViewDependence | ( | [in] GUID * | guid,
|  | [out] RtBool * | pbDependent |
| ) |  |  |

When widget is not view dependent, then some optimizations may take place (like fixation of axes during operations).

Parameters:

  | guid | [in] Specifies port/slot ID.
  | pbDependent | [out] Return true, if widget is view dependent.

Returns:
  standard HRESULT processing can be applied to returned value.