1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
5 <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
6 <title>General Description</title>
7 <style type="text/css">
9 font-family: Geneva, Arial, Helvetica, sans-serif;
15 font-family: Geneva, Arial, Helvetica, sans-serif;
27 font-family: Geneva, Arial, Helvetica, sans-serif;
30 text-decoration: underline;
33 font-family: Geneva, Arial, Helvetica, sans-serif;
40 font-family: Geneva, Arial, Helvetica, sans-serif;
44 text-decoration: underline;
48 font-family: Geneva, Arial, Helvetica, sans-serif;
50 text-decoration: underline;
54 font-family: Geneva, Arial, Helvetica, sans-serif;
65 <H2 class="style4">General Description</H2>
66 <H2><span class="text">First of all, <strong>
67 <a class="el" href="http://www.creatis.insa-lyon.fr/site/fr/CreatoolsBBTKPackageCreaMaracasVisuUserInteractionDescription">creaMaracasVisu</a></strong> is a C++ library developed by
68 <a class="el" href="http://www.creatis.insa-lyon.fr/site/fr/creatools">Creatools</a>
69 software team and it follows the general architecture of Creatools architecture
70 (more information in the
71 <a class="el" href="http://www.creatis.insa-lyon.fr/site/fr/CreaToolsArchitecture">Creatools Architecture</a> diagram.
73 <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
74 images and the interaction with them. </span></H2>
77 <H2 class="style4"> Architecture Description</H2>
78 <H2><span class="text">The core of the library is divided into
79 different modules, and each one provides a list of diferent functionalities that can be
80 used in specific contexts. The principal components are the following:<br />
82 - <a class="el" href="#ViewersInteractors">Viewers and interactors</a><br />
83 - <a class="el" href="#Contours">Contours</a><br />
84 - <a class="el" href="#Cutter">Cutter Module</a><br />
85 - <a class="el" href="#Plotter">Plotter and Data Representation</a><br />
88 The relationship among this set of elements is described in the following
91 -
92 <a class="el" href="../GeneralArchitecture_HTML/index.html">Architecture Diagram</a></span></H2>
95 <H2 class="style4"> Modules Description</H2>
96 <p class="text">In this section are presented the corresponding diagrams for
97 each model in <span class="text"> <strong>
98 <a class="el" href="http://www.creatis.insa-lyon.fr/site/fr/CreatoolsBBTKPackageCreaMaracasVisuUserInteractionDescription">creaMaracasVisu</a> </strong> </span>
99 library including classes, components and sequence diagrams, as well as a short
100 description of the module of interest.</p>
104 <a name="ViewersInteractors"></a>
107 Viewers and interactors</div>
109 <span class="text">This module provides a set of classes that manage the
110 visualization and the interaction with images. For example, the black box
111 ViewerNV is constructed using these classes and it provides the possibility to
112 use different viewers depending of the context. For example, to manage an image
113 3D is useful to use the wxVtk3DBaseBiew and to control a 2D image it is possible
114 to use wxVtk2DBaseView. It is important to note that these viewers make the
115 connection between a wxWindow and a vtkRenderWindow, in order to include the
116 world VTK in any application implemented with wxWidgets.<br />
118 Another important point to keep in mind is that all the wxVtkBaseView instances
119 have a manager of its interactor styles. These interactors describe how the
120 events are handled and how the actual mechanism respond to the interaction
121 callbacks. Every new instance of InteractorStyleMaracas class can be added to
122 the wxBaseView in order to manage all the events made over an object. An example
123 of this process is presented in the contours section.</span><br />
125 <span class="listDiagrams">Class diagrams</span><br />
127 <span class="listDiagrams">
128 <a href="../wxVtkViewer_classDiagram1_HTML/index.html" class="el"> - wxVtkViewer Class Diagram 1</a><br>
129
130 <a href="../wxVtkViewer_classDiagram2_HTML/index.html" class="el"> - wxVtkViewer Class Diagram 2</a></span><br />
133 <hr /><span class="subtitles"><a name="Contours"></a></span>
134 <span class="style3">Contours</span><br />
136 <span class="text">This module provides a set of tools to draw different types
137 of contours over the viewers of the first section. In the MVC class diagram and
138 the sequence diagram to create a new contour are explained the steps necessary
139 to include this functionnality into a wx-vtk scene. An example of this process
140 of creation of new contours is presented in the creaContours application. It is
141 important to note that the contours follow as well the same interaction system
142 of the wxVtkBaseView. It means that all the contour's controllers use the
143 InteractorStyleMaracas system to manage the events of the mouse and the
144 keyborard in the scene. In addition, every contour controller registered in the
145 wxVtkBaseView with the method AddInteractorStyleMaracas of
146 vtkInteractorStyleBaseView class (see the doxygen documentation of these
147 classes) will react to the mouse and keyboard events, and for this reason is
148 important to have a managing system of all the interactors in the scene.<br />
150 Regarding the different actions that can be made using the contours, they react
151 in a different way depending of the actual state of each one of them. For
152 example, when any contour is into an editable state, the control points are
153 visualized and can be moved, removed, etc. In brief, the actions applied to the
154 contours (check the <span class="text"> <strong>
155 <a class="el" href="http://www.creatis.insa-lyon.fr/site/fr/CreaMaracasVisuUserGuide#Contours">User Guide</a> </strong> </span>
156 documentation) are described as a state diagram and every contours reacts
157 depending of its state.</span><br />
159 <span class="listDiagrams">Class diagrams<br />
161 </strong></span><div class="text">
163 <a href="../manualContour_MVC_HTML/index.html" class="el"> MVC (Model View Controller)</a> <br>
164 <a href="../manualContour_Model_HTML/index.html" class="el">- Model</a> <br>
165 <a href="../manualContour_View_HTML/index.html" class="el">- View</a> <br>
166 <a href="../manualContour_Controler_HTML/index.html" class="el">- Controller</a><br />
169 <span class="listDiagrams">Sequence diagrams</span><br />
171
173 <a class="el" href="../manualContour_SeqCreateContour_HTML/index.html">To create a new
175 <div class="paragraph">
177 contour has to be created it is necessary to instantiate the MVC
178 model shown in the section before. It is important to note that Contours
179 module needs a viewer to draw and to manage the contour. For that reason,
180 after creating the model, view and controller and their relations
181 (Controller uses View and Model, and View has relation with the model), it
182 is necessary to say the viewer where it will be managed. The specific
183 methods to do this task are in the diagram.</div><br />
184 <hr /><span class="style3"><a name="Cutter"></a>Cutter</span><br>
187 <span class="listDiagrams">Component diagrams<br />
189 </strong></span><div class="text">
191 <a href="../CutModuleDiagrams_HTML/index.html" class="el"> Cutter module
196 <span class="listDiagrams">Class diagrams<br />
198 </span><div class="text"> -
199 <a href="../CutModuleDiagrams_HTML/fig141309.png" class="el"> Cutter module
200 integration </a> <br>
201 <a href="../CutModuleDiagrams_HTML/fig134653.png" class="el">-
203 <a href="../CutModuleDiagrams_HTML/fig134781.png" class="el">-
206 <hr /><span class="style3"><a name="Plotter"></a>Plotter and data representation</span><br>
210 <span class="listDiagrams">Class diagrams</span><br class="style1" />
213 <a href="../pPlotter_HTML/index.html" class="el">- pPlotter Class Diagram</a> <br>