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 =========================================================================*/
35 #ifndef vtkResliceCursor_h
36 #define vtkResliceCursor_h
37 
38 #include "vtkInteractionWidgetsModule.h" // For export macro
39 #include "vtkObject.h"
40 
41 class vtkImageData;
42 class vtkPolyData;
43 class vtkPlane;
44 class vtkPlaneCollection;
45 
46 class VTKINTERACTIONWIDGETS_EXPORT vtkResliceCursor : public vtkObject
47 {
48 public:
49  vtkTypeMacro(vtkResliceCursor,vtkObject);
50 
51  static vtkResliceCursor *New();
52 
54 
57  virtual void SetImage(vtkImageData * );
58  vtkGetObjectMacro( Image, vtkImageData );
60 
62 
65  virtual void SetCenter( double, double, double );
66  virtual void SetCenter( double center[3] );
67  vtkGetVector3Macro( Center, double );
69 
71 
74  vtkSetVector3Macro( Thickness, double );
75  vtkGetVector3Macro( Thickness, double );
77 
79 
82  vtkSetMacro( ThickMode, vtkTypeBool );
83  vtkGetMacro( ThickMode, vtkTypeBool );
84  vtkBooleanMacro( ThickMode, vtkTypeBool );
86 
90  virtual vtkPolyData * GetPolyData();
91 
95  virtual vtkPolyData * GetCenterlineAxisPolyData( int axis );
96 
100  void PrintSelf(ostream& os, vtkIndent indent) override;
101 
107  virtual vtkPlane * GetPlane( int n );
108 
112  virtual void Update();
113 
115 
118  vtkGetVector3Macro( XAxis, double );
119  vtkGetVector3Macro( YAxis, double );
120  vtkGetVector3Macro( ZAxis, double );
121  vtkSetVector3Macro( XAxis, double );
122  vtkSetVector3Macro( YAxis, double );
123  vtkSetVector3Macro( ZAxis, double );
124  virtual double * GetAxis( int i );
126 
128 
132  vtkSetMacro( Hole, int );
133  vtkGetMacro( Hole, int );
135 
137 
140  vtkSetMacro( HoleWidth, double );
141  vtkGetMacro( HoleWidth, double );
143 
145 
149  vtkSetMacro( HoleWidthInPixels, double );
150  vtkGetMacro( HoleWidthInPixels, double );
152 
156  vtkMTimeType GetMTime() override;
157 
163  virtual void Reset();
164 
165 protected:
167  ~vtkResliceCursor() override;
168 
169  virtual void BuildCursorGeometry();
170  virtual void BuildPolyData();
171  virtual void BuildCursorTopology();
172  virtual void BuildCursorTopologyWithHole();
173  virtual void BuildCursorTopologyWithoutHole();
174  virtual void BuildCursorGeometryWithoutHole();
175  virtual void BuildCursorGeometryWithHole();
176  virtual void ComputeAxes();
177 
179  int Hole;
180  double HoleWidth;
182  double Thickness[3];
183  double Center[3];
184  double XAxis[3];
185  double YAxis[3];
186  double ZAxis[3];
189 
190  vtkPolyData *CenterlineAxis[3];
191 
194 
195 private:
196  vtkResliceCursor(const vtkResliceCursor&) = delete;
197  void operator=(const vtkResliceCursor&) = delete;
198 };
199 
200 #endif
abstract base class for most VTK objects
Definition: vtkObject.h:59
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:302
record modification and/or execution time
Definition: vtkTimeStamp.h:35
maintain a list of planes
vtkTimeStamp PolyDataBuildTime
vtkImageData * Image
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:85
int vtkTypeBool
Definition: vtkABI.h:69
a simple class to control print indentation
Definition: vtkIndent.h:39
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
virtual vtkMTimeType GetMTime()
Return this object's modified time.
perform various plane computations
Definition: vtkPlane.h:37
vtkPlaneCollection * ReslicePlanes
vtkPolyData * PolyData
vtkTypeBool ThickMode
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
Geometry for a reslice cursor.