To get coordinate system, you first need to register a node or nodes for validation. Next you need to call validate so that coordinate system evaluator can evaluate runtime properties for specified node(s). Then you can call GetXXXX to read actual coordinate systems or bounding boxes.
: When coordinate system for specified node(s) is no longer required, you should unregister it.
| HRESULT IRsCoordinateSystemManager::RegisterCoordinatesEvaluator | ( | [in] IRsCoordinateSystemEvaluator * | pEvaluator | ) |
Register coordinate system evaluator.
| pEvaluator | [in] Coordinate system evaluator to register. |
| HRESULT IRsCoordinateSystemManager::UnRegisterCoordinatesEvaluator | ( | [in] IRsCoordinateSystemEvaluator * | pEvaluator | ) |
UnRegister coordinate system evaluator.
| pEvaluator | [in] Coordinate system evaluator to unregister. |
| HRESULT IRsCoordinateSystemManager::ValidateCoordinateSystem | ( | [in] IRsObjectList * | pObjList | ) |
Validate coordinate system for specified node; allows reception of invalidation notifications.
| pObjectList | [in] List of objects to validate. |
| HRESULT IRsCoordinateSystemManager::GetCoordinateSystemLocal | ( | [in] IRsObjectList * | pObjList, | |
| [in] BSTR | szCoordSystemName, | |||
| [out] RtMatrixf * | pMatrix | |||
| ) |
Get coordinate system matrix for specified list of objects.
Method uses registered coordinate evaluators to calculate coordinate system that is defined by selections in edit modes.
| pObjList | [in] List of objects for which coordinate system is requested. | |
| szCoordSystemName | [in] Requested coordinate system name. | |
| pMatrix | [out] Calculated coordinate system. |
| HRESULT IRsCoordinateSystemManager::GetCoordinateSystemGlobal | ( | [in] IRsObjectList * | pObjList, | |
| [in] BSTR | szCoordSystemName, | |||
| [out] RtMatrixf * | pMatrix | |||
| ) |
Get coordinate system matrix for specified list of objects.
Method uses registered coordinate evaluators to calculate coordinate system.
| pObjList | [in] List of objects for which coordinate system is requested. | |
| szCoordSystemName | [in] Requested coordinate system name. | |
| pMatrix | [out] Calculated coordinate system. |
| HRESULT IRsCoordinateSystemManager::GetReferencePosition | ( | [in] IRsObjectList * | pObjList, | |
| [in] BSTR | szCoordSystemName, | |||
| [out] RtVector3f * | pPostion | |||
| ) |
Get selection's default reference position.
| pObjList | [in] List of objects for which reference position is requested. | |
| szCoordSystemName | [in] Coordinate system name hint. NULL specifies default. | |
| pPosition | [out] Calculated reference position. |
| HRESULT IRsCoordinateSystemManager::UpdateBoundingBox | ( | [in] IRsObjectList * | pObjList | ) |
Update bounding box for specified list of objects.
All objects for which bounding box is requested need to be cached.
| pObjList | [in] List of objects for which coordinate system is requested. |
| HRESULT IRsCoordinateSystemManager::GetBoundingBox | ( | [in] IRsObjectList * | pObjList, | |
| [in] BSTR | szCoordSystemName, | |||
| [in] RtMatrixf * | pCoordinates, | |||
| [out] RtBoundingBox * | pBBox | |||
| ) |
Get bounding box for specified list of objects.
Method uses registered coordinate evaluators to calculate bounding box.
All objects for which bounding box is requested need to be cached.
| pObjList | [in] List of objects for which coordinate system is requested. | |
| szCoordSystemName | [in] Coordinate system name hint. NULL specifies default. | |
| pCoordinates | [in] Coordinate system to use for bounding box calculation. | |
| pBBox | [out] Calculated bounding box. |
| HRESULT IRsCoordinateSystemManager::RegisterObjects | ( | [in] IRsObjectList * | pObjList, | |
| [in] IRsCoordinateSystemsEventsListener * | pEventsListener | |||
| ) |
Register objects and enable caching of coordinate system calculations for them.
Calling RegisterObjects multiple times will increase reference count of object cache. To disable caching (release objects cache) you need to call UnregisterObjects corresponding number of times.
| pObjList | [in] List of objects to register. | |
| pEventsListener | [in] Event listener that receives invalidations in case that objects change. |
| HRESULT IRsCoordinateSystemManager::UnregisterObjects | ( | [in] IRsObjectList * | pObjList, | |
| [in] IRsCoordinateSystemsEventsListener * | pEventsListener | |||
| ) |
Unregister a node from coordinate system manager and disable caching for it.
Calling RegisterObjects multiple times will increase reference count of object cache.
To disable caching (release objects cache), you need to call UnregisterObjects a corresponding number of times.
| pObjList | [in] List of objects to unregister | |
| pEventsListener | [in] Event listener that receives invalidations in case where objects change. |
| HRESULT IRsCoordinateSystemManager::SendBoundingBoxInvalidatedNotify | ( | [in] IRsObject * | pObj | ) |
Notify listeners that object bounding box has changed.
| pObj | [in] Object causing invalidation. |
| HRESULT IRsCoordinateSystemManager::SendCoordSysInvalidatedNotify | ( | [in] IRsObject * | pObj | ) |
Notify listeners that object pivot or coordinate system has changed.
| pObj | [in] Object causing invalidation. |
| HRESULT IRsCoordinateSystemManager::GetActiveCoordinatesEvaluator | ( | [out, retval] IRsCoordinateSystemEvaluator ** | ppTopEval | ) |
Get active coordinate system evaluator.
Standard HRESULT processing can be applied on function return value.
1.5.5