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

[Java3Djp:01548] pick で例外が発生してしまいます。





いつも質問ばかりで申し訳ありません。周りにソフトをわかる人が誰もいない
ので、このMLが頼りです。
ここ数日はまっているので助けてください。

いままでMouseRotateでぐるぐる回していたのをpickでまわすように変更して
いるのですが、実行時に例外が発生してうまく動きません。


MLにソースを載せるには長いですし、何より汚いので(^^;要約すると以下のツ
リーとなっています。

BranchGroup root
 +PickRotateBehavior rotetor
 +TransformGroup trans  <----------以下をまとめてまわしたい。
  +Shape3D 座標軸
  +OrientedShape3D 座標軸ラベル
  +Shape3D プロットデータ(PointArray)

実行するとマウスをクリックした時点で
Exception occurred during Behavior execution:
javax.media.j3d.CapabilityNotSetException: Shape3D: no capability to
allow intersect
 at javax.media.j3d.Shape3D.intersect(Shape3D.java:454)
 at
com.sun.j3d.utils.behaviors.picking.PickObject.pickGeomAllSorted(PickO
bject.java:527)
 at
com.sun.j3d.utils.behaviors.picking.PickObject.pickGeomClosest(PickObj
ect.java:559)
 at
com.sun.j3d.utils.behaviors.picking.PickObject.pickClosest(PickObject.
java:460)
 at
com.sun.j3d.utils.behaviors.picking.PickRotateBehavior.updateScene(Pic
kRotateBehavior.java:146)
 at
com.sun.j3d.utils.behaviors.picking.PickMouseBehavior.processStimulus(
PickMouseBehavior.java, Compiled Code)
 at javax.media.j3d.BehaviorScheduler.doWork(BehaviorScheduler.java,
Compiled Code)
 at javax.media.j3d.J3dThread.run(J3dThread.java:256)

が発生してしまいます。setCapabilityでtransには、ALLOW_TRANSFORM_READ、
ALLOW_TRANSFORM_WRITE、ENABLE_PICK_REPORTINGを設定。Shape3Dに
はALLOW_GEOMETRY_READを設定、GeometryにはALLOW_INTERSECTを設定していま
す。

色々といじってはいるのですがさっぱり直らずに、どこをどう直してよいやら
検討がつかずに途方にくれています。
なにかアドバイスをお願いいたします。



ところで、パッケージcom.sun.j3d.utils.behaviors.pickingは推奨されてい
ません。という警告が出てしまいますが、代替手段はあるのでしょうか?(ド
キュメントは見ましたが、明記されていない?)



---
はま
E-Mail Address:h-hama@xxxxxxxxxxxxxxx