Si tratta di 4 nodi vincolabili: Background, Fog, NavigationInfo, Viewpoint.
In ogni momento solo uno, per ogni categoria, è attivo sulla scena.
I campi evento
eventIn SFBool set_bind eventOut SFBool isBound
permettono di interagire con questi nodi.
Background
Background { eventIn SFBool set_bind exposedField MFFloat groundAngle [] # [0, PI/2] exposedField MFColor groundColor [] # [0, 1] exposedField MFString backUrl [] exposedField MFString bottomUrl [] exposedField MFString frontUrl [] exposedField MFString leftUrl [] exposedField MFString rightUrl [] exposedField MFString topUrl [] exposedField MFFloat skyAngle [] # [0, PI] exposedField MFColor skyColor 0 0 0 # [0, 1] eventOut SFBool isBound }
…
Fog
…
NavigationInfo
NavigationInfo { eventIn SFBool set_bind exposedField MFFloat avatarSize [0.25, 1.6, 0.75] # [0, ...) exposedField SFBool headlight TRUE exposedField SFFloat speed 1.0 # [0, ...) exposedField MFString type ["WALK", "ANY"] exposedField SFFloat visibilityLimit 0.0 # [0, ...) eventOut SFBool isBound }
Il nodo specifica le caratteristiche fisiche del visitatore virtuale, avatar, che si muove nel mondo:
- speed, velocità (in m/s) di movimento
- headLight, è accesa o meno (TRUE/FALSE) la luce sul casco…
- type, un elenco di modalità di movimento (la prima riconosciuta è attiva, le successive sono disponibili)
- ANY, è possibile una modalità diversa da quella iniziale
- NONE, non è possibile…
- WALK, se la scena possiede un “terreno” (sul piano XZ) il movimento avverrà su di esso in modo naturale
- FLY, non è presente la “gravità”
- EXAMINE, è possibile studiare singoli oggetti ruotandoli o girandogli intorno
- avatarSize, specifica le dimensioni fisiche dell’avatar tramite tre parametri:
- quanto può avvicinarsi agli oggetti senza provocare una collisione (se prevista)
- l’altezza dal terreno alla quale si trovano gli “occhi”
- l’altezza massima dello scalino che può essere superato
- visibilityLimit, gli oggetti a distanza superiore a quella specificata non saranno renderizzati (aumenta la velocità); per disabilitarlo si usa 0.0
Viewpoint
Viewpoint { eventIn SFBool set_bind exposedField SFFloat fieldOfView 0.785398 # (0, PI) exposedField SFBool jump TRUE exposedField SFRotation orientation 0 0 1 0 # [-1, 1], (-..., ...) exposedField SFVec3f position 0 0 10 # (-..., ...) field SFString description "" eventOut SFTime bindTime eventOut SFBool isBound }
…