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

[Java3Djp:00112] Re: PickMouseBehavior について



前田です。

>もし同じであれば、「一定時間内にクリックされた同一座標」を判定して
>回避できるかもしれません。

これをどうのように実装しようかと PickMouseBehavior のソースを
眺めていたところ View 側の PickCanvas オブジェクトを生成する
ことで解決しました。

手順は次のとおりです。

1)PickMouseBehaviorから派生したクラスのコンストラクタで
  View側 の PickCanvas を作成する。

  public PickSignalBehavior(Canvas3D canvas, BranchGroup root, 
               BranchGroup view, Bounds bounds){
    super(canvas, root, bounds);
	pickView = new PickCanvas(canvas, view); //<-これ
	this.setSchedulingBounds(bounds);
	root.addChild(this);
  }

2)updateScene で View 側の Picking を優先する。

  public void updateScene(int xpos, int ypos) {
    if(!pickCheck(pickView, xpos, ypos)) {
      pickCheck(pickCanvas, xpos, ypos);
    }
  }

# 昨日「Java 3Dプログラミング・バイブル」が届きました。(^^;
# 週末に勉強させていただきます。


-- 
Makoto Maeda mailto:majin@xxxxxxxxxxxxxxxxxx