VTK  9.2.6
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 
130  vtkGetVector3Macro(XViewUp, double);
131  vtkGetVector3Macro(YViewUp, double);
132  vtkGetVector3Macro(ZViewUp, double);
133  vtkSetVector3Macro(XViewUp, double);
134  vtkSetVector3Macro(YViewUp, double);
135  vtkSetVector3Macro(ZViewUp, double);
136  double* GetViewUp(int i);
137 
139 
143  vtkSetMacro(Hole, int);
144  vtkGetMacro(Hole, int);
146 
148 
151  vtkSetMacro(HoleWidth, double);
152  vtkGetMacro(HoleWidth, double);
154 
156 
160  vtkSetMacro(HoleWidthInPixels, double);
161  vtkGetMacro(HoleWidthInPixels, double);
163 
167  vtkMTimeType GetMTime() override;
168 
174  virtual void Reset();
175 
176 protected:
178  ~vtkResliceCursor() override;
179 
180  virtual void BuildCursorGeometry();
181  virtual void BuildPolyData();
182  virtual void BuildCursorTopology();
183  virtual void BuildCursorTopologyWithHole();
184  virtual void BuildCursorTopologyWithoutHole();
185  virtual void BuildCursorGeometryWithoutHole();
186  virtual void BuildCursorGeometryWithHole();
187  virtual void ComputeAxes();
188 
190  int Hole;
191  double HoleWidth;
193  double Thickness[3];
194  double Center[3];
195  double XAxis[3];
196  double YAxis[3];
197  double ZAxis[3];
198  double XViewUp[3];
199  double YViewUp[3];
200  double ZViewUp[3];
203 
204  vtkPolyData* CenterlineAxis[3];
205 
208 
209 private:
210  vtkResliceCursor(const vtkResliceCursor&) = delete;
211  void operator=(const vtkResliceCursor&) = delete;
212 };
213 
214 #endif
abstract base class for most VTK objects
Definition: vtkObject.h:62
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287
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:90
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:53
virtual vtkMTimeType GetMTime()
Return this object's modified time.
perform various plane computations
Definition: vtkPlane.h:36
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.