Original Spec|
Sample
定義
CylinderSensor {
exposedField SFBool autoOffset TRUE
exposedField SFFloat diskAngle 0.262 # (0,/2)
exposedField SFBool enabled TRUE
exposedField SFFloat maxAngle -1 # [-2,2]
exposedField SFFloat minAngle 0 # [-2,2]
exposedField SFFloat offset 0 # (-,)
eventOut SFBool isActive
eventOut SFRotation rotation_changed
eventOut SFVec3f trackPoint_changed
}
軸の定まった2次元の回転を検知します。物体を軸に対して横に
ドラッグしたとき有効になります。
- autoOffset
- 以前の検知状態を覚えるかどうかです。偽にするとマウスボタンを押す毎に
初期状態に戻ります。
- diskAngle
- 最初にマウスを動かした軸とこのセンサーの回転の軸がこれより小さい場合、
検知を開始すると仕様書に書いてあるように読めるのですが、例を直してもそのように
振る舞いません。申し訳ありませんが調査中です。
- enabled
- 有効・無効の設定
- maxAngle
- 検知する回転の最大角
- minAngle
- 検知する回転の最小角
- offset
- 初期(マウスボタンを押した時点)の角度
- isActive
- 検知をはじめた瞬間に真、終えた瞬間に偽を返す
- rotation_changed
- 検知された回転の変化
- trackPoint_changed
- 検知された位置の変化
サンプル
下の円柱をマウスで横にドラッグしてください。
#VRML V2.0 utf8
Transform {
children [
Shape {geometry Cylinder {}}
DEF Sensor CylinderSensor {}
]
}
DEF Obj Transform {
translation 0 2.2 0
scale .1 1 1
children [
Shape {geometry Box {}}
]
}
ROUTE Sensor.rotation_changed TO Obj.set_rotation