Computer Assited Medical Intervention Tool Kit  version 3.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
InterfaceBitMap.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * $CAMITK_LICENCE_BEGIN$
3  *
4  * CamiTK - Computer Assisted Medical Intervention ToolKit
5  * (c) 2001-2013 UJF-Grenoble 1, CNRS, TIMC-IMAG UMR 5525 (GMCAO)
6  *
7  * Visit http://camitk.imag.fr for more information
8  *
9  * This file is part of CamiTK.
10  *
11  * CamiTK is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * CamiTK is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License version 3 for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * version 3 along with CamiTK. If not, see <http://www.gnu.org/licenses/>.
22  *
23  * $CAMITK_LICENCE_END$
24  ****************************************************************************/
25 
26 #ifndef INTERFACEBITMAP_H
27 #define INTERFACEBITMAP_H
28 
29 // -- vtk stuff
30 #include <vtkSmartPointer.h>
31 #include <vtkProp.h>
32 #include <QMap>
33 #include <QString>
34 
35 // -- vtk stuff Classes
36 class vtkImageActor;
37 class vtkActor;
38 class vtkImageData;
39 class vtkWindowLevelLookupTable;
40 
41 
42 namespace camitk
43 {
44 // -- Core stuff Classes
45 class Component;
46 
60 
61  public:
62 
91  };
92 
94  virtual ~InterfaceBitMap() {};
95 
97  virtual vtkSmartPointer<vtkImageData> getImageData() const = 0;
98 
100  virtual void setOriginalVolume(vtkSmartPointer<vtkImageData>) = 0;
101 
103  virtual vtkSmartPointer<vtkImageActor> get2DImageActor() const = 0;
104 
106  virtual vtkSmartPointer<vtkImageActor> get3DImageActor() const = 0;
107 
108 
109 // /** Return the vtkActor used to pick pixels in the slices. */
110  virtual vtkSmartPointer<vtkActor> getPickPlaneActor() const = 0;
111 
113  virtual vtkSmartPointer<vtkActor> getPixelActor() = 0;
114 
118  virtual void pixelPicked(double, double, double) = 0;
119 
120  virtual void updatePickPlane() = 0;
121 
123  virtual int getNumberOfSlices() const = 0;
124 
126  virtual int getSlice() const = 0;
127 
132  virtual void setSlice(int s) = 0;
133 
135  virtual void setSlice(double x, double y, double z) = 0;
136 
138  virtual double getRotationX() const = 0;
139  virtual double getRotationY() const = 0;
140  virtual double getRotationZ() const = 0;
141 
143  virtual void setRotationX(double angle) = 0;
144  virtual void setRotationY(double angle) = 0;
145  virtual void setRotationZ(double angle) = 0;
146 
147 
151  virtual int getNumberOfColors() const = 0;
152 
154  virtual void setPixelRealPosition(double, double, double) = 0;
155 
156  // TODO : put all of this into a dedicated interface
158  QMap<QString, vtkSmartPointer<vtkProp> > extraProp;
159 
161  virtual vtkSmartPointer<vtkProp> getProp(const QString &) = 0;
162 
164  virtual unsigned int getNumberOfProp() const = 0;
165 
167  virtual vtkSmartPointer<vtkProp> getProp(unsigned int) = 0;
168 
172  virtual bool addProp(const QString &, vtkSmartPointer<vtkProp>) = 0;
173 
177  virtual bool removeProp(const QString &) = 0;
178  // END TODO
179 
180 };
181 
182 }
183 
184 #endif