# IRsTransformOverrideManager Interface Reference

Inherits IUnknown.

List of all members.

## Public Member Functions
HRESULT | BeginTransformSession (IUnknown *pHandle, IRsNode *pNode, IRcUndoRedoGroup *pCommandGroup)
HRESULT | EndTransformSession (IUnknown *pHandle, IRsNode *pNode, IRcUndoRedoGroup *pCommandGroup)
HRESULT | ApplyTransform (IUnknown *pHandle, IRsNode *pNode, RtMatrixf *pTransform)
HRESULT | GetManagerWeight (IRsNode *pNode, RtFloat *pfWeight)

## Detailed Description

IRsTransformOverrideManager handles creation transformation and undo/redo for tools performing transformation changes.

- You should register transform override manager if you want to customize transformations or change if your node transform matrix changes another nodes.

## Member Function Documentation

HRESULT IRsTransformOverrideManager::BeginTransformSession | ( | IUnknown * | pHandle,
|  | IRsNode * | pNode,
|  | IRcUndoRedoGroup * | pCommandGroup |
| ) |  |  |

Transform override manager was voted to be best for specified node and is called to start transform session and to register undo command to undo command group.

Parameters:

  | pHandle | [in] Handle to transform session.
  | pNode | [in] Node to generate undo record.
  | pCommandGroup | [in] Container of all redo commands.

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

HRESULT IRsTransformOverrideManager::EndTransformSession | ( | IUnknown * | pHandle,
|  | IRsNode * | pNode,
|  | IRcUndoRedoGroup * | pCommandGroup |
| ) |  |  |

Transform override manager was voted to be best for specified node and is called to finish transform session and add redo command to redo command group.

Parameters:

  | pHandle | [in] Handle to transform session.
  | pNode | [in] Node to generate undo record.
  | pCommandGroup | [in] Container of all redo commands.

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

HRESULT IRsTransformOverrideManager::ApplyTransform | ( | IUnknown * | pHandle,
|  | IRsNode * | pNode,
|  | RtMatrixf * | pTransform |
| ) |  |  |

Transform override was voted to be best for specified node and is called to apply transformation to this node.

Parameters:

  | pHandle | [in] Handle to transform session.
  | pNode | [in] Node to generate undo record.
  | pTransform | [in] Matrix in world space to apply.

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

HRESULT IRsTransformOverrideManager::GetManagerWeight | ( | IRsNode * | pNode,
|  | RtFloat * | pfWeight |
| ) |  |  |

Calculate suitability weight of this manager for specified node.

- Manager with biggest weight will be called to create undo/redo record.

Parameters:

  | pNode | [in] Node to generate undo record.
  | pfWeight | [in] Weight of manager suitability for specified node.

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