#X3D V3.2 utf8
PROFILE Interactive

PointLight {
  ambientIntensity 1
  location 2.6485183238983154 1.7994731664657593 2.1180229187011719
  global TRUE
  radius 10000 # infinity
}

PointLight {
  ambientIntensity 1
  location -1.4864876270294189 -1.3643914461135864 2.1502542495727539
  color 0.2 0.2 0.5
  global TRUE
  radius 10000 # infinity
}

# Camera settings "encoded" in the VRML/X3D declaration below :
# direction 0.104529395699501 0.9945217967033386 1.1758729669963941E-006
# up -6.3916360204530065E-008 -1.2195843055451405E-006 1
# gravityUp 0 -4.3711388286737929E-008 1
Transform {
  translation -0.786336362361908 -4.0575551986694336 0.548799991607666
  rotation 1 0 0 1.5707963705062866
  children Viewpoint {
    position 0 0 0 # camera position is expressed by translation
    orientation 0.0000108333269964 -1.0000001192092896 0 0.1047206893563271
  }
}

# trees
Transform { translation 2.70 -1.97 0 children DEF Tree Inline { url "tree.wrl" } }
Transform { translation 3.10 1.37 0  children USE Tree }
Transform { translation -3.38 0.28 0 children USE Tree }

# billboard with user_help texture
Transform {
  translation -0.55 -0.15 0.6
  children Shape {
    appearance Appearance {
      texture ImageTexture { url "../../textures/user_help.png" }
      material Material { } # default Material, to make shape lit
    }
    geometry IndexedFaceSet {
      coord Coordinate { point [ -0.5 0 -0.5, 0.5 0 -0.5, 0.5 0 0.5, -0.5 0 0.5 ] }
      texCoord TextureCoordinate { point [ 0 0, 1 0, 1 1, 0 1 ] }
      coordIndex [ 0, 1, 2, 3 ]
      texCoordIndex [ 0, 1, 2, 3 ]
      solid FALSE
    }
  }
}

# fence around. X1 Y1 X2 Y2 = -4.54 -4.56 5.45 4.23
Shape {
  appearance Appearance {
    texture ImageTexture { url "../../textures/fence.png"
      repeatS TRUE
      repeatT FALSE
    }
    material Material { } # default Material, to make shape lit
  }
  geometry IndexedFaceSet {
    coord Coordinate {
      point [
        -4.54 -4.56 0, 5.44 -4.56 0, 5.44 4.22 0, -4.54 4.22 0,
        # same points, 0.25 higher
        -4.54 -4.56 0.25, 5.44 -4.56 0.25, 5.44 4.22 0.25, -4.54 4.22 0.25 ]
    }
    texCoord TextureCoordinate { point [ 0 0, 0 1, 20 1, 20 0 ] }
    coordIndex [
      0, 4, 5, 1, -1,
      0, 4, 7, 3, -1,
      3, 7, 6, 2, -1,
      2, 6, 5, 1, -1,
    ]
    texCoordIndex [
      0, 1, 2, 3, -1,
      0, 1, 2, 3, -1,
      0, 1, 2, 3, -1,
      0, 1, 2, 3, -1,
    ]
    solid FALSE
  }
}

Transform {
  rotation 1 0 0 1.57
  children Background {
    backUrl   "../../skies/sky_back.png"
    bottomUrl "../../skies/sky_bottom.png"
    frontUrl  "../../skies/sky_front.png"
    leftUrl   "../../skies/sky_left.png"
    rightUrl  "../../skies/sky_right.png"
    topUrl    "../../skies/sky_top.png"
  }
}

# cylinder with "mute area" text
Transform {

  # pomiary z base_b.wrl :
  # zmin=1.045640 zmax=1.147600
  # (zmin+zmax)/2=1.0966200000 zmax-zmin=0.10196
  # srodek Budki XY = (2,0)
  # Zeby uniknac roznych artefaktow, promien cylindra jest troche mniejszy
  #   niz promien BudkaTop a jego wysokosc jest nieco wieksza.
  #   Ponadto w base_b.wrl podstawka BudkaTop musi miec material solid
  #   (nie ten transparent).

  translation 2 0 1.0966200000
  children Transform {
    rotation 1 0 0 1.57
    children [
      KambiTriangulation { quadricStacks 2 }
      Shape {
        appearance Appearance {
          texture ImageTexture { url "../../textures/mute_label_scroll.png" }
          material Material { } # default Material, to make shape lit
        }
        geometry Cylinder {
          bottom FALSE
          top FALSE
          radius 0.38 height 0.105
          solid FALSE
        }
      }
    ]
  }
}

NavigationInfo {
  type "WALK"
  avatarSize [ 0.1, 0.56 ]
  speed 10
  headlight FALSE
}

Inline { url "base_b_proc.wrl" }

EXTERNPROTO Thunder [
  inputOutput SFFloat ambientIntensity
  inputOutput SFColor color
  inputOutput SFVec3f direction
  inputOutput MFString soundUrl
  inputOutput SFTime blink1Duration
  inputOutput SFTime blink2Start
  inputOutput SFTime blink2Duration
  inputOutput SFTime durationBetweenConst
  inputOutput SFTime durationBetweenRandom1
  inputOutput SFTime durationBetweenRandom2
] [ "thunder.x3dv#Thunder" ]
Thunder { }
