forked from Kitware/VTK
-
Notifications
You must be signed in to change notification settings - Fork 28
/
vtkImageRectilinearWipe.h
128 lines (110 loc) · 5.04 KB
/
vtkImageRectilinearWipe.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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/*=========================================================================
Program: Visualization Toolkit
Module: vtkImageRectilinearWipe.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 vtkImageRectilinearWipe - make a rectilinear combination of two images.
// .SECTION Description
// vtkImageRectilinearWipe makes a rectilinear combination of two
// images. The two input images must correspond in size, scalar type and
// number of components.
// The resulting image has four possible configurations
// called:
// Quad - alternate input 0 and input 1 horizontally and
// vertically. Select this with SetWipeModeToQuad. The Position
// specifies the location of the quad intersection.
// Corner - 3 of one input and 1 of the other. Select the location of
// input 0 with with SetWipeModeToLowerLeft, SetWipeModeToLowerRight,
// SetWipeModeToUpperLeft and SetWipeModeToUpperRight. The Position
// selects the location of the corner.
// Horizontal - alternate input 0 and input 1 with a vertical
// split. Select this with SetWipeModeToHorizontal. Position[0]
// specifies the location of the vertical transition between input 0
// and input 1.
// Vertical - alternate input 0 and input 1 with a horizontal
// split. Only the y The intersection point of the rectilinear points
// is controlled with the Point ivar.
// .SECTION Thanks
// This work was supported by PHS Research Grant No. 1 P41 RR13218-01
// from the National Center for Research Resources.
// .SECTION See Also
// vtkImageCheckerboard
#ifndef __vtkImageRectilinearWipe_h
#define __vtkImageRectilinearWipe_h
#include "vtkThreadedImageAlgorithm.h"
#define VTK_WIPE_QUAD 0
#define VTK_WIPE_HORIZONTAL 1
#define VTK_WIPE_VERTICAL 2
#define VTK_WIPE_LOWER_LEFT 3
#define VTK_WIPE_LOWER_RIGHT 4
#define VTK_WIPE_UPPER_LEFT 5
#define VTK_WIPE_UPPER_RIGHT 6
class VTK_IMAGING_EXPORT vtkImageRectilinearWipe : public vtkThreadedImageAlgorithm
{
public:
static vtkImageRectilinearWipe *New();
vtkTypeMacro(vtkImageRectilinearWipe,vtkThreadedImageAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Set/Get the location of the image transition. Note that position is
// specified in pixels.
vtkSetVector2Macro(Position,int);
vtkGetVectorMacro(Position,int,2);
// Description:
// Set the two inputs to this filter.
virtual void SetInput1(vtkDataObject *in) { this->SetInput(0,in); }
virtual void SetInput2(vtkDataObject *in) { this->SetInput(1,in); }
// Description:
// Specify the wipe mode. This mode determnis how input 0 and input
// 1 are combined to produce the output. Each mode uses one or both
// of the values stored in Position.
// SetWipeToQuad - alternate input 0 and input 1 horizontally and
// vertically. The Position specifies the location of the quad
// intersection.
// SetWipeToLowerLeft{LowerRight,UpperLeft.UpperRight} - 3 of one
// input and 1 of the other. Select the location of input 0 to the
// LowerLeft{LowerRight,UpperLeft,UpperRight}. Position
// selects the location of the corner.
// SetWipeToHorizontal - alternate input 0 and input 1 with a vertical
// split. Position[0] specifies the location of the vertical
// transition between input 0 and input 1.
// SetWipeToVertical - alternate input 0 and input 1 with a
// horizontal split. Position[1] specifies the location of the
// horizonal transition between input 0 and input 1.
vtkSetClampMacro(Wipe,int,VTK_WIPE_QUAD,VTK_WIPE_UPPER_RIGHT);
vtkGetMacro(Wipe,int);
void SetWipeToQuad()
{this->SetWipe(VTK_WIPE_QUAD);}
void SetWipeToHorizontal()
{this->SetWipe(VTK_WIPE_HORIZONTAL);}
void SetWipeToVertical()
{this->SetWipe(VTK_WIPE_VERTICAL);}
void SetWipeToLowerLeft()
{this->SetWipe(VTK_WIPE_LOWER_LEFT);}
void SetWipeToLowerRight()
{this->SetWipe(VTK_WIPE_LOWER_RIGHT);}
void SetWipeToUpperLeft()
{this->SetWipe(VTK_WIPE_UPPER_LEFT);}
void SetWipeToUpperRight()
{this->SetWipe(VTK_WIPE_UPPER_RIGHT);}
protected:
vtkImageRectilinearWipe();
~vtkImageRectilinearWipe() {};
virtual void ThreadedRequestData(vtkInformation *request,
vtkInformationVector **inputVector,
vtkInformationVector *outputVector,
vtkImageData ***inData,
vtkImageData **outData,
int extent[6], int threadId);
int Position[2];
int Wipe;
private:
vtkImageRectilinearWipe(const vtkImageRectilinearWipe&); // Not implemented.
void operator=(const vtkImageRectilinearWipe&); // Not implemented.
};
#endif