VTK
vtkResliceCursor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkResliceCursor.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
34 #ifndef vtkResliceCursor_h
35 #define vtkResliceCursor_h
36 
37 #include "vtkInteractionWidgetsModule.h" // For export macro
38 #include "vtkObject.h"
39 
40 class vtkImageData;
41 class vtkPolyData;
42 class vtkPlane;
43 class vtkPlaneCollection;
44 
46 {
47 public:
48  vtkTypeMacro(vtkResliceCursor,vtkObject);
49 
50  static vtkResliceCursor *New();
51 
53 
54  virtual void SetImage(vtkImageData * );
55  vtkGetObjectMacro( Image, vtkImageData );
57 
59 
60  virtual void SetCenter( double, double, double );
61  virtual void SetCenter( double center[3] );
62  vtkGetVector3Macro( Center, double );
64 
66 
67  vtkSetVector3Macro( Thickness, double );
68  vtkGetVector3Macro( Thickness, double );
70 
72 
73  vtkSetMacro( ThickMode, int );
74  vtkGetMacro( ThickMode, int );
75  vtkBooleanMacro( ThickMode, int );
77 
79  virtual vtkPolyData * GetPolyData();
80 
82  virtual vtkPolyData * GetCenterlineAxisPolyData( int axis );
83 
85  virtual void PrintSelf(ostream& os, vtkIndent indent);
86 
90  virtual vtkPlane * GetPlane( int n );
91 
93  virtual void Update();
94 
96 
97  vtkGetVector3Macro( XAxis, double );
98  vtkGetVector3Macro( YAxis, double );
99  vtkGetVector3Macro( ZAxis, double );
100  vtkSetVector3Macro( XAxis, double );
101  vtkSetVector3Macro( YAxis, double );
102  vtkSetVector3Macro( ZAxis, double );
103  virtual double * GetAxis( int i );
105 
107 
109  vtkSetMacro( Hole, int );
110  vtkGetMacro( Hole, int );
112 
114 
115  vtkSetMacro( HoleWidth, double );
116  vtkGetMacro( HoleWidth, double );
118 
120 
122  vtkSetMacro( HoleWidthInPixels, double );
123  vtkGetMacro( HoleWidthInPixels, double );
125 
127  virtual unsigned long int GetMTime();
128 
132  virtual void Reset();
133 
134 protected:
136  ~vtkResliceCursor();
137 
138  virtual void BuildCursorGeometry();
139  virtual void BuildPolyData();
140  virtual void BuildCursorTopology();
141  virtual void BuildCursorTopologyWithHole();
142  virtual void BuildCursorTopologyWithoutHole();
143  virtual void BuildCursorGeometryWithoutHole();
144  virtual void BuildCursorGeometryWithHole();
145  virtual void ComputeAxes();
146 
148  int Hole;
149  double HoleWidth;
151  double Thickness[3];
152  double Center[3];
153  double XAxis[3];
154  double YAxis[3];
155  double ZAxis[3];
158 
159  vtkPolyData *CenterlineAxis[3];
160 
163 
164 private:
165  vtkResliceCursor(const vtkResliceCursor&); // Not implemented.
166  void operator=(const vtkResliceCursor&); // Not implemented.
167 };
168 
169 #endif
abstract base class for most VTK objects
Definition: vtkObject.h:61
record modification and/or execution time
Definition: vtkTimeStamp.h:34
maintain a list of planes
vtkTimeStamp PolyDataBuildTime
virtual void Update()
vtkImageData * Image
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:84
#define VTKINTERACTIONWIDGETS_EXPORT
virtual void PrintSelf(ostream &os, vtkIndent indent)
virtual unsigned long GetMTime()
a simple class to control print indentation
Definition: vtkIndent.h:38
topologically and geometrically regular array of data
Definition: vtkImageData.h:44
perform various plane computations
Definition: vtkPlane.h:36
vtkPlaneCollection * ReslicePlanes
vtkPolyData * PolyData
static vtkObject * New()
Geometry for a reslice cursor.