レス遅れてすみません。ちょっと別スレッドに別けさせて頂きました。
>>逆にお尋ねしますが、どういった仕様であればそういったことに対応できると思いますか? 頂点へのデータの追加に関しては色々考えてみたのですが、大きく分けて次の
3通りが考えられそうです。
1、メタセコイアで行われた編集操作をコールバックで受け取り各プラグインで適切な処理をする。
2、プラグインで拡張したデータとそのフォーマットをメタセコイアに通知し各編集操作に対する処理はメタセコイア側で処理する。
3、プラグイン側で拡張データを持たずにメタセコイア側で拡張をサポートする
「1」は現在の頂点ごとのユニークIDとOnObjectModifiedでもう少し詳細な
操作を受け取れればなんとかなりそうです。この方法はプラグインの実装側
としては柔軟性が高そうで一番実現度が高そうな気がします。
ただ、プラグイン間でデータのやり取りをする場合ちょっとやっかい
な所があります。
「2」はちょっメタセコイアへの拡張が大きすぎてMizunoさんの負担が大きす
ぎる気がします。APIのイメージとしてはこんな感じです
void MQObject::AddVertexExtension( int index \x2c DWORD unique_id \x2c void* data \x2c MQ_VERTEX_ATTRIBUTE_TYPE type );
Show more...
この方法は他のプラグインとのデータのやり取りにも優しいかと思います。
「3」はプラグイン側で拡張データを持たずにメタセコイア側で拡張された
データの管理を面倒を見る方法です。プラグイン開発者としては一番安心できる
方法なのですがMizunoさんの負荷は高そうです。APIイメージはこんな感じです。
void MQObject::SetVertexAttribute( DWORD unique_id \x2c MQ_VERTEX_ATTRIBUTE_TYPE type );
void MQObject::GetVertexAttribute( DWORD unique_id \x2c MQ_VERTEX_ATTRIBUTE_TYPE type \x2c int index \x2c void* );
この方法は該当するプラグインを入れてないメタセコイア環境を行き来しても
データが適切に処理される事が魅力です。
どの方法もメリット、デメリットがあるのでどの方法が良いのかは一概に
言えないのですが私は「3」が一番良いかな?と思います。この辺はも少し
他のプラグイン作者さんの意見を聞いてMizunoさんがご判断するのが良いか
と思います。