Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License




              NASA World Wind for Java
                   API Overview
                                         Fabrizio Giudici



Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano
Javaday Roma - 01/12/2007
In a few words...
                                                         Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License


     ●   3D API for rendering the Earth
          –   ... but also other planets
     ●   Default data from NASA
          –   You can feed other data providers
          –   Beware of terms of use
     ●   You can add your own objects




Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano
Javaday Roma - 01/12/2007
Some basic facts
                                                         Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License


     ●   Based on JOGL (OpenGL bindings for Java)
          –   Fast!
          –   Fast Video Card required
          –   But beware of drivers (especially in Linux)
          –   Native library required
     ●   You don't need to learn JOGL




Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano
Javaday Roma - 01/12/2007
Basic classes
                                                         Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License


     ●   Configuration
          –   How to set up things
     ●   WorldWindowGLCanvas
          –   The components that renders the scene
     ●   Model
          –   What we are going to render




Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano
Javaday Roma - 01/12/2007
Basic classes
                                                         Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License


     ●   Layer(s)
          –   Stacked sets of rendered objects
     ●   View, OrbitView
          –   The coordinates and other attributes of the view
              point
     ●   SceneController
          –   The controller



Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano
Javaday Roma - 01/12/2007
Standard Layers
                                                         Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License


     ●   Stars                                             ●    USGSUrbanAreaOrtho
     ●   Fog                                               ●    CountryBoundaries
     ●   SkyGradient                                       ●    EarthNASAPlaceName
     ●   BMNGSurface                                       ●    ScaleBar
     ●   LandsatI3                                         ●    WorldMap
     ●   USGSDigitalOrtho                                  ●    Compass



Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano
Javaday Roma - 01/12/2007
The demos
                                                         Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License

     ●   ViewIteration                                       ●   SurfaceImages
     ●   GlobalGridAboveSurface                              ●   TexturedSurfaceShape
     ●   Shapes                                              ●   Tracks
     ●   DraggingShapes                                      ●   AnaglyphStereo




                    run-demo.bash demo_name

Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano
Javaday Roma - 01/12/2007
ViewIteration
                                                         Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License


     ●   Goes to a specific location applying a smooth
         transition
     ●   OrbitView
     ●   ScheduledOrbitViewStateIterator




Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano
Javaday Roma - 01/12/2007
GlobalGridAboveSurface
                                                         Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License


     ●   Draws a grid over the surface
     ●   RenderableLayer
     ●   PolyLine
          –   color
          –   numSegments
          –   followTerrain




Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano
Javaday Roma - 01/12/2007
Shapes
                                                         Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License


     ●   Sticks and renders many different shapes at
         given coordinates
     ●   RenderableLayer
          –   SurfaceSector, SurfaceEllipse,
              SurfaceSquare, SurfaceCircle,
              SurfaceQuad, Quadrilateral,
              SurfacePolygon, PolyLine
     ●   IconLayer
                ●   WWIcon, UserFacingIcon

Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano
Javaday Roma - 01/12/2007
DraggingShapes
                                                         Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License


     ●   Surface shapes can be selected and dragged
     ●   SelectListener
          –   SelectEvent.HOVER
          –   SelectEvent.ROLLOVER
          –   SelectEvent.DRAG
          –   SelectEvent.DRAG_END




Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano
Javaday Roma - 01/12/2007
SurfaceImages
                                                         Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License


     ●   Paints a given image over the surface
     ●   RenderableLayer
          –   SurfaceImage




Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano
Javaday Roma - 01/12/2007
TexturedSurfaceShape
                                                         Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License


     ●   Paints a shape with a given texture over the
         surface
     ●   RenderableLayer
          –   SurfaceSector
          –   TexturePaint




Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano
Javaday Roma - 01/12/2007
Tracks
                                                         Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License


     ●   Renders a track with waypoints
     ●   TrackMarkerLayer
          –   Track




Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano
Javaday Roma - 01/12/2007
Anaglyph Stereo
                                                         Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License


     ●   Renders a 3D view that can be viewer with 3D
         glasses
     ●   Configuration
     ●   AnaglyphSceneController
          –   setDisplayMode(...)
          –   setFocusAngle(...)




Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano
Javaday Roma - 01/12/2007
Contacts & Links
                                                         Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License


     ●   http://worldwind.arc.nasa.gov/java
     ●   http://bluemarine.tidalwave.it
     ●   http://forceten.tidalwave.it (soon)

     ●   http://weblogs.java.net/blog/fabriziogiudici
     ●   http://www.tidalwave.it/people




Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano
Javaday Roma - 01/12/2007

