CylinderSensor节点 |
||
CylinderSensor{ |
||
minAngle | 0 | # expected field SFFloat |
maxAngle | -1 | # expected field SFFloat |
enable | TRUE | # expected field SFFBool |
diskAngle | 0.262 | # expected field SFFloat |
offset | 0 | # expected field SFFloat |
autoOffset | TRUE | # expected field SFFBool |
} | ||
域 | ||
minAngle | 允许旋转的最小角度(旋转角小于此范围时,仍被钳制在这一范围内)。 | |
maxAngle | 允许旋转的最大角度(旋转角大于此范围时,仍被钳制在这一范围内)。 | |
enable | 指明传感器是否监控定点设备事件。若想关闭监控,可向它发送一个值为FALSE的set_value事件。 | |
diskAngle | 决定被监控对象的动作是象一个圆柱或象磁碟绕y轴旋转。若用户在圆柱轴附近点击,被监控对象的动作象磁碟转动,否则象圆柱一样转动。 | |
offset | 指出从初始方向转动被监控对象的角度值。 | |
autoOffset | 指出是否在每次拖动完成后将当前的方向角存入offset域,以达到跟踪当前方位的目的。如果autoOffset是FALSE,每当用户开始一个新的托动时,被拖动几何体恢复至最初的方位。 | |
事件 | ||
isActive | eventIn
SFBool 指出用户是否正在拖曳被监控的几何体。 |
|
trackPoint_changed | evevtOut SFVec3f 输出用户随时所指向的在圆柱或磁碟轨迹面上的轨迹的点。 |
|
rotation_changed | eventOut SFRotation 输出旋转角度。 |
|
说明 | ||
圆柱监控器节点把二维的拖曳输入(如拖曳鼠标)转变为三维空间中沿y轴的旋转。根据用户点击的位置(相当于传感器的y轴),CylinderSensor节点可以有两种相关行为,即象一个圆柱或象磁碟绕y轴旋转。 当用户移动鼠标至可感知几何体并按下按键时,浏览器产生一个绕监控器局部坐标系统y轴的虚拟圆柱,这个圆柱的底和测面大小的比例由diskAngle确定。可以把diskAngle看做是一个在虚拟圆柱内部的圆锥的顶角,圆锥的底面圆盘即为圆柱的顶面。 如果用户点中圆柱的顶或低面,拖曳动作就会被解释为和旋转一个平面圆盘一样。如果用户点中圆柱的侧面部分,拖曳动作就会被解释为旋转这个圆柱。如果仅仅对特殊的旋转范围有兴趣,可以通过设置minAngle和maxAngle的值把旋转限制在那一范围内。如果minAngle大于maxAngle,就没有任何限制了。 如果希望几何体在已旋转的基础上继续旋转,则设置autoOffset为TURE,否则设置为FALSE. 当圆柱监控器处于激活状态时(即当用户拖曳感知物体时),其它定点设备传感器不会作任何事件。 |