chinavideoonline.com
中国视频在线(www.chinavideoonline.com)致力于收集各种流媒体相关的技术资料,以及流媒体常识和应用方案,力求为广大朋友了解学习和使用流媒体技术提供帮助

VRML节点说明(T)

作者/来源:未知
Text节点

Text {
 
string [] # exposed field MFString
fontStyle NULL # exposed field SFNode
maxExtent 0.0 # exposed field SFFloat
length [] # exposed field MFFloat
}  


域  
string 要显示的文本串,用UTF-8编码。
fontStyle 包括说明如何绘制文本的FontStyle节点。
maxExtent 在该节点文本的任意一行的主要方向上的最大范围,必须大于等于0。如果FontStyle节点的horizonal域是TRUE,则主要方向是水平方向,否则是垂直方向。取值0表示字符串可为任意长度。

length 单个文本串的预期长度。0表示可谓任意长度。

说明
Text节点绘出特殊风格的一个或多个字符串。如果给出多于一个的字符串,则每个串单独占一行,行距由FontStyle节点决定。
浏览器决定局部坐标系主要方向上字符串的范围。如果最长的字符串超过maxExtent的范围,它将被缩小到maxExtent的长度范围内;其它的字符串相应缩小同样的程度。
每一个字符串有一个相应的length值,表明设定的字符串长度。浏览器将字符串拉长或压缩到所需长度。缺省值被当作0。
对Text节点不执行碰撞检查。


TextureCoordinate节点

TextureCoordinate {  
point []
# exposed field MFVec2f
}  
 

point 以二维(s,t)形式给出的一组纹理坐标点,它们一般与IndexedFaceSet或ElevationGrid中的顶点构成对应关系。
 
说明
  这个节点定义了一组二维坐标,用于完成纹理和几何表面顶点间的映射。它通常用在IndexedFaceSet和ElevationGrid节点的texCoord域中。
纹理图参数值沿纹理图像从0到1变化。先确定水平坐标s,然后确定垂直坐标t。
在point域定义的TextureCoordinate值可以在-infinity和+infinity之间变化。如果纹理在某一方向上重复(s或t),那么纹理坐标c映射到沿指定方向有n个像素的纹理图上;
location=(c - floor(c))*n
如果纹理没有重复,c被剪裁到0--1的范围内:
location=max(0,min(1,c))*n


TextureTransform节点

TextureTransform {  
translation 0 0 # exposed field SFVec2f
rotation 0 # exposed field SFFloat
rcale 1 1 # exposed field SFVec2f
center 0 0 # exposed field SFVec2f
}  

域    
translation
指定一个平移。
rotation 指定一个以center域中定义的物体中心为原点的旋转(弧度)。
scale 指定一个以center域中定义的物体中心为原点的缩放。两个轴向的缩放程度可以不同。
center 指定一个缩放和旋转的中心。

说明
TextureTransform 节点定义了对纹理坐标的二维变换。这个节点只在Appearance节点的textureTransf orm域使用,它影响纹理映射到相关几何体节点表面的方式。这个节点中的操作的顺序是缩放、旋转、平移 。

TimeSensor节点

TimeSensor {  
cycleInterval 1 # exposed field SFTime
enabled TRUE # exposed field SFBool
loop FALSE # exposed field SFBool
stsrtTime 0 # exposed field SFTime
stopTime 0 # exposed field SFTime
}

 

cycleInterval 每个周期的长度,以秒为单位,取值大于0。
enabled 若为TRUE,当条件成立时产生时间相关事件;若为FALSE,在任何条件下都不会产生时间相关事件。无论enabled为TRUE或FALSE,通域的 set_事件都被处理并产生_changed事件。
loop 表明时间传感器是无限循环,还是在一个周期后被终止。
stsrtTime 开始产生事件的时间。
stopTime 终止产生事件的时间。其值若小于等于起始时间,则被忽略。

事件
isActive eventOut SFBool
表明时间传感器当前是否在运行。若在运行,则返回TRUE;若处于停止状态,则返回FALSE。
cycleTime eventOut SFTime
在每个周期开始时,返回当前时间。
fraction_changed eventOut SFloat
当前周期的完成比。从0(周期开始)到1(周期结束)。
time eventOut SFTime
从格林威治时间1970年1月1日子时(午夜12点)至今所经过的秒数。

