Indice Generale Struttura Gerarchica


"Viaggio nel Sistema Solare"

MER_ECL.WRL
Il file MER_ECL.WRL definisce la struttura gerarchica di Mercurio all'interno del sistema planetario, anche se la struttura vera e propria del pianeta e' memorizzata all'interno del file MERCURIO.WRL al quale si rimanda. Tale struttura viene importata al livello attuale tramite il nodo Inline.
L'asse di rotazione contiene due TouchSensor abbinati ai poli dell'asse: il sensore del polo Nord, una volta abilitato, causa l'arresto del moto di rivoluzione del pianeta attorno al Sole pur conservando quello di rotazione e genera degli eventi responsabili della visualizzazione di informazioni astronomiche del pianeta nonche' dell'avvio di un file sonoro contenente altre caratteristiche dello stesso. Il sensore del polo Sud e' preposto a consentire al pianeta la ripresa del proprio moto di rivoluzione, come se non fosse mai stato fermato.
Il moto di rivoluzione attorno al Sole viene simulato per mezzo del nodo OrientationInterpolator al quale vengono forniti tramite la dichiarazione di ROUTE degli eventi generati dal nodo TimeSensor preventivamente programmato, come ad esempio il set_rotation.

#VRML V2.0 utf8

#File MER_ECL.WRL

NavigationInfo {
  headlight FALSE
  speed 1
  type [ "WALK" ]
}

DEF Mercurio Transform {
  children [
    Inline {
      url "mercurio.wrl"
    }
    DEF AsseMercurio Transform {
      scale    38.4 38.4 38.4
      rotation 0 0 1  0.48
      translation 2180 0 0
      children [
        Shape {
          appearance Appearance {
            material Material {
              diffuseColor 0.1 0.1 0.1
            }
          }
          geometry Cylinder {
            height 2.4
            radius 0.1
          }
        }
        DEF MercurioPoloNord Transform {
          translation 0 1.45 0
          children [
            DEF MercurioNordSensor TouchSensor {}
            Shape {
              appearance Sony_Appearance {
                description "Stop & Info"
                material Material {
                  emissiveColor 0 0 1
                }
              }
              geometry Cone {
                bottomRadius 0.1
                height       0.5
              }
            }
            DEF MercurioAudio Transform {
              children [
                DEF MercurioNordSound Sound {
                  source DEF MercurioNordClip AudioClip {
                    description "MERCURIO   Diametro: 4.880 Km   Distanza dal SOLE: 57.9 MKm   Periodo di rotazione: 59 giorni   Periodo di rivoluzione: 88 giorni   Inclinazione sul piano dell'eclittica: 28ø"
                    url "..\..\sounds\mercurio.wav"
                  }
                }
              ]
            }
          ]
        }
        DEF MercurioPoloSud Transform {
          rotation    0 0 1  3.14
          translation 0 -1.45 0
          children [
            DEF MercurioSudSensor TouchSensor {}
            Shape {
              appearance Sony_Appearance {
                description "Start"
                material Material {
                  emissiveColor 1 0 0
                }
              }
              geometry Cone {
                bottomRadius 0.1
                height       0.5
              }
            }
          ]
        }
      ]
    }
  ]
}

DEF MercurioTime TimeSensor {
    cycleInterval 20
    loop TRUE
    stopTime -1
}

DEF MercurioRotation OrientationInterpolator {
  key [0, 0.25, 0.5, 0.75, 1]
  keyValue [
    0.0 1.0 0.0 0.0,
    0.0 1.0 0.0 1.57,
    0.0 1.0 0.0 3.14,
    0.0 1.0 0.0 4.71,
    0.0 1.0 0.0 6.28
  ]
}

ROUTE MercurioTime.fraction_changed  TO MercurioRotation.set_fraction
ROUTE MercurioRotation.value_changed TO Mercurio.set_rotation
ROUTE MercurioNordSensor.touchTime   TO MercurioTime.set_stopTime
ROUTE MercurioNordSensor.touchTime   TO MercurioNordClip.set_startTime
ROUTE MercurioSudSensor.touchTime    TO MercurioTime.set_startTime