00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00030
#ifndef __vtkImageToImageFilter_h
00031
#define __vtkImageToImageFilter_h
00032
00033
#include "vtkImageSource.h"
00034
00035
class vtkMultiThreader;
00036
00037 class VTK_FILTERING_EXPORT vtkImageToImageFilter :
public vtkImageSource
00038 {
00039
public:
00040 vtkTypeRevisionMacro(vtkImageToImageFilter,
vtkImageSource);
00041
void PrintSelf(ostream& os,
vtkIndent indent);
00042
00044
00045
virtual void SetInput(
vtkImageData *input);
00046
vtkImageData *GetInput();
00048
00050
00051 void SetBypass(
int ) {};
00052 void BypassOn() {};
00053 void BypassOff() {};
00054 vtkGetMacro(Bypass,
int);
00056
00058
00062
virtual void ThreadedExecute(
vtkImageData *inData,
00063
vtkImageData *outData,
00064
int extent[6],
int threadId);
00066
00068
00069 vtkSetClampMacro( NumberOfThreads,
int, 1, VTK_MAX_THREADS );
00070 vtkGetMacro( NumberOfThreads,
int );
00072
00073 void SetInputMemoryLimit(
int)
00074 {vtkErrorMacro( <<
"SetInputMemoryLimit is obsolete: Use a vtkImageDataStreamer instead!" );};
00075 long GetInputMemoryLimit()
00076 {vtkErrorMacro( <<
"GetInputMemoryLimit is obsolete: Use a vtkImageDataStreamer instead!" );
return 0;};
00077
00079
00080
virtual int SplitExtent(
int splitExt[6],
int startExt[6],
00081
int num,
int total);
00083
00084
protected:
00085 vtkImageToImageFilter();
00086 ~vtkImageToImageFilter();
00087
00088 vtkMultiThreader *Threader;
00089 int Bypass;
00090 int BypassWasOn;
00091 int NumberOfThreads;
00092
00093
00094
void ExecuteInformation();
00095
00096
virtual void ExecuteInformation(
vtkImageData *inData,
vtkImageData *outData);
00097
00098
00099
00100
void ExecuteData(
vtkDataObject *output);
00101
00102
00103
virtual vtkImageData *
AllocateOutputData(
vtkDataObject *out);
00104
00105
00106
void MultiThread(
vtkImageData *input,
vtkImageData *output);
00107
00108
void ComputeInputUpdateExtents(
vtkDataObject *output );
00109
virtual void ComputeInputUpdateExtent(
int inExt[6],
int outExt[6]);
00110
00111 char *InputScalarsSelection;
00112 vtkSetStringMacro(InputScalarsSelection);
00113
00114
private:
00115 vtkImageToImageFilter(
const vtkImageToImageFilter&);
00116
void operator=(
const vtkImageToImageFilter&);
00117 };
00118
00119
#endif
00120
00121
00122
00123
00124
00125
00126