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