67 #ifndef vtkFastSplatter_h
68 #define vtkFastSplatter_h
71 #include "vtkImagingHybridModule.h"
87 vtkSetVector6Macro(ModelBounds,
double);
88 vtkGetVectorMacro(ModelBounds,
double, 6);
95 vtkSetVector3Macro(OutputDimensions,
int);
96 vtkGetVector3Macro(OutputDimensions,
int);
114 vtkSetMacro(LimitMode,
int);
115 vtkGetMacro(LimitMode,
int);
126 vtkSetMacro(MinValue,
double);
127 vtkGetMacro(MinValue,
double);
128 vtkSetMacro(MaxValue,
double);
129 vtkGetMacro(MaxValue,
double);
137 vtkGetMacro(NumberOfPointsSplatted,
int);
151 double ModelBounds[6];
152 int OutputDimensions[3];
190 for (
vtkIdType i = 0; i < arraySize; i++)
192 if (array[i] < minValue)
194 if (array[i] > maxValue)
203 double* dataMinValue,
double* dataMaxValue)
210 for (
int c = 0; c < numComponents; c++)
216 for (t = 1; t < numTuples; t++, a += numComponents)
227 for (t = 0, a = array + c; t < numTuples; t++, a += numComponents)
236 for (t = 0, a = array + c; t < numTuples; t++, a += numComponents)
238 *a = ((maxValue - minValue) * (*a)) / (
max - min);
245 for (t = 0, a = array + c; t < numTuples; t++, a += numComponents)
262 T* array,
int numComponents,
vtkIdType numTuples, T minValue, T maxValue,
double min,
double max)
267 for (
int c = 0; c < numComponents; c++)
272 for (t = 0, a = array + c; t < numTuples; t++, a += numComponents)
274 *a -=
static_cast<T
>(min);
281 for (t = 0, a = array + c; t < numTuples; t++, a += numComponents)
283 *a =
static_cast<T
>(((maxValue - minValue) * (*a)) / (
max - min));
290 for (t = 0, a = array + c; t < numTuples; t++, a += numComponents)
Proxy object to connect input/output ports.
A splatter optimized for splatting single kernels.
int NumberOfPointsSplatted
int FillInputPortInformation(int port, vtkInformation *info) override
These method should be reimplemented by subclasses that have more than a single input or single outpu...
int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
Subclasses can reimplement this method to translate the update extent requests from each output port ...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetLimitModeToFreezeScale()
Set/get the way voxel values will be limited.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called in response to a REQUEST_DATA request from the executive.
void SetLimitModeToNone()
Set/get the way voxel values will be limited.
void SetLimitModeToClamp()
Set/get the way voxel values will be limited.
static vtkFastSplatter * New()
void SetSplatConnection(vtkAlgorithmOutput *)
Convenience function for connecting the splat algorithm source.
void SetLimitModeToScale()
Set/get the way voxel values will be limited.
~vtkFastSplatter() override
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
Subclasses can reimplement this method to collect information from their inputs and set information f...
Generic algorithm superclass for image algs.
topologically and geometrically regular array of data
a simple class to control print indentation
void vtkFastSplatterClamp(T *array, vtkIdType arraySize, T minValue, T maxValue)
void vtkFastSplatterFrozenScale(T *array, int numComponents, vtkIdType numTuples, T minValue, T maxValue, double min, double max)
void vtkFastSplatterScale(T *array, int numComponents, vtkIdType numTuples, T minValue, T maxValue, double *dataMinValue, double *dataMaxValue)