Indice Generale Struttura Gerarchica


"Viaggio nel Sistema Solare"

SATURNO.WRL
Il file SATURNO.WRL definisce la struttura geometrica del pianeta Saturno, 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 SAT_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 SATURNO.WRL

DEF SaturnoLight Transform {
  translation 12000 0 0
    children [
      SpotLight {
        direction 1 0 0
        beamWidth   0.785
        cutOffAngle 0.785
        radius 460.8
        intensity 0.3
      }
    ]
  }
} 

DEF Saturno Transform {
  translation 14180 0 0
  children [
    Shape {
      appearance Sony_Appearance {
        description "SATURNO"
        material Material {
          diffuseColor  1 1 1
          emissiveColor 0 0 0
        }
        texture DEF SaturnoTexture ImageTexture {
          url "..\..\images\saturno.jpg"
        }
        textureTransform TextureTransform {
          scale 5 5
        }
      }
      geometry Sphere {
        radius 460.8
      }
    },
    DEF SaturnoAnelli Transform {
      rotation 0 0 1  0.45
      children [
        Shape {
          appearance Appearance {
            material Material {
              diffuseColor  1 0.5 0
              emissiveColor 0 0 0
              transparency 0.1
            }
          }
          geometry Cylinder {
            height 10
            radius 1200
          }
        },
        Shape {
          appearance Appearance {
            material Material {
              diffuseColor  0 0 0
              emissiveColor 0 0 0
              transparency 0.5
            }
          }
          geometry Cylinder {
            height 30
            radius 1000
          }
        },
        Shape {
          appearance Appearance {
            material Material {
              diffuseColor  1 0.6 0
              emissiveColor 0 0 0
              transparency 0.1
            }
          }
          geometry Cylinder {
            height 50
            radius 800
          }
        },
        Shape {
          appearance Appearance {
            material Material {
              diffuseColor  0 0 0
              emissiveColor 0 0 0
              transparency 0.5
            }
          }
          geometry Cylinder {
            height 55
            radius 600
          }
        }
      ]
    },
    DEF SaturnoSatelliti Inline {
      url "sat_sat.wrl"
    }  
  ]
}

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

DEF SaturnoRotation OrientationInterpolator {
  key [0, 0.25, 0.5, 0.75, 1]
  keyValue [
    0.43 -0.89 0.0 0.0,
    0.43 -0.89 0.0 1.57,
    0.43 -0.89 0.0 3.14,
    0.43 -0.89 0.0 4.71,
    0.43 -0.89 0.0 6.28
  ]
}

ROUTE SaturnoTime.fraction_changed  TO SaturnoRotation.set_fraction
ROUTE SaturnoRotation.value_changed TO Saturno.set_rotation