Metasequoia BBS

| 新規投稿 | 通常表示 | ツリー表示 |
状態
タグ
キーワード
[1572] UpdateUndoのアンドゥバッファ消費について / ASDF-0774
[SDK] 返信
コマンドプラグインのUpdateUndoについて質問があるのですが、
プラグイン側で明示的にUpdateUndoを呼ぶということは、
アンドゥバッファを更新するような標準の操作が無いにも関わらず
アンドゥバッファを更新したい、すなわちプラグイン側特有の
データに変更があったとき、それをアンドゥ/リドゥしたいがため、
と考えられるのですが、そういう用途に限らない、ということでしょうか?

もしそういう用途ならば、メタセコイア側ドキュメントには変更が
行われていないのに、メモリ上のアンドゥ領域を消費してしまうのは
非常に勿体無い気がします。
(例えばダイアログのボタンを押したらUpdateUndoが呼ばれるだけ、
というような作りにしてボタンを押し続けたところ、アンドゥ
最大回数に到達していないにも関わらず、最初にボタンを押す前の
状態に戻れなくなってしまいました)
2008-12-13 01:16

途中の3件のメッセージを表示

[1578] Re: Re: Re: Re: UpdateUndoのアンドゥバッファ消費について / ASDF-0774
ありがとうございました。

実は頂点のユニークID(以下UID)に関連づけるデータを付加するのに、
そのユニークIDの寿命の管理が厄介であるため、それをなんとかしようと
考えてこの件に気がつきました。
(例えばUID=1の頂点を追加してUndoして別の操作をするとUID=1は完全に無効になるけれど、
これはOnObjectModifiedごとに総あたりしないとわからない。
UID=1の頂点追加の後、UID=1に関連づけたプラグイン固有データ追加、
その追加履歴をプラグイン側で保存してUpdateUndoなら、
Undo操作でプラグイン固有データから削除できるので、総あたりで
調べなくとも無効になったUIDに関する情報を先に消去できる。
でも、調べてみたら標準のアンドゥバッファを大量に浪費してしまう。)

なので、もし頂点が追加・削除されるごとにプラグイン側に
「どの頂点が追加・削除されたか」を通知する方が容易であるならば、
私としてはそちらを優先していただきたいと思う次第です。

注文ばかり多くなって申し訳ありませんが、ご検討のほどよろしく
お願い致します。
2008-12-15 18:09
タイトル
お名前
レス通知メールアドレス レスがつくとこのアドレスにメールが通知されます。メールアドレスは投稿後に表示されることはありません。
タグ プリセットから指定するか、コンマ区切りで任意のタグを複数入力できます。
メッセージ

現在ファイル添付機能は一時的に利用できません。