7.6 – Sensores
A fim de possibilitar a interação do usuário com a cena, existem nós especiais chamados sensores.
Estes nós, além de campos (fields), possuem, em geral, eventos (events).
Basicamente, os sensores reagem a algum evento, o qual, por sua vez, indica que algo aconteceu, como por exemplo, que o valor de algum campo foi alterado, o mouse foi clicado ou simplesmente que transcorreu um certo período de tempo.
Os nós sensores referem-se ou monitoram as geometrias definidas como children do nó que também é seu "pai" (via de regra, um nó Group).
Os nós sensores são listados a seguir.
7.6.1 – Anchor
Anchor {
eventIn MFNode addChildren
eventIn MFNode removeChildren
exposedField MFNode children []
exposedField SFString description ""
exposedField MFString parameter []
exposedField MFString url []
field SFVec3f bboxCenter 0 0 0
field SFVec3f bboxSize -1 -1 -1
}
Campos |
Descrição |
|
children |
objetos, na cena, que contém hiperlinks para outros arquivos (os quais foram especificados no campo url ). Na maioria dos browsers, um click num dos objetos definido em children , faz com que o arquivo especificado seja carregado. |
|
description |
prompt que o browser pode mostrar na tela em vez de ou em adição a URL. |
|
parameter |
informação adicional para o browser VRML ou HTML. Esta informação corresponde a um string na forma keyword=value. |
|
url |
especifica a URL dos arquivos a serem carregados. Caso várias URLs sejam especificadas, estas são listadas em ordem decrescente de prioridade, sendo que o browser carrega o primeiro arquivo que ele encontrar. |
|
bboxCenter |
centro da área retangular hipotética que circunda os objetos especificados em children no nó Anchor |
|
bboxSize |
dimensões em x , y e z da área retangular hipotética que circunda os objetos especificados em children no nó Anchor |
|
Eventos |
eventIn MFNode |
|
addChildren |
adiciona o nó especificado na lista de objetos em children do nó Anchor . Caso este nó já exista, a nova inclusão é ignorada |
|
removeChildren |
remove o nó especificado da lista de objetos em children do nó Anchor . Caso este nó não exista, a remoção é ignorada |
Este nó provê "links" para outras cenas, páginas HTML ou mesmo para arquivos de som ou imagem localizados em qualquer local na Web. Caso se especifique um arquivo VRMl, este substituirá a cena corrente.
O arquivo para o qual o link aponta é especificado no campo url .
Este arquivo tanto pode ser externo como local.
No campo children , são definidos os objetos que, ao serem clicados pelo usuário, ativam o link.
Pode-se também, prover uma descrição para o link, bastando preencher o campo description ; esta descrição é, então, visualizada sempre que o usuário mover o cursor sobre o(s) objeto(s) especificados no campo children.
Exemplo 01 do nó Anchor
Anchor {
children [
Transform {
translation 0 0 0
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 1.0 0.0 0.0
}
}
geometry Box { }
}
]
}
]
url ["Anchor02.wrl"]
}
Exemplo 02 do nó Anchor
Anchor {
children [
DEF Bola Transform {
children Shape {
appearance Appearance {
material Material {
diffuseColor 1 0 0
}
}
geometry Sphere {
radius 2
}
}
}
DEF TS TimeSensor {
loop TRUE
cycleInterval 10
}
DEF SI PositionInterpolator {
key[ 0 .25 .50 0.75 1 ]
keyValue [ 1 1 1 2 1 1 3 1 1 2 1 1 1 1 1 ]
}
]
url ["Anchor03.wrl"]
}
ROUTE TS.fraction_changed TO SI.set_fraction
ROUTE SI.value_changed TO Bola.set_scale
Exemplo 03 do nó Anchor
Transform {
children [
DEF Dado Shape {
geometry Box {
size 3.01 3.01 3.01
}
}
DEF Dado1 Shape {
appearance Appearance {
texture ImageTexture {
url "Dado01.JPG"
}
}
geometry Box {
size 3 3 3
}
}
DEF Dado2 Shape {
appearance Appearance {
texture ImageTexture {
url "Dado02.JPG"
}
}
geometry Box {
size 3 3 3
}
}
DEF Dado3 Shape {
appearance Appearance {
texture ImageTexture {
url "Dado03.JPG"
}
}
geometry Box {
size 3 3 3
}
}
DEF Dado4 Shape {
appearance Appearance {
texture ImageTexture {
url "Dado04.JPG"
}
}
geometry Box {
size 3 3 3
}
}
DEF Dado5 Shape {
appearance Appearance {
texture ImageTexture {
url "Dado05.JPG"
}
}
geometry Box {
size 3 3 3
}
}
DEF Dado6 Shape {
appearance Appearance {
texture ImageTexture {
url "Dado06.JPG"
}
}
geometry Box {
size 3 3 3
}
}
]
}
Anchor {
children [
Transform {
translation 0.02 0 0
children USE Dado1
}
]
url "#PVista2"
}
Anchor {
children [
Transform {
translation 0 0.02 0
children USE Dado2
}
]
url "#PVista3"
}
Anchor {
children [
Transform {
translation 0 0 0.02
children USE Dado3
}
]
url "#PVista4"
}
Anchor {
children [
Transform {
translation -0.02 0 0
children USE Dado4
}
]
url "#PVista5"
}
Anchor {
children [
Transform {
translation 0 -0.02 0
children USE Dado5
}
]
url "#PVista6"
}
Anchor {
children [
Transform {
translation 0 0 -0.02
children USE Dado6
}
]
url "#PVista1"
}
DEF PVista1 Viewpoint{
position 10 0 0
orientation 0 1 0 1.5708
}
DEF PVista2 Viewpoint{
position 0 10 0
orientation 1 0 0 -1.5708
}
DEF PVista3 Viewpoint{
position 0 0 10
# orientation 1 0 0 -1.5708
}
DEF PVista4 Viewpoint{
position -10 0 0
orientation 0 1 0 -1.5708
}
DEF PVista5 Viewpoint{
position 0 -10 0
orientation 1 0 0 1.5708
}
DEF PVista6 Viewpoint{
position 0 0 -10
orientation 0 1 0 3.1416
}