28#ifndef vtkThreadedImageAlgorithm_h
29#define vtkThreadedImageAlgorithm_h
31#include "vtkCommonExecutionModelModule.h"
33#include "vtkThreads.h"
52 int extent[6],
int threadId);
62 vtkGetMacro(EnableSMP,
bool);
63 vtkSetMacro(EnableSMP,
bool);
79 vtkSetVector3Macro(MinimumPieceSize,
int);
80 vtkGetVector3Macro(MinimumPieceSize,
int);
102 vtkSetClampMacro(SplitMode,
int, 0, 2);
106 vtkGetMacro(SplitMode,
int);
114 vtkSetClampMacro(NumberOfThreads,
int, 1, VTK_MAX_THREADS);
115 vtkGetMacro(NumberOfThreads,
int);
121 virtual int SplitExtent(
int splitExt[6],
int startExt[6],
int num,
int total);
143 int MinimumPieceSize[3];
177 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.