2 * \mainpage creaMaracasVisu documentation
6 <!-- ******************************************************************************* -->
7 <!-- Paste here the new code HTML for the main page of creaMaracasVisu documentation -->
8 <!-- It is possible to use the file TemplateHomeLibDoxygen.html to edit easily -->
9 <!-- but don't forget to delete head and body open tags. RaC -->
10 <!-- ******************************************************************************* -->
12 # ---------------------------------------------------------------------
14 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
16 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
17 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
18 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
20 # This software is governed by the CeCILL-B license under French law and
21 # abiding by the rules of distribution of free software. You can use,
22 # modify and/ or redistribute the software under the terms of the CeCILL-B
23 # license as circulated by CEA, CNRS and INRIA at the following URL
24 # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
25 # or in the file LICENSE.txt.
27 # As a counterpart to the access to the source code and rights to copy,
28 # modify and redistribute granted by the license, users are provided only
29 # with a limited warranty and the software's author, the holder of the
30 # economic rights, and the successive licensors have only limited
33 # The fact that you are presently reading this means that you have had
34 # knowledge of the CeCILL-B license and that you accept its terms.
35 # ------------------------------------------------------------------------ */
40 <style type="text/css">
42 font-family: Geneva, Arial, Helvetica, sans-serif;
48 font-family: Geneva, Arial, Helvetica, sans-serif;
60 font-family: Geneva, Arial, Helvetica, sans-serif;
63 text-decoration: underline;
66 font-family: Geneva, Arial, Helvetica, sans-serif;
73 font-family: Geneva, Arial, Helvetica, sans-serif;
77 text-decoration: underline;
81 font-family: Geneva, Arial, Helvetica, sans-serif;
83 text-decoration: underline;
87 font-family: Geneva, Arial, Helvetica, sans-serif;
96 <H2 class="style4">General Description</H2>
97 <H2><span class="text">First of all, <strong>
98 <a class="el" href="http://www.creatis.insa-lyon.fr/site/fr/CreatoolsBBTKPackageCreaMaracasVisuUserInteractionDescription">creaMaracasVisu</a></strong> is a C++ library developed by
99 <a class="el" href="http://www.creatis.insa-lyon.fr/site/fr/creatools">Creatools</a>
100 software team and it follows the general architecture of Creatools architecture
101 (more information in the
102 <a class="el" href="http://www.creatis.insa-lyon.fr/site/fr/CreaToolsArchitecture">Creatools Architecture</a> diagram.
104 <a class="el" href="http://www.creatis.insa-lyon.fr/site/fr/CreatoolsBBTKPackageCreaMaracasVisuUserInteractionDescription">creaMaracasVisu</a> </strong> has as principal objective to help the visualization of medical
105 images and the interaction with them. </span></H2>
108 <H2 class="style4"> Architecture Description</H2>
109 <H2><span class="text">The core of the library is divided into
110 different modules, and each one provides a list of diferent functionalities that can be
111 used in specific contexts. The principal components are the following:<br />
113 - <a class="el" href="#ViewersInteractors">Viewers and interactors</a><br />
114 - <a class="el" href="#Contours">Contours</a><br />
115 - <a class="el" href="#Cutter">Cutter Module</a><br />
116 - <a class="el" href="#Plotter">Plotter and Data Representation</a><br />
117 - <a class="el" href="#ManualPaint">Manual Paint</a><br />
118 - <a class="el" href="#ThresholdImageView">Threshold Image View</a><br />
121 The relationship among this set of elements is described in the following
124 -
125 <a class="el" href="../GeneralArchitecture_HTML/index.html">Architecture Diagram</a></span></H2>
128 <H2 class="style4"> Modules Description</H2>
129 <p class="text">In this section are presented the corresponding diagrams for
130 each model in <span class="text"> <strong>
131 <a class="el" href="http://www.creatis.insa-lyon.fr/site/fr/CreatoolsBBTKPackageCreaMaracasVisuUserInteractionDescription">creaMaracasVisu</a> </strong> </span>
132 library including classes, components and sequence diagrams, as well as a short
133 description of the module of interest.</p>
137 <a name="ViewersInteractors"></a>
140 Viewers and interactors</div>
142 <span class="text">This module provides a set of classes that manage the
143 visualization and the interaction with images. For example, the black box
144 ViewerNV is constructed using these classes and it provides the possibility to
145 use different viewers depending of the context. For example, to manage an image
146 3D is useful to use the wxVtk3DBaseBiew and to control a 2D image it is possible
147 to use wxVtk2DBaseView. It is important to note that these viewers make the
148 connection between a wxWindow and a vtkRenderWindow, in order to include the
149 world VTK in any application implemented with wxWidgets.<br />
151 Another important point to keep in mind is that all the wxVtkBaseView instances
152 have a manager of its interactor styles. These interactors describe how the
153 events are handled and how the actual mechanism respond to the interaction
154 callbacks. Every new instance of InteractorStyleMaracas class can be added to
155 the wxBaseView in order to manage all the events made over an object. An example
156 of this process is presented in the contours section.</span><br />
158 <span class="listDiagrams">Class diagrams</span><br />
160 <span class="listDiagrams">
161 <a href="../wxVtkViewer_classDiagram1_HTML/index.html" class="el"> - wxVtkViewer Class Diagram 1</a><br>
162
163 <a href="../wxVtkViewer_classDiagram2_HTML/index.html" class="el"> - wxVtkViewer Class Diagram 2</a></span><br />
166 <hr /><span class="subtitles"><a name="Contours"></a></span>
167 <span class="style3">Contours</span><br />
169 <span class="text">This module provides a set of tools to draw different types
170 of contours over the viewers of the first section. In the MVC class diagram and
171 the sequence diagram to create a new contour are explained the steps necessary
172 to include this functionnality into a wx-vtk scene. An example of this process
173 of creation of new contours is presented in the creaContours application. It is
174 important to note that the contours follow as well the same interaction system
175 of the wxVtkBaseView. It means that all the contour's controllers use the
176 InteractorStyleMaracas system to manage the events of the mouse and the
177 keyborard in the scene. In addition, every contour controller registered in the
178 wxVtkBaseView with the method AddInteractorStyleMaracas of
179 vtkInteractorStyleBaseView class (see the doxygen documentation of these
180 classes) will react to the mouse and keyboard events, and for this reason is
181 important to have a managing system of all the interactors in the scene.<br />
183 Regarding the different actions that can be made using the contours, they react
184 in a different way depending of the actual state of each one of them. For
185 example, when any contour is into an editable state, the control points are
186 visualized and can be moved, removed, etc. In brief, the actions applied to the
187 contours (check the <span class="text"> <strong>
188 <a class="el" href="http://www.creatis.insa-lyon.fr/site/fr/CreaMaracasVisuUserGuide#Contours">User Guide</a> </strong> </span>
189 documentation) are described as a state diagram and every contours reacts
190 depending of its state.</span><br />
192 <span class="listDiagrams">Class diagrams<br />
194 </strong></span><div class="text">
196 <a href="../manualContour_MVC_HTML/index.html" class="el"> MVC (Model View Controller)</a> <br>
197 <a href="../manualContour_Model_HTML/index.html" class="el">- Model</a> <br>
198 <a href="../manualContour_View_HTML/index.html" class="el">- View</a> <br>
199 <a href="../manualContour_Controler_HTML/index.html" class="el">- Controller</a><br />
202 <span class="listDiagrams">Sequence diagrams</span><br />
204
206 <a class="el" href="../manualContour_SeqCreateContour_HTML/index.html">To create a new
208 <div class="paragraph">
210 contour has to be created it is necessary to instantiate the MVC
211 model shown in the section before. It is important to note that Contours
212 module needs a viewer to draw and to manage the contour. For that reason,
213 after creating the model, view and controller and their relations
214 (Controller uses View and Model, and View has relation with the model), it
215 is necessary to say the viewer where it will be managed. The specific
216 methods to do this task are in the diagram.</div><br />
217 <hr /><span class="style3"><a name="Cutter"></a>Cutter</span><br>
220 <span class="listDiagrams">Component diagrams<br />
222 </strong></span><div class="text">
224 <a href="../CutModuleDiagrams_HTML/index.html" class="el"> Cutter module
229 <span class="listDiagrams">Class diagrams<br />
231 </span><div class="text"> -
232 <a href="../CutModuleDiagrams_HTML/fig141309.png" class="el"> Cutter module
233 integration </a> <br>
234 <a href="../CutModuleDiagrams_HTML/fig134653.png" class="el">-
236 <a href="../CutModuleDiagrams_HTML/fig134781.png" class="el">-
242 <hr /><span class="style3"><a name="Plotter"></a>Plotter and data representation</span><br>
244 <span class="listDiagrams">Class diagrams</span><br class="style1" />
247 <a href="../pPlotter_HTML/index.html" class="el">- pPlotter Class Diagram</a> <br>
251 <hr /><span class="style3"><a name="ManualPaint"></a>Manual Paint</span><br>
253 <span class="listDiagrams">Class diagrams</span><br class="style1" />
256 <a href="../ManualPaint_html/index.html" class="el">- Manual Paint Class Diagram</a> <br>
259 <hr /><span class="style3"><a name="ThresholdImageView"></a>Threshold Image View</span><br>
261 <span class="listDiagrams">Class diagrams</span><br class="style1" />
264 <a href="../ThresholdImageView_html/index.html" class="el">- Threshold Image View Class Diagram</a> <br>
268 <!-- ******************************************************************************* -->
269 <!-- End HTML Code -->
270 <!-- ******************************************************************************* -->