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
36 #include "vtkPolyDataAlgorithm.h"
37 
38 class vtkCutter;
39 class vtkResliceCursor;
40 class vtkPlane;
41 class vtkBox;
42 class vtkClipPolyData;
44 
45 class VTKINTERACTIONWIDGETS_EXPORT vtkResliceCursorPolyDataAlgorithm : public vtkPolyDataAlgorithm
46 {
47 public:
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 
124  vtkMTimeType GetMTime() override;
125 
126 protected:
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];
146  bool Extrude;
149  vtkPolyData* ThickAxes[2];
150 
151 private:
153  void operator=(const vtkResliceCursorPolyDataAlgorithm&) = delete;
154 };
155 
156 #endif
implicit function for a bounding box
Definition: vtkBox.h:39
clip polygonal data with user-specified implicit function or input scalar data
Cut vtkDataSet with user-specified implicit function.
Definition: vtkCutter.h:64
a simple class to control print indentation
Definition: vtkIndent.h:34
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:34
Superclass for algorithms that produce only polydata as output.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:86
generates a 2D reslice cursor polydata
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 vtkPolyData * GetThickSlabAxis2()
Get either one of the axes that this object produces.
virtual vtkPolyData * GetThickSlabAxis1()
Get either one of the axes that this object produces.
virtual void CutAndClip(vtkPolyData *in, vtkPolyData *out)
vtkMTimeType GetMTime() override
Get the MTime.
virtual int GetAxis2()
Get the index of the axes and the planes that they represent.
virtual vtkPolyData * GetCenterlineAxis1()
Get either one of the axes that this object produces.
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