「Undo」をどう設計する?

ドローツールの Undo をどうやって実装するといいんだろう?っていうギモンにリプ頂いたのでまとめ。もっと話広げられれば良かったかもなぁ。
40
Jhon Smith @push_back

Togetter - 「「Undo」をどう設計する?」 http://togetter.com/li/161523 いろいろ考え出すとキリがない。毎回スナップショットを取るのが一番か。

2011-07-14 23:45:11
Jhon Smith @push_back

富豪的プログラミングかな……。

2011-07-14 23:47:28
I'm a no if out @fumio_naito

むー。悩ましいところ。 RT @programming_j: Togetter - 「「Undo」をどう設計する?」 http://t.co/BoxRyqH #programming

2011-07-15 00:54:31
重巡洋艦 キノガッサ @TKinugasa

もしかして夕方 「Undoってどういう設計?」「mementoパターン?」「mementoパターン中身知らない」「知らないけどUndoとかできる奴じゃ?」 という円環の理に導かれてたんじゃろか?

2011-07-14 23:54:54
tomo🐧@learning @cocoatomo

Undo と Memento って自分の中ではほぼ等しいのだが。GoF 本にはなんとあったかな??

2011-07-15 00:58:00
Kantaro Seo @auto_array

UNDOとREDOを実現するのにmementoではなくて 通常の操作と逆の操作を一つのコマンドとして隠蔽した コマンドのプッシュとポップで実装とか 懐かしい… オレにヒープをよこせ!

2011-07-15 01:20:58
Norishige Fukushima @fukushima1981

@miyabiarts 頂点データの量がヤバくなりそうだったからメモリ上で圧縮して管理っていうw

2011-07-15 01:12:51
みやびあーつ @miyabiarts

@fukushima1981 圧縮・展開を上手くしないと、また面倒臭そうな問題が起こりそうですが、あまりに多くなりそうならば、そうすることも考えないといけないですね。

2011-07-15 01:14:06
Norishige Fukushima @fukushima1981

@miyabiarts GPUだとメモリIOよりも演算の方が速くない?というかそんなデータ量のundo管理したくないw

2011-07-15 01:17:11
みやびあーつ @miyabiarts

@fukushima1981 ドローツールや3DモデリングツールのUndoだと仕方がないですね。編集対象とした要素を全て保持しておかないと戻れないので、保持せざるを得ないのです。

2011-07-15 01:18:23
Norishige Fukushima @fukushima1981

@miyabiarts 実験環境のパラメータと結果を保持しておくクラス作って管理するだけでもめんどくさいのに...w

2011-07-15 01:24:49
みやびあーつ @miyabiarts

@fukushima1981 ちなみにですが、3Dのポリゴンデータはかなり熱くて、例えば2つの面がそれぞれ頂点番号1,2,3と4,5,6でできていて、1つ目の面を削除すると、頂点1,2,3が使われなくなるので、効率化のために適当なタイミングで4,5,6->1,2,3と振り直すとか

2011-07-15 01:28:37
みやびあーつ @miyabiarts

@fukushima1981 さらに、その操作を戻すためには1,2,3->4,5,6としたあとに、配列の最初に1,2,3を復元してから面を復活させるというような地道な操作を延々としないといけないのです。

2011-07-15 01:29:24
LM-7 @LunarModule7

『「Undo」をどう設計する?』 http://bit.ly/rk4eDR 面白いけど実装する身になるとうんざりする。

2011-07-15 07:27:58
Yao Tadahito(八尾 唯仁) @eighttails

扱うデータが小さければスナップショットでいいけど、画像や3Dモデルは難しいよなあ。"Togetter - 「「Undo」をどう設計する?」" http://goo.gl/eFasx

2011-07-15 08:06:14
wata_d @wata_d

仕事で書いたUndoは操作履歴程度なので、大体Commandだったなぁ / Togetter - 「「Undo」をどう設計する?」 http://htn.to/sDVG1F

2011-07-15 07:26:37