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.
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)
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):
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
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
|Function:||This function reinitialize the data stored in the mesh object. In particular, it deletes the display list if one existed.|
|Post||Empty/Null MeshObject (Valid) with no displayList|
|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.|
|Output||MeshData for the Segmented VoxData|
|Pre||Valid Segmented VoxData|
|Post||A displaylist (points) and a trianglemesh|
|Function:||This function displays the mesh|
|Output||Each segmented object's mesh that is in displayList is displayed|