NavigationInfo节点

NavigationInfo {

avatarSize [0.25 1.6 0.75] # exposed field MFFloat
headlight TRUE # exposed field SFFBool
speed 1.0 # exposed field SFFloat
type "walk" # exposed field MFString
# "WALK","EXAMINE"
# "FLY","NONE"
visibilityLimit 0.0 # exposed field SFFloat
}
 
avatarSize 指定一些距离参数,这些参数决定了在考虑碰撞检测和视点随地形起伏时的用户可移动范围。该域的第一个值是碰撞被探测出以前用户位置与一个碰撞几何体(由Collision节点说明)间的允许距离;第二个值是视点与地面间应保持的高度;第三个值是视点可以跨过的最高障碍物的高度。
 
headlight 指明是否浏览器要将观察者的头灯打开。头灯是一束指向用户正在观看的方向有向光。经过预先计算过光照(例如,辐射度方法)的场景,可以关掉头灯。头灯的强度值为1,颜色为(1,1,1)。
 
speed 设定观察者在场景中畅游的速度,单位是米/秒。由于大多数浏览器都提供一种机制使巡行速度快些或慢些,所以该值只是一个缺省值或平均值。当采用EXAMINE导航方式时,该域值能控制观察者左右滑动或推进的速度。
 
type 指定观察者使用的导航类型。类型是“WALK”、“EXAMINE”、“FLY”和“NONE”。大多数浏览器提供了一个能使观察者选择不同导航类型的单,以取代该域指定的类型。
 
visibilityLimit 设定用户能够看到的最远距离。浏览器会把在这一界限以外的对象裁剪掉,使它们和背景同色。缺省值0.0表明是无限的可视界限。
 
事件
set_bind eventIn    SFBool
这个事件中TRUE表明激活该NavigationInfo节点使之成为当前NavigationInfo节点。
 
isBound eventOut    SFBool
表明这是激活的NavigationInfo节点(TRUE)还是非激活节点(FALSE)。
 
说明
    Navigationlnfo节点包括描述观察者和观察模型的物理特征的信息。
    VRML文件中的第一个Navigationlnfo节点是最基本的NavigationInfo节点,文件中的后续NavigationInfo节点在接到set_bind事件前被忽略。当前的Navigationlnfo。节点不论它原先位于文件何处,都被认为是当前Viewpoint节点的子节点。改变Viewpoint节点的scale域会影响NavigationInfo节点的speed、avatarSize和visibility域。
    不同的导航类型适用于不同的情况,一个WALK观察者就像行走在虚拟世界,要受限于所在地形并受重力的影响。一个 FLY观察者除不受地形和重力影响之外类似于 WALK观察者,像在空中飞行。EXAMINE观察类型可用来观察单个物体,通常提供转动或把它移近或移远的能力。NONE类型不给观察者提供任何专项功能,用户只能用场景提供的控制进行浏览。有些浏览器也能提供其它的导航类型。
    浏览器保持有一个NavigationInfo节点栈。栈项节点即是当前激活的Navigationlnfo节点。为了在栈项加一个 NavigationInfo节点,可以向欲加入节点的set_bind输入事件请求发送一个TRUE值,以激活该Navigationlnfo节点。如果将FALSE赋给set_bind,则把栈顶的Navigationlnfo节点移去。栈中下一个节点会自动成为当前NavigationlnfO节点。如果栈为空,使用缺省值Navigationlnfo节点。

主页 节点说明 来信