forked from Kitware/VTK
-
Notifications
You must be signed in to change notification settings - Fork 0
/
vtkROIStencilSource.h
83 lines (67 loc) · 2.63 KB
/
vtkROIStencilSource.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/*=========================================================================
Program: Visualization Toolkit
Module: vtkROIStencilSource.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkROIStencilSource - create simple mask shapes
// .SECTION Description
// vtkROIStencilSource will create an image stencil with a
// simple shape like a box, a sphere, or a cylinder. Its output can
// be used with vtkImageStecil or other vtk classes that apply
// a stencil to an image.
// .SECTION See Also
// vtkImplicitFunctionToImageStencil vtkLassoStencilSource
// .SECTION Thanks
// Thanks to David Gobbi for contributing this class to VTK.
#ifndef vtkROIStencilSource_h
#define vtkROIStencilSource_h
#include "vtkImagingStencilModule.h" // For export macro
#include "vtkImageStencilSource.h"
class VTKIMAGINGSTENCIL_EXPORT vtkROIStencilSource : public vtkImageStencilSource
{
public:
static vtkROIStencilSource *New();
vtkTypeMacro(vtkROIStencilSource, vtkImageStencilSource);
void PrintSelf(ostream& os, vtkIndent indent);
//BTX
enum {
BOX = 0,
ELLIPSOID = 1,
CYLINDERX = 2,
CYLINDERY = 3,
CYLINDERZ = 4
};
//ETX
// Description:
// The shape of the region of interest. Cylinders can be oriented
// along the X, Y, or Z axes. The default shape is "Box".
vtkGetMacro(Shape, int);
vtkSetClampMacro(Shape, int, BOX, CYLINDERZ);
void SetShapeToBox() { this->SetShape(BOX); };
void SetShapeToEllipsoid() { this->SetShape(ELLIPSOID); };
void SetShapeToCylinderX() { this->SetShape(CYLINDERX); };
void SetShapeToCylinderY() { this->SetShape(CYLINDERY); };
void SetShapeToCylinderZ() { this->SetShape(CYLINDERZ); };
virtual const char *GetShapeAsString();
// Description:
// Set the bounds of the region of interest. The bounds take
// the spacing and origin into account.
vtkGetVector6Macro(Bounds, double);
vtkSetVector6Macro(Bounds, double);
protected:
vtkROIStencilSource();
~vtkROIStencilSource();
virtual int RequestData(vtkInformation *, vtkInformationVector **,
vtkInformationVector *);
int Shape;
double Bounds[6];
private:
vtkROIStencilSource(const vtkROIStencilSource&); // Not implemented.
void operator=(const vtkROIStencilSource&); // Not implemented.
};
#endif