22#ifndef vtkThreadedImageAlgorithm_h
23#define vtkThreadedImageAlgorithm_h
25#include "vtkCommonExecutionModelModule.h"
27#include "vtkThreads.h"
29VTK_ABI_NAMESPACE_BEGIN
47 int extent[6],
int threadId);
57 vtkGetMacro(EnableSMP,
bool);
58 vtkSetMacro(EnableSMP,
bool);
74 vtkSetVector3Macro(MinimumPieceSize,
int);
75 vtkGetVector3Macro(MinimumPieceSize,
int);
97 vtkSetClampMacro(SplitMode,
int, 0, 2);
101 vtkGetMacro(SplitMode,
int);
109 vtkSetClampMacro(NumberOfThreads,
int, 1, VTK_MAX_THREADS);
110 vtkGetMacro(NumberOfThreads,
int);
116 virtual int SplitExtent(
int splitExt[6],
int startExt[6],
int num,
int total);
138 int MinimumPieceSize[3];
172 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.