[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Java3Djp:00231] Re: 実行上のエラーについて



 えんどうです。

私の方もなかなか追試できないので、説明が概念的ですが、

>>  1. ピック対象の物体として TransformGroup、またはそれを継承した物体を
>>     シーングラフに追加する
>
>の部分がよくわからないのですが、これは一体どのようなことを指すのでしょうか?
>通常
>  private BranchGroup createSceneGraph() {
>    BranchGroup root = new BranchGroup();
>で以下のところにピッキングする対象のTransformGroupを設定していますが
>これとは別に設定をすると言うことなのでしょうか?

ピックされた物体を特定して、
その上位のTransformGroupを特定しても良い気がしてきました。

(BG) BranchGroup
 |
(TG) TransformGroup
 |
<S>  Shape3D

こんな構造のシーングラフなら、ピック対象の物体は Shape3D で良くて、
Shape3D が上位にある TransformGroup を「知って」いれば良いです。

 BranchGroup root = new BranchGroup();
 TransformGroup trans = new TransformGroup();
 // setCapabilityなどの処理
 root.addChild(trans);
 Shape3D shape = new Shape3D( /* 必要な引数をここに書く */);

 shape.setUserData(trans); // ユーザーデータとして、
                           // その物体の上位のTransformGroupをセットする

 trans.addChild(shape);

ピッキングで得た物体から、getUserDataメソッドで
物体の上位の TransformGroup を取得すれば良いでしょう。

-- 
ENDO Yasuyuki <yasuyuki@xxxxxxxxxxxx>
http://www.javaopen.org/~yasuyuki/ (Personal/Japanese Only)
http://www.javaopen.org/jfriends/ (Japanese Only)