Indice Generale Struttura Gerarchica


"Viaggio nel Sistema Solare"

MARTE.WRL
Il file MARTE.WRL definisce la struttura geometrica del pianeta Marte, posizionato in modo decentrato rispetto alle sue coordinate locali, in modo da permettere, una volta incluso nel file della gerarchia immediatamente superiore tramite il nodo Inline, la simulazione del moto di rivoluzione attorno al Sole lungo un'orbita circolare di raggio assegnato. Viene inoltre specificato un punto luce del tipo SpotLight solidale con il pianeta, per rafforzare l'effetto di illuminazione solare.
Essendo un pianeta provvisto di satelliti naturali, vengono inclusi in questo livello della gerarchia tramite l'inlining del file MAR_SAT.WRL a cui si rimanda per ulteriori chiarimenti.
Il moto di rotazione 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 MARTE.WRL

DEF MarteLight Transform {
  translation 0 0 3771.2
    children [
      SpotLight {
        direction 0 0 1
        beamWidth   0.785
        cutOffAngle 0.785
        radius 54.4
        intensity 0.3
      }
    ]
  }
} 

DEF Marte Transform {
  translation 0 0 3880
  children [
    Shape {
      appearance Sony_Appearance {
        description "MARTE"
        material Material {
          diffuseColor  0.5 0.5 0.5
          emissiveColor 0 0 0
        }
        texture DEF MarteTexture ImageTexture {
          url "..\..\images\marte.jpg"
        }
        textureTransform TextureTransform {
          scale 1 1
        }
      }
      geometry Sphere {
        radius 54.4
      }
    },
    DEF MarteSatelliti Inline {
      url "mar_sat.wrl"
    }  
  ]
}

DEF MarteTime TimeSensor {
    cycleInterval 10
    loop TRUE
    stopTime -1
}

DEF MarteRotation OrientationInterpolator {
  key [0, 0.25, 0.5, 0.75, 1]
  keyValue [
    0.4 -0.91 0.0 0.0,
    0.4 -0.91 0.0 1.57,
    0.4 -0.91 0.0 3.14,
    0.4 -0.91 0.0 4.71,
    0.4 -0.91 0.0 6.28
  ]
}

ROUTE MarteTime.fraction_changed  TO MarteRotation.set_fraction
ROUTE MarteRotation.value_changed TO Marte.set_rotation