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

[Java3Djp:00691] Re: BranchGroupへのaddChildについて



---広告---------------------------------------------------------------
頭髪に悩んでいる男性に、ロゲイン!→ http://www.windy.co.jp/CS857/
----------------------------------------------------------------------
東大医学部生の家庭教師派遣 TACT→ http://www12.big.or.jp/~realtact/
----------------------------------------------------------------------
田園都市線・新玉川線沿線企業・店舗様専用ホームページ作成・運営サービス
                                  → http://den-en.xjam.net/service
----------------------------------------------------------------------

岸田です。

Teruhisa Abe wrote:
> フレームの中心にCanvas3Dを配置し、フレームの下側にボタンを置いて、
> ボタンを押されたときにオブジェクトをBranchGroupに追加するプログラムを作りま
> した。
> ボタンが押されたときの関数を以下のように作ったのですが、
> javax.media.j3d.RestrictedAccessException: Group: only a BranchGroup node
> may be added
> というエラーメッセージが出てしまいます。

このエラーメッセージの意味は BranchGroup ノード だけが Group ノードに
add 
することができるということです。

> BranchGroupはobjRootという名前で広域変数として作られており、
> setCapabilityメソッドによってBranchGroup.ALLOW_CHILDREN_EXTENDをセットしてま
> す。

add されてしまうほうは BranchGroup でなくてもいいです。add するほうが
BranchGroup 
である必要があります。

> 色の変化やオブジェクトの移動・回転などは出来たのですが、追加だけはどうもうま
> く行きません。
> すいませんが、BranchGroupへのオブジェクトの追加について、
> どなたか教えていただけないでしょうか。
> 
> public void actionPerformed(ActionEvent e) {
>     if (e.getSource() == button) {
>         Transform3D t3d = new Transform3D();
>         t3d.set(new Vector3f((float)(Math.random() * 1.0),
>                                      (float)(Math.random() * 1.0),
>                                      (float)(Math.random() * 1.0));
>         Transform transform = new Transform(t3d);
>         transform.addChild(new ColorCube(0.4));
>         objRoot.addChild(transform);
>     }
> }

この transform オブジェクトを objRoot でない BranchGroup に add しておい
て、
それを 目的の objRoot に add するということになると思います。

---
岸田ゆき枝@3D折り紙研究中?
yukie@xxxxxxxxxx