Main Page | Class Hierarchy | Alphabetical List | Compound List | Compound Members

# IRdCoordinateSystem Struct Reference

Inherits IRsObject.

List of all members.

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

## Detailed Description

Widget coordinate system data object is used to specify orientation of widget actions and elements. The orientation is stored in matrices, but because these need to be accessible during rendering of widgets (not just read threads), evaluation of matrices must be done out of kernel. Callback mechanism is used to perform the task.

## Member Function Documentation

HRESULT IRdCoordinateSystem::SetCoordinateSystem | ( | [in] IRsUnknownCoordinateSystem * | pCoordSysNode,
|  | [in] GUID | guid
| ) |

  | Set coordinate system evaluation interface and port Parameters:
  pCoordSysNode | Coordinate system evaluator
  guid | Port ID for coordinate system evaluator
Returns: standard HRESULT processing can be applied to returned value

HRESULT IRdCoordinateSystem::GetCoordinateSystem | ( | [out] IRsUnknownCoordinateSystem ** | ppCoordSysNode,
|  | [out] GUID * | guid
| ) |

  | Get coordinate system evaluator interface and port Parameters:
  ppCoordSysNode | Returned coordinate system evaluator
  pguid | Returned port ID for coordinate system evaluator
Returns: standard HRESULT processing can be applied to returned value

HRESULT IRdCoordinateSystem::GetTransformationMatrix | ( | [out] RtMatrixf * | pMatrix | ) |

  | Evaluate transformation matrix. Evaluation is done out of kernel and can be called from both read and write threads. Data object uses stored coordinate system interfaces to read coordinate system form widget nodes. Parameters:
  pMatrix | Computed coordinate system
Returns: standard HRESULT processing can be applied to returned value

HRESULT IRdCoordinateSystem::GetCoordinateSystemScaling | ( | [out] RtVector4f * | pScalePlane | ) |

  | Coordinate system scaling is used to read widget scaling plane equation. Widget coordinate system computation uses this value to scale widget depending on it's distance from this plane. It may be used to compensate perspective scaling. Evaluation is done out of kernel and uses stored coordinate system interfaces to compute the data. Parameters:
  pScalePlane | Computed scaling plane.
Returns: standard HRESULT processing can be applied to returned value

HRESULT IRdCoordinateSystem::GetCoordinateSystemViewDependence | ( | [out] RtBool * | pbDependent | ) |

  | View independent coordinate systems are locked during widget actions so visual representation of axes remains the same. This flag is also used for optimisation purposes. Parameters:
  pbDependent | Return value that specifies, whether widget coordinate system is view dependent.
Returns: standard HRESULT processing can be applied to returned value