Technical Manual

Global State GUI Window2D Polygon Drawing Window3D MeshObject (UPDATED FOR 2000) MeshOptions (NEW FOR 2000) VoxData

Module Cohesion and Coupling

Testing and Planning

Design Analysis

MeshObject Class

Class Summary

Main purpose

The Mesh Object component of IRIS 2000 is responsible for creating, storing the varied representations, and displaying the 3D polygons which represent the 3D image segmentation.

New Information

MeshObject now runs each segmented object through the pipeline, by picking the segmented data, which completes the multicolor implementation (previously the different colors were not rendered, these changes reflect that).

The objects each get run with the preferences currently stored in the MeshOptions class (which of 1, 3, 4 below are run and what parameters they run under)

We also store the final strips/points, so that rendered objects can be selectively displayed (turn a rendered object on/off)

Creation and Storage

When the 3D window determines that the segmentation displayed in the window needs to be re-created, it sends a request to the Mesh Object. Upon a request from the 3D Window, the MeshObject queries the VoxelData for the current segmentation data. After receiving the data, the Mesh Object creates a surface which represents the 3D segmentation. To create the surface, the Mesh Object performs these steps (GB, MS, TMR are optional):

  1. Gaussian Blur on the imported VoxelData
  2. Triangle generation using a Marching Cubes algorithm
  3. Mesh Smoothing
  4. Triangle Mesh Reduction
  5. Triangle stripping

The vertices and normals created in step (2) and the traingle strips created in step (5) are stored in a display list and used during display

Display

When the 3D window determines that the segmentation displayed in the window needs to be re-displayed, it sends a request to the Mesh Object. Upon a request from the 3D Window, the MeshObject renders all of the triangle strips.

If there hasn't been an update to the underlying data/Mesh, but an update to the display list, then it will re-display without rendering again

Member function documentation

Member function listing/syntax

Reset()
GenerateMesh()
Display()

Member function documentation/information

Reset
Function: This function reinitialize the data stored in the mesh object. In particular, it deletes the display list if one existed.
Input None
Output None
Pre None
Post Empty/Null MeshObject (Valid) with no displayList

GenerateMesh
Function: This function generates a mesh which represents a 3D segmentation. This operation is accomplished by retrieving the voxel data from the VoxelData structure and then invoking a VTK isosurface extraction algorithm.
Input Segmented Voxdata
Output MeshData for the Segmented VoxData
Pre Valid Segmented VoxData
Post A displaylist (points) and a trianglemesh

Display
Function: This function displays the mesh
Input None
Output Each segmented object's mesh that is in displayList is displayed
Pre None
Post None

Modified Spring 2000:
Amy Henderson & Ashraf Farrag - Smoothing
SeanHo - Multicolor implementation, ability to select which previously rendered objects get displayed

 

Main

Users Manual
Technical Manual
Source Code
Download
Contact