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):
- Gaussian Blur on the imported VoxelData
- Triangle generation using a Marching Cubes algorithm
- Mesh Smoothing
- Triangle Mesh Reduction
- 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
|