22#ifndef vtkThreadedImageAlgorithm_h
23#define vtkThreadedImageAlgorithm_h
25#include "vtkCommonExecutionModelModule.h"
27#include "vtkThreads.h"
30VTK_ABI_NAMESPACE_BEGIN
49 int extent[6],
int threadId);
59 vtkGetMacro(EnableSMP,
bool);
60 vtkSetMacro(EnableSMP,
bool);
76 vtkSetVector3Macro(MinimumPieceSize,
int);
77 vtkGetVector3Macro(MinimumPieceSize,
int);
99 vtkSetClampMacro(SplitMode,
int, 0, 2);
103 vtkGetMacro(SplitMode,
int);
111 vtkSetClampMacro(NumberOfThreads,
int, 1, VTK_MAX_THREADS);
112 vtkGetMacro(NumberOfThreads,
int);
118 virtual int SplitExtent(
int splitExt[6],
int startExt[6],
int num,
int total);
140 int MinimumPieceSize[3];
174 friend class vtkThreadedImageAlgorithmFunctor;
Generic algorithm superclass for image algs.
topologically and geometrically regular array of data
a simple class to control print indentation
A class for performing multithreaded execution.
Generic filter that has one input.
vtkMultiThreader * Threader
void SetSplitModeToBlock()
Set the method used to divide the volume into pieces.
static bool GlobalDefaultEnableSMP
virtual void SMPRequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inData, vtkImageData **outData, vtkIdType begin, vtkIdType end, vtkIdType pieces, int extent[6])
Execute ThreadedRequestData for the given set of pieces.
~vtkThreadedImageAlgorithm() override
void SetSplitModeToBeam()
Set the method used to divide the volume into pieces.
virtual void ThreadedExecute(vtkImageData *inData, vtkImageData *outData, int extent[6], int threadId)
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
vtkThreadedImageAlgorithm()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual int SplitExtent(int splitExt[6], int startExt[6], int num, int total)
Putting this here until I merge graphics and imaging streaming.
virtual void PrepareImageData(vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inDataObjects=nullptr, vtkImageData **outDataObjects=nullptr)
Allocate space for output data and copy attributes from first input.
void SetSplitModeToSlab()
Set the method used to divide the volume into pieces.
virtual void ThreadedRequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inData, vtkImageData **outData, int extent[6], int threadId)
If the subclass does not define an Execute method, then the task will be broken up,...
vtkIdType DesiredBytesPerPiece
static bool GetGlobalDefaultEnableSMP()
Global Disable SMP for all derived Imaging filters.
static void SetGlobalDefaultEnableSMP(bool enable)
Global Disable SMP for all derived Imaging filters.