C++ API カスタム コマンドによってシーン以外のデータに対して実行した操作を元に戻す/やり直す必要がある場合は、そのコマンドを Undo コールバックと Redo コールバックに実装します。
元に戻すことが可能なコマンドの実行中は、ユーザ データを変更したタイミングに関係なく、カスタム Undo コールバックは、すべての Softimage コマンドが元に戻されたときに常に実行されます。また、Redo コールバックは、Softimage コマンドがやり直される前に常に呼び出されます。
コマンドの Execute コールバックで、TermUndoRedo コンテキスト属性で、コマンド アクションを元に戻す、およびやり直すためのメモリを割り当てる必要があるかどうかを確認できます。 メモリの割り当てが必要な場合は、UndoRedoData 属性を設定してコマンド操作データを格納します。 このデータは、Undo および Redo コールバックで使用し、コマンドの Execute コールバックで実行した作業を元にもどしたり、やり直すことができます。 このデータはTermUndoRedo で解放する必要があります。
より細かい制御を行う場合は、元に戻すデータの管理をすべてプラグインで処理することができます。 このような場合、カスタム コマンドで固有の Undo スタックを保持し、Softimage の Undo スタックと一致させるようにする必要があります。