This class is functionally cohesive. It's responsibility is the storage of the volumetric data set, which is stored as voxels. It's tasks include reading in and writing out data, storing information about voxels that have been segmented, and keeping track of any color labels that have been applied to the data set.
This class has aspects of both functional and sequential cohesion. Its overall purpose is to store information which is common to other classes, giving it functional cohesion; but it is only useful for providing input for functions in other classes, giving it sequential cohesion.
This class is sequentially cohesive. Output from the GUI's callback functions is redirected to be input for the functions that actually change the state of the program, whether it's a change of modes or a change in what's displayed in any of the windows.
This class is functionally cohesive. It's purpose is to manage a single window in which a two dimensional slice of a 3D voxel data set is displayed. Segmentation of the 3D object takes place in any of the three 2D windows in this program.
This class is functionally cohesive. It's purpose is to manage a single window in which a three dimensional object is displayed. For the purpose of this program, the object displayed is the segmentation that has occurred within the two dimensional windows.
This class is functionally cohesive in that it has the primary purpose of storing the vertices of a polygon which is being drawn, but it is sequentially cohesive in that its output serves as input for drawing to the 2D windows.
This class is functionally cohesive in that its purpose is to manage a MeshObject which represents a 3D segmentation as a mesh composed of triangles, but like the PolygonDrawing class, it is sequentially cohesive in that its output serves as input for drawing to the 3D window.
This class is commonly coupled with every other class with the exception of the GlobalState class. This is due to the need for the same voxel data set to be accessible by all the other classes.
This class is commonly coupled with every other class with the exception of theVoxelData class. This is due to the need for the same set of program parameters to be accessible by all the other classes.
This class is data coupled with the Window2D class and Window3D class. It controls whether or not certain buttons and functions are active within these classes, as well as telling these windows to when to update.
This class is data coupled with the PolygonDrawing class. It queries the PolygonDrawing class for information about the polygon currently being stored
This class is data coupled with the MeshObject class.