VTK  9.1.0
vtkResliceCursorPolyDataAlgorithm.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkResliceCursorPolyDataAlgorithm.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=========================================================================*/
32#ifndef vtkResliceCursorPolyDataAlgorithm_h
33#define vtkResliceCursorPolyDataAlgorithm_h
34
35#include "vtkInteractionWidgetsModule.h" // For export macro
37
38class vtkCutter;
40class vtkPlane;
41class vtkBox;
42class vtkClipPolyData;
44
45class VTKINTERACTIONWIDGETS_EXPORT vtkResliceCursorPolyDataAlgorithm : public vtkPolyDataAlgorithm
46{
47public:
49 void PrintSelf(ostream& os, vtkIndent indent) override;
50
52
54
57 vtkSetMacro(ReslicePlaneNormal, int);
58 vtkGetMacro(ReslicePlaneNormal, int);
60
61 enum
62 {
63 XAxis = 0,
65 ZAxis
66 };
67
71 void SetReslicePlaneNormalToXAxis() { this->SetReslicePlaneNormal(XAxis); }
72 void SetReslicePlaneNormalToYAxis() { this->SetReslicePlaneNormal(YAxis); }
73 void SetReslicePlaneNormalToZAxis() { this->SetReslicePlaneNormal(ZAxis); }
74
76
80 vtkGetObjectMacro(ResliceCursor, vtkResliceCursor);
82
84
88 vtkSetVector6Macro(SliceBounds, double);
89 vtkGetVector6Macro(SliceBounds, double);
91
93
103
105
108 virtual int GetAxis1();
109 virtual int GetAxis2();
110 virtual int GetPlaneAxis1();
111 virtual int GetPlaneAxis2();
113
119
125
126protected:
129
131
132 void GetSlabPolyData(int axis, int planeAxis, vtkPolyData* pd);
133
134 virtual void CutAndClip(vtkPolyData* in, vtkPolyData* out);
135
136 // Build the reslice slab axis
138
145 double SliceBounds[6];
149 vtkPolyData* ThickAxes[2];
150
151private:
153 void operator=(const vtkResliceCursorPolyDataAlgorithm&) = delete;
154};
155
156#endif
implicit function for a bounding box
Definition: vtkBox.h:138
clip polygonal data with user-specified implicit function or input scalar data
Cut vtkDataSet with user-specified implicit function.
Definition: vtkCutter.h:163
a simple class to control print indentation
Definition: vtkIndent.h:113
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
sweep polygonal data creating a "skirt" from free edges and lines, and lines from vertices
perform various plane computations
Definition: vtkPlane.h:143
Superclass for algorithms that produce only polydata as output.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:195
generates a 2D reslice cursor polydata
virtual vtkPolyData * GetCenterlineAxis1()
Get either one of the axes that this object produces.
virtual vtkPolyData * GetThickSlabAxis1()
Get either one of the axes that this object produces.
virtual int GetPlaneAxis2()
Get the index of the axes and the planes that they represent.
static vtkResliceCursorPolyDataAlgorithm * New()
int GetOtherPlaneForAxis(int p)
Convenience method that, given one plane, returns the other plane that this class represents.
virtual vtkPolyData * GetCenterlineAxis2()
Get either one of the axes that this object produces.
void GetSlabPolyData(int axis, int planeAxis, vtkPolyData *pd)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual int GetPlaneAxis1()
Get the index of the axes and the planes that they represent.
virtual void CutAndClip(vtkPolyData *in, vtkPolyData *out)
vtkMTimeType GetMTime() override
Get the MTime.
virtual vtkPolyData * GetThickSlabAxis2()
Get either one of the axes that this object produces.
virtual int GetAxis2()
Get the index of the axes and the planes that they represent.
virtual int GetAxis1()
Get the index of the axes and the planes that they represent.
virtual void SetResliceCursor(vtkResliceCursor *)
Set the Reslice cursor from which to generate the polydata representation.
void SetReslicePlaneNormalToXAxis()
Set the planes that correspond to the reslice axes.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
Geometry for a reslice cursor.
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287