A Roadmap to the VRIP source code

-------------------------------
Setting up the TCL/TK interface
-------------------------------

vripMain.cc
    - Sets up the TCL application

vripInit.cc
    - Does the application intialization, including TCL command
      creation and sourcing ${VRIP_DIR}/vrip.tcl and ${HOME}/.vriprc


------------
TCL commands
------------

vripRangeCmds.cc
    - TCL commands that actually read in a range image or surface and
      update the volume.

vripGridCmds.cc
    - TCL commands for creating, querying, down-sampling, and
      transposing the voxel grid.

vripFileCmds.cc
    - TCL commands for file I/O of the voxel grid

vripGUICmds.cc
    - TCL commands for running pieces of the GUI, i.e., the slice
      viewer and the "render" viewer.  The render viewer shows the
      vertex weights that were resampled when creating the depth map.

vripPlyCmds.cc
    - TCL commands for writing out depth maps, and processing range
      images to see how they will tesselate before being scanned into
      the volume

vripFillCmds.cc
    - TCL commands for filling the voxel grid (constant value,
      ellipse, cylinder, cube)

vripMiscCmds.cc
    - TCL commands for viewing/changing global parameters and
      generating timing results


--------------
The voxel grid
--------------

OccGrid.cc
    - The uncompressed volumetric grid and associated operations
      (creating, destroying, reading, writing, transposing, ...)

OccGridRLE.cc
    - The RLE volumetric grid and associated operations (creating,
      destroying, reading, writing, transposing, ...)

OccGridNormRLE.cc
    - The RLE volumetric grid with normals and associated operations
      (creating, destroying, reading, writing, transposing, ...)


--------------------------------------------------------
Range images and surfaces (meshes) and the PLY interface
--------------------------------------------------------

Mesh.cc
    - The triangle mesh data structures and associated routines,
      including weighting (confidence) assigment per vertex

rangePly.cc
    - Routines for reading in a ply range image and creating a
      tesselated range surface.

plyio.cc
    - Routines for reading and writing a ply triangle mesh


----------------------------
Resampling the range surface
----------------------------

DepthMap.cc
    - The depth map and associated operations (creating, destroying,
      writing, tree creation and evaluation)

DepthMapAux.cc
    - Routines that operate on the depth map

softRenderGeom.cc
    - Routines for resampling range surfaces using Homan Igehy's
      triangle rasterizer

renderGeom.cc
    - Routines for resampling range surfaces using graphics hardware
      for triangle rasterizing (not in use)


------------------------------
Volume and depth map traversal
------------------------------

configure.cc
    - Routines for computing the shear, transposing the volume, and
      computing the maximum screen size of the sheared volume

scan.cc
    - Routines for running through the uncompressed volume and
      updating voxels based on the current depth map.  Uses
      orthographic transformation.

scanRLE.cc
    - Routines for running through the RLE volume and updating voxels
      based on the current depth map.  Uses orthographic
      transformation.

scanLinePerspRLE.cc
    - Routines for running through the RLE volume and updating voxels
      based on the current depth map.  Uses line perspective
      transformation.

scanNormRLE.cc
    - Routines for running through the uncompressed volume and
      updating voxels based on the current depth map.  Uses
      orthographic transformation.

resample.cc 
    - Routines for resampling the depth map.

occFunc.cc
    - Routines for deciding what "occupancy value" to put in a voxel.


-----------------
Memory management
-----------------

ChunkLink.cc
    - Linked list of blocks of memory

ChunkAllocator.cc
    - Routines for allocating and streaming through the chunks of
      allocated memory.


-------------
Miscellaneous
-------------

vripGlobals.cc
    - Global variables.

vripAux.cc
    - Some auxiliary routines for managing the voxel grids

linePersp.cc
    - Routines for managing the line perspective transformation

BBox3f.cc
    - Routines for axis aligned bounding boxes in 3D


--------------
Other programs
--------------

vriphead.cc
    - Reads the header from an RLE voxel grid file and displays
      information about size, resolution, etc.