26 #ifndef CANONICAL_SLICE_H
27 #define CANONICAL_SLICE_H
34 #include <vtkSmartPointer.h>
35 #include <vtkWindowLevelLookupTable.h>
36 #include <vtkImageMapToColors.h>
38 #include <vtkImageActor.h>
39 #include <vtkImageChangeInformation.h>
40 #include <vtkImageReslice.h>
41 #include <vtkMatrix4x4.h>
42 #include <vtkPolyDataMapper.h>
43 #include <vtkPlaneSource.h>
44 #include <vtkTransform.h>
46 #include <vtkUnstructuredGrid.h>
47 #include <vtkDataSetMapper.h>
49 #include <vtkPolygon.h>
111 Slice(vtkSmartPointer<vtkImageData> volume,
PossibleOrientation AXIAL_ORIENTATION, vtkSmartPointer<vtkWindowLevelLookupTable> lookupTable=NULL);
123 virtual vtkSmartPointer<vtkImageData> getImageData()
const;
126 virtual void setOriginalVolume(vtkSmartPointer<vtkImageData> img);
129 virtual vtkSmartPointer<vtkImageActor> get2DImageActor()
const;
132 virtual vtkSmartPointer<vtkImageActor> get3DImageActor()
const;
136 virtual vtkSmartPointer<vtkActor> getPickPlaneActor()
const;
139 virtual vtkSmartPointer<vtkActor> getPixelActor();
144 virtual void pixelPicked(
double,
double,
double);
152 void reslicedToVolumeCoords(
const double ijk[3],
double xyz[3]);
154 void volumeToReslicedCoords(
const double xyz[3],
double ijk[3]);
156 virtual void updatePickPlane();
159 virtual int getNumberOfSlices()
const;
162 virtual int getSlice()
const;
168 virtual void setSlice(
int s);
171 virtual void setSlice(
double x,
double y,
double z);
179 virtual void setRotationX(
double angle);
180 virtual void setRotationY(
double angle);
181 virtual void setRotationZ(
double angle);
182 void applyRotation();
187 virtual int getNumberOfColors()
const;
190 virtual void setPixelRealPosition(
double,
double,
double);
197 virtual vtkSmartPointer<vtkProp> getProp(
const QString &);
200 virtual unsigned int getNumberOfProp()
const;
203 virtual vtkSmartPointer<vtkProp> getProp(
unsigned int);
208 virtual bool addProp(
const QString &, vtkSmartPointer<vtkProp>);
213 virtual bool removeProp(
const QString &);
227 void setTransformOrientation(
double xCosines[3],
double yCosines[3],
double zCosines[3]);
233 void setTransformOrigin(
double resliceOrigin[3]);
239 void setInitialSlicerTransformation();
243 void updateLocalTransformation();
246 void computeReslicedDimensions();
279 int originalDimensions[3];
282 int reslicedDimensions[3];
285 double originalSpacing[3];
288 double resliceSpacing[3];
310 vtkSmartPointer<vtkWindowLevelLookupTable>
lut;
348 void initPixelActor();
360 void updatePixelActorPosition(
double x,
double y,
double z);
370 #endif // CANONICAL_SLICE_H