X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2Fdoxygen%2FDoxyMainPage.txt.in;h=34704fdbab157ab45556bf4c49358ec65b6fd21b;hb=da163855471fe218bef04ee518b126fc066d24aa;hp=3d2fd1a90af57192bbc8b51acaefe3dd1e72d388;hpb=8ff931cbc8000ad6988c0ad8689876eb6ce1f606;p=creaMaracasVisu.git diff --git a/lib/doxygen/DoxyMainPage.txt.in b/lib/doxygen/DoxyMainPage.txt.in index 3d2fd1a..34704fd 100644 --- a/lib/doxygen/DoxyMainPage.txt.in +++ b/lib/doxygen/DoxyMainPage.txt.in @@ -2,30 +2,274 @@ * \mainpage creaMaracasVisu documentation \htmlonly -

Architecture Description ??????????

-
- Architecture -
- -

Diagrams of the architecture


-Viewers
- - wxVtkViewer Class Diagram 1
- - wxVtkViewer Class Diagram 2
-
- pPlotter Class Diagram
-
-Manual Contour Class Diagram
- -MVC (Model View Controler)
- -Model
- -View
- -Controler
- -

Sequence Diagrams ??????????

-
- seg01 -
+ + + + + + + + + + + + +

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
+- Manual Paint
+- Threshold Image View
+ +
+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
+
+This module provides a set of tools to draw different types +of contours over the viewers of the first section. In the MVC class diagram and +the sequence diagram to create a new contour are explained the steps necessary +to include this functionnality into a wx-vtk scene. An example of this process +of creation of new contours is presented in the creaContours application. It is +important to note that the contours follow as well the same interaction system +of the wxVtkBaseView. It means that all the contour's controllers use the +InteractorStyleMaracas system to manage the events of the mouse and the +keyborard in the scene. In addition, every contour controller registered in the +wxVtkBaseView with the method AddInteractorStyleMaracas of +vtkInteractorStyleBaseView class (see the doxygen documentation of these +classes) will react to the mouse and keyboard events, and for this reason is +important to have a managing system of all the interactors in the scene.
+
+Regarding the different actions that can be made using the contours, they react +in a different way depending of the actual state of each one of them. For +example, when any contour is into an editable state, the control points are +visualized and can be moved, removed, etc. In brief, the actions applied to the +contours (check the +User Guide + documentation) are described as a state diagram and every contours reacts +depending of its state.

+
+Class diagrams
+
+
          + - + MVC (Model View Controller)
+          - Model
+          - View
+          - Controller
+
+
+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
+
+ + +
Manual Paint
+
+Class diagrams
+
+
+          - Manual Paint Class Diagram
+
+ +
Threshold Image View
+
+Class diagrams
+
+
+          - Threshold Image View Class Diagram
+
+ + + + + \endhtmlonly - */ \ No newline at end of file + */