You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							128 lines
						
					
					
						
							5.1 KiB
						
					
					
				
			
		
		
	
	
							128 lines
						
					
					
						
							5.1 KiB
						
					
					
				/*=========================================================================
 | 
						|
 | 
						|
  Program:   Visualization Toolkit
 | 
						|
  Module:    $RCSfile: vtkImageRectilinearWipe.h,v $
 | 
						|
 | 
						|
  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();
 | 
						|
  vtkTypeRevisionMacro(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
 | 
						|
 |