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

[Java3Djp:01933] Re: Java3D のピンキングによる物体の特定後に、物体の色変更と物体の消去の方法





えんどうです。

> さらに、特定した基本物体(点、線、球、シリンダ)の
> 1.色変更
> 2.消去
> する機能などを組み込みたいのですが方法が良くわかりません。

http://www.javaopen.org/j3dbook/firstbook/text/behavior.html

上記の「■■ピックされた物体を特定する」の例でいうと、

      picker.setupCallback( new SimplePickingCallback() {
        public void picked(int type, Node node) {
          // ここに処理を書く
        }
      });


この picked()メソッドの中に色変更、消去などの処理を書きます。

picked()の引数としてピックされた Node が渡されるので、
ピック対象として PickResult.PRIMITIVE を指定している場合

          Primitive primitive = (Primitive)node;

Primitive にキャストしておき、

> 1.色変更

  getAppearance() メソッドで Appearance を取得し、
  setMaterial()メソッド、setColoringAttributes() メソッドで
 マテリアルまたは色の属性を変更する

> 2.消去

 単に非表示にしたければ Switch を使用する
  ex.) http://www.javaopen.org/j3dbook/examples/#group

 本当に消去したければ物体が属する BranchGroup ごと
 シーングラフから削除する

という処理が考えられます。

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

------------------------------------------------------------------------
      クルマがいっぱい!! レースクイーンもいっぱい!?
   http://car.infoseek.co.jp/CarTop?pg=cartop.html&sv=KA&svx=971122