NASA World Wind for Java API Overview

  • 1.
    Creative Commons Attribution-NonCommercial-ShareAlike2.5 License NASA World Wind for Java API Overview Fabrizio Giudici Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano Javaday Roma - 01/12/2007
  • 2.
    In a fewwords... Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● 3D API for rendering the Earth – ... but also other planets ● Default data from NASA – You can feed other data providers – Beware of terms of use ● You can add your own objects Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano Javaday Roma - 01/12/2007
  • 3.
    Some basic facts Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● Based on JOGL (OpenGL bindings for Java) – Fast! – Fast Video Card required – But beware of drivers (especially in Linux) – Native library required ● You don't need to learn JOGL Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano Javaday Roma - 01/12/2007
  • 4.
    Basic classes Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● Configuration – How to set up things ● WorldWindowGLCanvas – The components that renders the scene ● Model – What we are going to render Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano Javaday Roma - 01/12/2007
  • 5.
    Basic classes Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● Layer(s) – Stacked sets of rendered objects ● View, OrbitView – The coordinates and other attributes of the view point ● SceneController – The controller Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano Javaday Roma - 01/12/2007
  • 6.
    Standard Layers Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● Stars ● USGSUrbanAreaOrtho ● Fog ● CountryBoundaries ● SkyGradient ● EarthNASAPlaceName ● BMNGSurface ● ScaleBar ● LandsatI3 ● WorldMap ● USGSDigitalOrtho ● Compass Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano Javaday Roma - 01/12/2007
  • 7.
    The demos Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● ViewIteration ● SurfaceImages ● GlobalGridAboveSurface ● TexturedSurfaceShape ● Shapes ● Tracks ● DraggingShapes ● AnaglyphStereo run-demo.bash demo_name Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano Javaday Roma - 01/12/2007
  • 8.
    ViewIteration Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● Goes to a specific location applying a smooth transition ● OrbitView ● ScheduledOrbitViewStateIterator Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano Javaday Roma - 01/12/2007
  • 9.
    GlobalGridAboveSurface Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● Draws a grid over the surface ● RenderableLayer ● PolyLine – color – numSegments – followTerrain Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano Javaday Roma - 01/12/2007
  • 10.
    Shapes Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● Sticks and renders many different shapes at given coordinates ● RenderableLayer – SurfaceSector, SurfaceEllipse, SurfaceSquare, SurfaceCircle, SurfaceQuad, Quadrilateral, SurfacePolygon, PolyLine ● IconLayer ● WWIcon, UserFacingIcon Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano Javaday Roma - 01/12/2007
  • 11.
    DraggingShapes Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● Surface shapes can be selected and dragged ● SelectListener – SelectEvent.HOVER – SelectEvent.ROLLOVER – SelectEvent.DRAG – SelectEvent.DRAG_END Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano Javaday Roma - 01/12/2007
  • 12.
    SurfaceImages Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● Paints a given image over the surface ● RenderableLayer – SurfaceImage Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano Javaday Roma - 01/12/2007
  • 13.
    TexturedSurfaceShape Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● Paints a shape with a given texture over the surface ● RenderableLayer – SurfaceSector – TexturePaint Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano Javaday Roma - 01/12/2007
  • 14.
    Tracks Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● Renders a track with waypoints ● TrackMarkerLayer – Track Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano Javaday Roma - 01/12/2007
  • 15.
    Anaglyph Stereo Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● Renders a 3D view that can be viewer with 3D glasses ● Configuration ● AnaglyphSceneController – setDisplayMode(...) – setFocusAngle(...) Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano Javaday Roma - 01/12/2007
  • 16.
    Contacts & Links Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● http://worldwind.arc.nasa.gov/java ● http://bluemarine.tidalwave.it ● http://forceten.tidalwave.it (soon) ● http://weblogs.java.net/blog/fabriziogiudici ● http://www.tidalwave.it/people Fabrizio Giudici – fabrizio.giudici@tidalwave.it – JUG Milano Javaday Roma - 01/12/2007