Open rosoba opened 10 years ago
For 3D visualization, the concept of a separate view class should be preserved. The SimulationHistory and CreasePatternState should provide the interface for the 3D view object. Both an interactive and scripting interface of the view object should be elaborated.
Thus, the View3D object interacts with the IModel3D Interface. The interface
data to be supplied by the model consists of topological data and time dependent
data in terms of nodal coordinates x_t
.
The visualization could be solved by designing a base class Has3DStates which might be seen as a partner of the the class View3DStates.
Each state and operator object can be associated with several visualization objects (with a shortened class name Viz3D. In order to introduce a n independent class subsystem into the class structure, objects supporting visualization inherit from Visual which introduces a dictionary viz3d objects.
Classes implementing visualizations inherit from Viz3D. Their names also end with Viz3D, i.e. CreasePatternViz3D of DofConstraintsViz3D.
Visualization objects are assembled within a Viz3DPipeline. The pipeline is constructed by a FormingTask and registered within the FTView3D target object. When plotting or updating the view, the pipeline iterates through the registered Viz3D objects and calls their plot( view3d ) or update( view 3d ) methods.
FTView3D object provides an mlab interface as an mlab attribute.
The MainWindow consists of two components
The FormingTaskTree shows the design process along the dependencies between the tasks and provides the possibility to browse them through. FormingTask3DView shows the animation of a single forming task. FormingTaskEditor shows the editor pane with the parametesr of the forming task.
Provide the standard structure of modules for the visualization, user interface.