34#ifndef vtkThreadedImageAlgorithm_h
35#define vtkThreadedImageAlgorithm_h
37#include "vtkCommonExecutionModelModule.h"
39#include "vtkThreads.h"
58 int extent[6],
int threadId);
68 vtkGetMacro(EnableSMP,
bool);
69 vtkSetMacro(EnableSMP,
bool);
85 vtkSetVector3Macro(MinimumPieceSize,
int);
86 vtkGetVector3Macro(MinimumPieceSize,
int);
108 vtkSetClampMacro(SplitMode,
int, 0, 2);
112 vtkGetMacro(SplitMode,
int);
120 vtkSetClampMacro(NumberOfThreads,
int, 1, VTK_MAX_THREADS);
121 vtkGetMacro(NumberOfThreads,
int);
127 virtual int SplitExtent(
int splitExt[6],
int startExt[6],
int num,
int total);
149 int MinimumPieceSize[3];
183 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.