VTK  9.5.20250802
vtkResliceCursorPolyDataAlgorithm.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
20#ifndef vtkResliceCursorPolyDataAlgorithm_h
21#define vtkResliceCursorPolyDataAlgorithm_h
22
23#include "vtkInteractionWidgetsModule.h" // For export macro
25#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
26
27VTK_ABI_NAMESPACE_BEGIN
28class vtkCutter;
30class vtkPlane;
31class vtkBox;
32class vtkClipPolyData;
34
35class VTKINTERACTIONWIDGETS_EXPORT VTK_MARSHALAUTO vtkResliceCursorPolyDataAlgorithm
37{
38public:
40 void PrintSelf(ostream& os, vtkIndent indent) override;
41
43
45
48 vtkSetMacro(ReslicePlaneNormal, int);
49 vtkGetMacro(ReslicePlaneNormal, int);
51
52 enum
53 {
54 XAxis = 0,
56 ZAxis
57 };
58
62 void SetReslicePlaneNormalToXAxis() { this->SetReslicePlaneNormal(XAxis); }
63 void SetReslicePlaneNormalToYAxis() { this->SetReslicePlaneNormal(YAxis); }
64 void SetReslicePlaneNormalToZAxis() { this->SetReslicePlaneNormal(ZAxis); }
65
67
71 vtkGetObjectMacro(ResliceCursor, vtkResliceCursor);
73
75
79 vtkSetVector6Macro(SliceBounds, double);
80 vtkGetVector6Macro(SliceBounds, double);
82
84
94
96
99 virtual int GetAxis1();
100 virtual int GetAxis2();
101 virtual int GetPlaneAxis1();
102 virtual int GetPlaneAxis2();
104
110
116
117protected:
120
122
123 void GetSlabPolyData(int axis, int planeAxis, vtkPolyData* pd);
124
125 virtual void CutAndClip(vtkPolyData* in, vtkPolyData* out);
126
127 // Build the reslice slab axis
129
136 double SliceBounds[6];
140 vtkPolyData* ThickAxes[2];
141
142private:
144 void operator=(const vtkResliceCursorPolyDataAlgorithm&) = delete;
145};
146
147VTK_ABI_NAMESPACE_END
148#endif
implicit function for a bounding box
Definition vtkBox.h:110
clip polygonal data with user-specified implicit function or input scalar data
Cut vtkDataSet with user-specified implicit function.
Definition vtkCutter.h:160
a simple class to control print indentation
Definition vtkIndent.h:108
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:141
Superclass for algorithms that produce only polydata as output.
concrete dataset represents vertices, lines, polygons, and triangle strips
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
#define VTK_MARSHALAUTO