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

[Java3Djp:00203] Re: Java3Dインストール日記(WindowsNT)



◆『世界各国経済情報ファイル』「The World 98 CD-ROM」◆=========
      
     ★ 世界各国の経済・地理・社会の様々なデータを収録!
         ★ コピー&ペースト、ダウンロード機能でとっても便利!!
 
 <<節分特別セール 定価 6,800円 → 4,800円(税、送料込み)>>
   お問い合わせ先:日本データベース開発(株) kanzaki@xxxxxxxxxx 
============== http://www.ndk.co.jp/06SUBM/saisin.html ==============

>> \jdk1.2\demo\java3d\PickTest 以下のソースがこれをやっています。
>> 私もこれを調査中です。
>お願いします!!
>私もPickTestを見ているのですが、マウスの動作をとるにはPicking系とMouse系
>(\jdk1.2\java3d-utils-src.jar)というような2つがあると考えて良いのでしょうか?

先週ずっとソースを読んでいたのですが、いちおうこのように整理しました。

com.sun.j3d.utils.behavior.mouse パッケージのクラスですが、
コンストラクターで与えられた TransformGroup を操作します。

これに対して、com.sun.j3d.utils.behavior.picking パッケージのクラスは、
マウスでポイントした座標に一番近い TransformGroup をピックし、
そのピックした TransformGroup を操作します。

サンプルの PickTest 配下のソースでは、
com.sun.j3d.utils.behavior.picking パッケージのクラスを使って、
別々のモデルをそれぞれ回転/移動/ズームさせることができます。

例えばシーン全体を操作したいなら、すべてのモデルの親になる TransformGroup を
com.sun.j3d.utils.behavior.mouse パッケージのクラスのコンストラクターに
与えて、シーン全体にマウス操作を適用すると良いと思います。

モデルがいくつもあって、それぞれ別々に操作したいなら
com.sun.j3d.utils.behavior.picking パッケージのクラスを使うと良いでしょう。

もちろん自分で javax.media.j3d.Behavior を継承したクラスを書いても良いです。

(私はこれがまだ良く分かっていなくて、
自分で書いたマウス操作の Behavior クラスでは processStimulus() が
1回しか呼ばれなかったりして、きのうは夜遅くまで四苦八苦していました。
けっきょく Behavior ではなく、普通の MouseListener を使うコードを書いて
納品してしまいました^^;)
------------------------------------------------------------------
遠藤靖之 (えんどう やすゆき) <yasuyuki@xxxxxxxxxx>
http://www.freepage.total.co.jp/jfriends/ (Java互助会ホームページ)
株式会社タイムインターメディア 情報通信サービス部 TEL 03-5362-9009
〒162-0065 新宿区住吉町3-11 新宿スパイアビル      FAX 03-5362-9008