さっそく触ってみました。
すばらしい仕様ですね(^^
これから幅広いプラグインが開発されそうで、今から期待が膨らみます。
ところで、仕様について少し気になった点があるので質問させて戴きます。
Mizuno氏の考えるSTATIONプラグインの位置づけが今イチ分からず、見当違いなことを書いていたら申し訳ありません(^^;
■アンドゥの通知について
常駐型プラグインとなると、従来の「一回の実行だけで完結する」タイプではなく、起動中に様々な情報を保持するものが増えてくると思います。
このようなプラグインの場合、現在の仕様では「アンドゥをしたかどうか」が分からないのが少々気になります。
極端な例ですが、OnModifyObject時にカウンタを1増やすだけのプラグインを考えてみても、アンドゥ時戻さなければいけないはずのカウンタを戻すことができません。
(逆に、アンドゥ時にOnModifyObjectが呼び出され、減らすはずのカウンタが増えてしまいます)
何かしらの情報を保持しているプラグインにとっては、アンドゥの処理は自前でする必要がありますから、アンドゥの通知は不可欠に思えるのですが、いかがでしょうか?
■頂点ごとのユニークなIDについて
こちらは少し強引な使い方をした際に問題になるものなのですが…
Show more...
従来は「プラグインを起動する→パラメータを入力して実行する→気に入らなければ取り消し」といった作業の繰り返しが多く、
お気に入りのパラメータを見つけるまでにかなり時間がかかる、といったことが多々ありました。
常駐型プラグインでは、パラメータを変えるとインタラクティブにモデルに反映され、結果が目で確認できる、といったものも実現可能なのではないかと思っておりましたが、現行仕様では少々実装が困難です。
ユーザーがプラグイン起動中にモデルに何をしようが自由ですから、何をされても問題ないようにプラグイン側で対処する必要があります。
しかし、現在のプラグインの仕様では、「個々の頂点や面ごとのユニークな情報」というものがないので、「OnModifyObjectで何かが変わったことは分かっても、何が変わったかまでは知ることができない」という状態になってしまいます。
頂点を削除してしまえばインデックスは詰められてしまいますし、同じ位置に複数の頂点がある場合を考慮すると、位置情報もユニークなものとしては扱えません。
何かしらの方法で、モデルに変化があっても変わることがない、頂点や面ごとにユニークな情報というものは取得(または設定)できないものでしょうか?
長くなってしまいましたが、ご一考いただければと思い、書き込みをさせていただきました。m(__)m