# IRsCoordinateSystemEvaluator Interface Reference

Inherits IUnknown.

List of all members.

## Public Member Functions
HRESULT | GetCoordinateSystemLocal ([in] IRsObjectList *pObjectList,[in] BSTR szCoordSystemName,[out] RtMatrixf *pMatrix)
HRESULT | GetCoordinateSystemGlobal ([in] IRsObjectList *pObjectList,[in] BSTR szCoordSystemName,[out] RtMatrixf *pMatrix)
HRESULT | GetReferencePosition ([in] IRsObjectList *pObjectList,[in] BSTR szCoordSystemName,[out] RtPoint *pPos)
HRESULT | GetBoundingBox ([in] IRsObjectList *pObjectList,[in] BSTR szCoordSystemName,[in] RtMatrixf *pCoordSys,[out] RtBoundingBox *pBoundingBox)
HRESULT | UpdateBoundingBox ([in] IRsObjectList *pObjectList)
HRESULT | RegisterObject ([in] IRsObject *pObj)
HRESULT | UnregisterObject ([in] IRsObject *pObj)

## Detailed Description

IRsCoordinateSystemEvaluator handles cached calculations of coordinate systems and bounding boxes for specified list of objects.

- Matrix is paramount to coordinate system for purposes of this interface.

## Member Function Documentation

HRESULT IRsCoordinateSystemEvaluator::GetCoordinateSystemLocal | ( | [in] IRsObjectList * | pObjectList,
|  | [in] BSTR | szCoordSystemName,
|  | [out] RtMatrixf * | pMatrix |
| ) |  |  |

Calculate specified coordinate system using local object properties like selections etc.

Parameters:

  | pObjectList | [in] List of objects for which coordinate system is requested.
  | szCoordSystemName | [in] Name of desired coordinate system.
  | pMatrix | [out] Calculated coordinate system.

Returns:
  Standard HRESULT processing will be applied for returned code.

HRESULT IRsCoordinateSystemEvaluator::GetCoordinateSystemGlobal | ( | [in] IRsObjectList * | pObjectList,
|  | [in] BSTR | szCoordSystemName,
|  | [out] RtMatrixf * | pMatrix |
| ) |  |  |

Calculate specified coordinate system.

Parameters:

  | pObjectList | [in] List of objects for which coordinate system is requested.
  | szCoordSystemName | [in] Name of desired coordinate system.
  | pMatrix | [out] Calculated coordinate system.

Returns:
  Standard HRESULT processing will be applied for returned code.

HRESULT IRsCoordinateSystemEvaluator::GetReferencePosition | ( | [in] IRsObjectList * | pObjectList,
|  | [in] BSTR | szCoordSystemName,
|  | [out] RtPoint * | pPos |
| ) |  |  |

Calculate selection reference position.

Parameters:

  | pObjectList | [in] List of objects for which coordinate system is requested.
  | szCoordSystemName | [in] Coordinate system name. Hint: NULL specifies default.
  | pPos | [out] Calculated reference position.

Returns:
  S_OK if reference position is valid.

  S_FALSE if reference position is valid, but invalid to show widget (can be used to align view etc).

  otherwise Standard HRESULT processing will be applied for returned code.

HRESULT IRsCoordinateSystemEvaluator::GetBoundingBox | ( | [in] IRsObjectList * | pObjectList,
|  | [in] BSTR | szCoordSystemName,
|  | [in] RtMatrixf * | pCoordSys,
|  | [out] RtBoundingBox * | pBoundingBox |
| ) |  |  |

Calculate bounding box in specified coordinate system.

Parameters:

  | pObjectList | [in] List of objects for which bounding box is requested.
  | szCoordSys | [in] Coordinate system.
  | pBoundingBox | [out] Calculated bounding box.

Returns:
  Standard HRESULT processing will be applied for returned code.

HRESULT IRsCoordinateSystemEvaluator::UpdateBoundingBox | ( | [in] IRsObjectList * | pObjectList | ) |

Update bounding box structures for bbox calculation.

Parameters:

  | pObjectList | [in] List of objects for which bounding box is requested.

Returns:
  Standard HRESULT processing will be applied for returned code.

HRESULT IRsCoordinateSystemEvaluator::RegisterObject | ( | [in] IRsObject * | pObj | ) |

Register object to evaluator and enable object coord system caching.

Parameters:

  | pObj | [in] Object for which to create caches.

Returns:
  Standard HRESULT processing will be applied for returned code.

HRESULT IRsCoordinateSystemEvaluator::UnregisterObject | ( | [in] IRsObject * | pObj | ) |

Unregister from evaluator and disable object coord system caching for it.

Parameters:

  | pObj | [in] Object for which to destroy cache.

Returns:
  Standard HRESULT processing will be applied for returned code.