メニュー2


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Mouse sensor


H3Dではマウス機能を備えたMouseSensorノードとインターフェースが提供されています。ここの例では、その内の4つのフィールドについて理解が必要です。
  • マウス左ボタンがクリックされればTrue、そうでなければFalseを返す   leftButton
  • マウス左ボタンがクリックされればTrue、そうでなければFalseを返す   rightButton
  • 上向きにホイールが動作すればイベントを送信   scrollUp
  • 下向きにホイールが動作すればイベントを送信   scrollDown
なお全てのフィールドについてはH3D::MouseSensor class reference pageを参照してください

学習目的
  • MouseSensorノードの利用

シーン

赤い球形を表示し、クリックで色の変更、ホイールの動作で透明度の変更を行う例を作成します。

<!!-- the X3D file -->
<Group>
  <Group DEF="G" />
  <PythonScript url="mouse.py">
    <Group USE="G" containerField="references" />
  </PythonScript>
</Group>

この例ではPythonを使ってシーンオブジェクトを描画するため、最小限のコードで書かれています。
<Group>に含まれるのは、Groupノードと、参照を行うPytonScriptです。後に、このスクリプトを利用して、全てのノードに参照を行います。


# mouse.py
from H3DInterface import *

root, d = createX3DNodeFromString("\
          <Group> \
            <NavigationInfo type=\"NONE\" /> \
            <Shape> \
              <Appearance> \
                <Material DEF=\"M\" diffuseColor=\"1 0 0\"/> \
              </Appearance> \
              <Sphere radius=\"0.1\"/> \
            </Shape> \
            <MouseSensor DEF=\"S\" /> \
          </Group>");

references.getValue()[0].addChildren.setValue( [root] )
trans = d['M'].transparency
color = d['M'].diffuseColor
mouse = d['S']

mouse.pyではcreateX3DNodeFromString関数を利用しています。