/** * \mainpage creaMaracasVisu documentation \htmlonly

General Description

First of all, creaMaracasVisu is a C++ library developed by Creatools software team and it follows the general architecture of Creatools architecture (more information in the Creatools Architecture diagram. creaMaracasVisu has as principal objective to help the visualization of medical images and the interaction with them.


 Architecture Description

The core of the library is divided into different modules, and each one provides a list of diferent functionalities that can be used in specific contexts. The principal components are the following:

- Viewers and interactors
- Contours
- Cutter Module
- Plotter and Data Representation

The relationship among this set of elements is described in the following diagram :

     - Architecture Diagram


 Modules Description

In this section are presented the corresponding diagrams for each model in creaMaracasVisu library including classes, components and sequence diagrams, as well as a short description of the module of interest.


Viewers and interactors

This module provides a set of classes that manage the visualization and the interaction with images. For example, the black box ViewerNV is constructed using these classes and it provides the possibility to use different viewers depending of the context. For example, to manage an image 3D is useful to use the wxVtk3DBaseBiew and to control a 2D image it is possible to use wxVtk2DBaseView. It is important to note that these viewers make the connection between a wxWindow and a vtkRenderWindow, in order to include the world VTK in any application implemented with wxWidgets.

Another important point to keep in mind is that all the wxVtkBaseView instances have a manager of its interactor styles. These interactors describe how the events are handled and how the actual mechanism respond to the interaction callbacks. Every new instance of InteractorStyleMaracas class can be added to the wxBaseView in order to manage all the events made over an object. An example of this process is presented in the contours section.


Class diagrams

   - wxVtkViewer Class Diagram 1
         - wxVtkViewer Class Diagram 2

 

Contours


Class diagrams

          - MVC (Model View Controler)
          - Model
          - View
          - Controler


Sequence diagrams

          - To create a new contour MVC
When a new contour has to be created it is necessary to instantiate the MVC model shown in the section before. It is important to note that Contours module needs a viewer to draw and to manage the contour. For that reason, after creating the model, view and controller and their relations (Controller uses View and Model, and View has relation with the model), it is necessary to say the viewer where it will be managed. The specific methods to do this task are in the diagram.


Cutter

Component diagrams

          - Cutter module components

Class diagrams

          - Cutter module integration
          - Interface
          - Kernel


Plotter and data representation

Class diagrams

          - pPlotter Class Diagram
\endhtmlonly */