说明
随着时间的推移,TimeSensor节点产生事件。它能被用来生成动画(通常与插值器一起),能在一个指定时间引发一个动作或者以固定时间间隔产生事件。
通常情况下,时间传感器的starTime被另一个对用户动作作串反应的传感器或脚本传来的时间事件设置。在startTime设定的时刻以前,时间传感器不做任何工作。在该时刻到来时,它产生值为 TRUE的 isActive事件,并开始产生 time、fraction_ changed和cycleTime事件。
time事件是总保持有一个当前时刻值的连续发生的事件。而产生的其它与时间相关的事件是周期性发生的事件。当loop为FALSE时,时间传感器仅仅运行cycleInterval中设置的一个时间周期(或在第一个周期完成前到达stopTime中设定的时间);而当loop为TRUE时,时间传感器不断地运行,直到到达stopTime中设定的时间或 enabled被设置为FALSE。在每个周期的开始,时间传感器发出fractdri_changed事件(值为0)和cycleTime事件(值为当前时间)。在每一个周期中,当浏览器允许传感器产生一个事件时(通常每帧一次),fraction_
changed的值从0增加到1,表明当前周期已完成多少。在fraction_changed值为1时,当前周期结束,新的周期开始。
cycleTime事件仅仅在周期开始时产生。若要生成一个~次性事件如闹钟,则应把start_Time设置为期望时间,把loop设置为FALSE。这样在startTime到来时,该时间传感器只运行一个周期。
在产生时间相关事件时,时间传感器忽略set_cycleInterval和set_startTime事件。cycleInterval和startTime域的值将不会发生变化,而且不会产生 cycleInterval_changed和startTime_changed事件。若想要重启一个时间传感器,应该首先发送一个与当前时间值相同的set_stopTime事件来停止当前的时间传感器,再发送一个set_startTime事件。
当一个活动的时间传感器收到一个set_stopTime事件时,若值大于startTime的值但小于当前的时间值,则它将把stopTime设定为指定值。但像stopTime中设置的时间是当前时间那样,发出结束事件。若set_stopTime事件值小于等于startTime的值,则这一事件将被忽略。
设置loop为TRUE时,时间传感器在startTime到来时开始产生事件,事件将不断地产生或在stopTime到来时停止(如果stopTime大于startTime)。如果希望当浏览器加载一个环境时时间传感器立刻被激活,应将loop设置为TRUE,让startTime和stopTime保持缺省值(或将它们设置成stopTime小于等于startTime的任何值)。
当时间传感器运行时将loop从TRUE改变为FALSE,传感器将在当前周期结束时或者stopTime到来时停止运行(取决于这两个事件谁先发生)。
时间传感器不保证以某种频率产生时间相关事件,但是大多数浏览器在绘制动画的每一帧时,产生这些事件。


TouchSensor节点

TouchSensor {
 
enabled
TRUE
# exposed field SFBool

}
 


enabled 表明此传感器是否对定点输入设备做出反应。


事件
isOver eventOut SFBool
表明定点设备当前是否正指向传感器的兄弟几何体(无论是否有键被按下)。

isActive eventOut SFBool
表明是否定点设备的键正在被按下。

hitPoint_changed eventOut SFVec3f
最近在兄弟几何体表面释放键的位置。

hitNormal_changed eventOut SFVec3f
hitPoint_changed所指定点的法向量。

hitTexCoord_changed eventOut SFVec2f
hitPoing_changed所指定点的纹理坐标。
touchTime eventOut SFTime
定点设备的键完成一次点动的时间。

说明
TouchSensor(触动传感器)节点产生基于定点输入设备(通常是鼠标)的事件。这些事件表明用户是否正在点选某个几何体和用户在什么地方,以及在什么时候按了定点设备的键。
触动传感器监视的几何体是传感器的兄弟几何体传感器父组节点的所有子节点。
若定点设备未指向传感器的兄弟几何体,而用户开始将定点设备移到传感器的兄弟几何体时,传感器将产生一个isOver事件,并将其值设置为TRUE;相反,若定点设备已经指向传感器的兄弟几何体,此时用户将定点设备移出传感器的兄弟几何体,传感器将产生一个isOver事件,并将其值设置为FALSE。
当用户将定点设备从几何体的一点移动到另一点时,传感器将发送一系列事件: hitPoint_changed、hitNormal_changed、hitTexCoord_changed,分别表明用户所指的位置、该点的法向量和纹理坐标。
当用户点击被TouchSensor监视的对象时,传感器将产生值为TRUE的isActive事件;而当用户释放定点设备的键时,传感器将产生isActive为FALSE的事件。
若用户在指向几何体时按下鼠标键,然后在仍然指向这个几何体(或又回到这个几何体)时释放鼠标键,传感器将要发送一个touchTime事件,表明键被释放的时间。可以使用这一事件来模拟许多常用的用户接口(如只有在用户点击和释放定点设备按键时才产生的动作)。
当一个触动传感器正处理事件时,其它定点设备传感器不会产生事件。


Transform节点

Transform {
 
bboxCenter 0 0 0 # SFVec3f
bboxSize -1 -1 -1 # SFVec3f
translation 0 0 0 # exposed field SFVec3f
rotation 0 0 1 0 # exposed field SFRotation
scale 1 1 1 # exposed field SFVec3f
scaleOrientation 0 0 1 0 # exposed field SFRotation
center 0 0 0 # exposed field SFVec3f
children [ ] # exposed field MFNode
}
 


bboxCenter 围绕该变换子项的包围盒的中心。
bboxSize 包围盒在x、y、z方向的值,缺省值是无包围盒。
translation 指定变换量。
rotation 给定旋转的轴和角度(以弧度为单位)。
scale 指定缩放比例,各轴向缩放比值可以不相等。
scaleOrientation 指定缩放和旋转操作的轴向。
center 指定缩放和旋转操作的原点。
children 受该节点指定的变换影响的子节点。

事件
addChildren eventIn MFNode
将指定节点加入该组的子项列表中。
removeChildren eventIn MFNode
将指定节点从该组子项列表中删除。

说明
Transform是为其子项定义坐标系统的组节点。
Transform定义的三维变换按如下步骤执行:
1、对任意一点的缩放,各轴向缩放比值可以不相等;
2、对任意一点和任意轴的旋转;
3、平移。
发表评论:
昵称 *

邮箱 *

评论* (最长不超过500汉字)