Original Spec|
Sample
定義
VisibilitySensor {
exposedField SFVec3f center 0 0 0 # (-,)
exposedField SFBool enabled TRUE
exposedField SFVec3f size 0 0 0 # [0,)
eventOut SFTime enterTime
eventOut SFTime exitTime
eventOut SFBool isActive
}
ある位置(範囲)がブラウザ上で見えているかどうかを判定する
センサーです。
- center
- 検知範囲の中心。範囲は直方体で大きさの設定も可能
- enabled
- 検知を行うかどうかを設定
- size
- 検知範囲の大きさ
- enterTime
- 範囲がブラウザ上で見え始めた時間
- exitTime
- 範囲がブラウザ上で見え終わった時間
- isActive
- 見え始めに真、見え終りに偽を送出
サンプル
左の箱が見えるかどうかで右の円錐の色が変化します。
#VRML V2.0 utf8
Transform {
children [
Shape { geometry Box {size .3 .3 .3} }
DEF VSensor VisibilitySensor {}
]
translation -3 0 0
}
Shape {
geometry Cone {}
appearance Appearance {material DEF Mat Material {}}
}
DEF Polator ColorInterpolator {
key [0, 1]
keyValue [0 0 1 , 1 0 0]
}
DEF Polator2 ColorInterpolator {
key [0, 1]
keyValue [1 0 0 , 0 0 1]
}
DEF Sensor TimeSensor {}
DEF Sensor2 TimeSensor {}
ROUTE VSensor.enterTime TO Sensor.startTime
ROUTE VSensor.exitTime TO Sensor2.startTime
ROUTE Sensor.fraction_changed TO Polator.set_fraction
ROUTE Polator.value_changed TO Mat.set_diffuseColor
ROUTE Sensor2.fraction_changed TO Polator2.set_fraction
ROUTE Polator2.value_changed TO Mat.set_diffuseColor
DEF IN Viewpoint {
description "in"
}
DEF OUT Viewpoint {
description "out"
orientation 0 1 0 -.4
}