Indice Generale Struttura Gerarchica


"Viaggio nel Sistema Solare"

NET_ECL.WRL
Il file NET_ECL.WRL definisce la struttura gerarchica di Nettuno all'interno del sistema planetario, anche se la struttura vera e propria del pianeta e' memorizzata all'interno del file NETTUNO.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 NET_ECL.WRL

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

DEF Nettuno Transform {
  children [
    Inline {
      url "nettuno.wrl"
    }
    DEF AsseNettuno Transform {
      scale    397.6 397.6 397.6
      rotation 0 0 1  0.52
      translation -20890 0 0
      children [
        Shape {
          appearance Appearance {
            material Material {
              diffuseColor 0.1 0.1 0.1
            }
          }
          geometry Cylinder {
            height 2.4
            radius 0.1
          }
        }
        DEF NettunoPoloNord Transform {
          translation 0 1.45 0
          children [
            DEF NettunoNordSensor TouchSensor {}
            Shape {
              appearance Sony_Appearance {
                description "Stop & Info"
                material Material {
                  emissiveColor 0 0 1
                }
              }
              geometry Cone {
                bottomRadius 0.1
                height       0.5
              }
            }
            DEF NettunoAudio Transform {
              children [
                DEF NettunoNordSound Sound {
                  source DEF NettunoNordClip AudioClip {
                    description "NETTUNO   Diametro: 49.700 Km   Distanza dal SOLE: 4.499 MKm   Periodo di rotazione: 15h50m   Periodo di rivoluzione: 164.8 anni   Inclinazione sul piano dell'eclittica: 30ø"
                    url "..\..\sounds\nettuno.wav"
                  }
                }
              ]
            }
          ]
        }
        DEF NettunoPoloSud Transform {
          rotation    0 0 1  3.14
          translation 0 -1.45 0
          children [
            DEF NettunoSudSensor TouchSensor {}
            Shape {
              appearance Sony_Appearance {
                description "Start"
                material Material {
                  emissiveColor 1 0 0
                }
              }
              geometry Cone {
                bottomRadius 0.1
                height       0.5
              }
            }
          ]
        }
      ]
    }
  ]
}

DEF NettunoTime TimeSensor {
    cycleInterval 683.4
    loop TRUE
    stopTime -1
}

DEF NettunoRotation 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 NettunoTime.fraction_changed  TO NettunoRotation.set_fraction
ROUTE NettunoRotation.value_changed TO Nettuno.set_rotation
ROUTE NettunoNordSensor.touchTime   TO NettunoTime.set_stopTime
ROUTE NettunoNordSensor.touchTime   TO NettunoNordClip.set_startTime
ROUTE NettunoSudSensor.touchTime    TO NettunoTime.set_startTime