VTK
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 =========================================================================*/
31 #ifndef vtkResliceCursorPolyDataAlgorithm_h
32 #define vtkResliceCursorPolyDataAlgorithm_h
33 
34 #include "vtkInteractionWidgetsModule.h" // For export macro
35 #include "vtkPolyDataAlgorithm.h"
36 
37 class vtkCutter;
38 class vtkResliceCursor;
39 class vtkPlane;
40 class vtkBox;
41 class vtkClipPolyData;
43 
45 {
46 public:
48  void PrintSelf(ostream& os, vtkIndent indent);
49 
51 
53 
54  vtkSetMacro(ReslicePlaneNormal,int);
55  vtkGetMacro(ReslicePlaneNormal,int);
57 
58 //BTX
59  enum {XAxis=0,YAxis,ZAxis};
60 //ETX
61 
63 
65  { this->SetReslicePlaneNormal(XAxis); }
67  { this->SetReslicePlaneNormal(YAxis); }
69  { this->SetReslicePlaneNormal(ZAxis); }
71 
73 
75  virtual void SetResliceCursor( vtkResliceCursor * );
76  vtkGetObjectMacro( ResliceCursor, vtkResliceCursor );
78 
80 
82  vtkSetVector6Macro( SliceBounds, double );
83  vtkGetVector6Macro( SliceBounds, double );
85 
87 
90  virtual vtkPolyData * GetCenterlineAxis1();
91  virtual vtkPolyData * GetCenterlineAxis2();
92  virtual vtkPolyData * GetThickSlabAxis1();
93  virtual vtkPolyData * GetThickSlabAxis2();
95 
97 
98  virtual int GetAxis1();
99  virtual int GetAxis2();
100  virtual int GetPlaneAxis1();
101  virtual int GetPlaneAxis2();
103 
106  int GetOtherPlaneForAxis( int p );
107 
110  virtual unsigned long int GetMTime();
111 
112 protected:
115 
119 
120  void GetSlabPolyData( int axis, int planeAxis, vtkPolyData *pd );
121 
122  virtual void CutAndClip( vtkPolyData *in, vtkPolyData *out);
123 
124  // Build the reslice slab axis
125  void BuildResliceSlabAxisTopology();
126 
133  double SliceBounds[6];
134  bool Extrude;
137  vtkPolyData *ThickAxes[2];
138 
139 private:
141  void operator=(const vtkResliceCursorPolyDataAlgorithm&); // Not implemented.
142 
143 };
144 
145 #endif
Cut vtkDataSet with user-specified implicit function.
Definition: vtkCutter.h:68
Store vtkAlgorithm input/output information.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
generates a 2D reslice cursor polydata
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:84
static vtkPolyDataAlgorithm * New()
void PrintSelf(ostream &os, vtkIndent indent)
#define VTKINTERACTIONWIDGETS_EXPORT
Superclass for algorithms that produce only polydata as output.
virtual unsigned long GetMTime()
a simple class to control print indentation
Definition: vtkIndent.h:38
perform various plane computations
Definition: vtkPlane.h:36
clip polygonal data with user-specified implicit function or input scalar data
sweep polygonal data creating a "skirt" from free edges and lines, and lines from vertices ...
Store zero or more vtkInformation instances.
implicit function for a bounding box
Definition: vtkBox.h:40
Geometry for a reslice cursor.