Matemática e Computação
 

Mensagens
Não te abandones em lugares onde a luz da tua harmonia não esteja presente.

 

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
}