WxNviz GSoC 2008

From GRASS-Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

See wxNviz page.

Accepted Google Summer of Code 2008 project, see also related GSoC 2010 and GSoC 2011 page.

Weekly Reports

  1. 2008-06-06
  2. 2008-06-13
  3. 2008-06-20
  4. 2008-06-27
  5. 2008-07-04
  6. 2008-07-11
  7. 2008-07-18
  8. 2008-07-25
  9. 2008-08-01
  10. 2008-08-08
  11. 2008-08-15

Final report

OGSF Library

Changes in OGSF library, diff before and after indentation relevant diffs:

Nviz command-line module

The nviz_cmd module currently supports:

  • Surfaces, attributes:
    • topography - raster map or constant values used as elevation (z values) for the current surface.
    • color - raster map or constant color to drape over the current surface.
    • mask - raster map that controls the areas displayed from the current surface.
    • transparency - raster map or constant value that controls the transparency of the current surface. The default is completely opaque.
    • shininess - raster map or constant value that controls the shininess (reflectivity) of the current surface.
    • emission - raster map or constant value that controls the light emitted from the current surface.
  • For each loaded surface draw style:
    • mode - coarse,fine,both
    • style - wire,surface
    • shading - flat,gouraud
    • coarse and fine resolution
    • wire color
  • 2D/3D vector line features:
    • line width, color
    • mode - flat,surface (only for 2D)
    • height (constant or above surface)
  • 2D/3D vector point features:
    • marker size, width, color
    • marker - x,sphere,diamond,cube,box,gyro,aster,histogram
  • Volume
    • mode - isosurface,slice (currently only isosurface mode implemented)
    • shading - flat,gouraud
    • position, resolution
  • Volume isosurface mode, attributes:
    • level - reference isosurface level (height in map units).
    • color - raster map or constant color to drape over the current volume.
    • mask - raster map that controls the areas displayed from the current volume.
    • transparency - raster map or constant value that controls the transparency of the current volume. The default is completely opaque.
    • shininess - raster map or constant value that controls the shininess (reflectivity) of the current volume.
    • emission - raster map or constant value that controls the light emitted from the current volume.
  • Settings
    • background color
  • View parameters
    • position, height, perspective, twist, zexag
  • Output options
    • filename, image size (width, height) and format (ppm, tif)

wxGUI Nviz extension

Roadmap / Progress

Done

  • Initial cleaning underlying GRASS OpenGL gsurf OGSF Library
    • Doxygenization, code documentation
    • Eliminate fprintf(), changed to G_*_message(), G_warning(), G_fatal_error(), and G_debug()

wxGUI Nviz extension

  • Integration with Layer Manager, (un)loading data when map layer is (un)/checked
  • Integration with Map Display, auto-rendering functional
  • View settings (position, height, perspective, twist, z-exag), perspective can be changed by mouse wheel
  • Surface settings (attributes, draw mode)
  • Vector 2D/3D points and lines (including boundaries, areas, faces, volumes)
  • Saving layer properties in workspace file

What should work:

  • Start GRASS with NC dataset
  • Add raster map "elevation" and vector map "roadsmajor"
  • Start Nviz from Map display toolbar
  • Change view, surface attributes, draw mode (try also auto-rendering)
  • Enable/disable data layer from Layer Manager

In progress

  • Update OGSF Library documentation
  • Experimental prototype of CLI version of NVIZ (just very simple functionality)
http://trac.osgeo.org/grass/browser/grass/trunk/visualization/nviz2/cmd
  • Design experimental nvizlib used by CLI and wxPython NVIZ prototype
http://trac.osgeo.org/grass/browser/grass/trunk/lib/nviz
  • Experimental prototype of NVIZ toolbox for wxGUI (based on NVIZ CLI functionality)
http://trac.osgeo.org/grass/browser/grass/trunk/gui/wxpython/nviz
http://trac.osgeo.org/grass/browser/grass/trunk/gui/wxpython/gui_modules/nviz.py

wxGUI Nviz extension

  • Support for volumes

Nviz CLI

  • To be updated (based on wxGUI Nviz functionality)