VTK  9.2.6
vtkCheckerboardSplatter.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkCheckerboardSplatter.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
97
98#ifndef vtkCheckerboardSplatter_h
99#define vtkCheckerboardSplatter_h
100
101#include "vtkImageAlgorithm.h"
102#include "vtkImagingHybridModule.h" // For export macro
103
104#define VTK_ACCUMULATION_MODE_MIN 0
105#define VTK_ACCUMULATION_MODE_MAX 1
106#define VTK_ACCUMULATION_MODE_SUM 2
107
108class vtkDoubleArray;
110
111class VTKIMAGINGHYBRID_EXPORT vtkCheckerboardSplatter : public vtkImageAlgorithm
112{
113public:
115 void PrintSelf(ostream& os, vtkIndent indent) override;
116
123
125
129 void SetSampleDimensions(int i, int j, int k);
130 void SetSampleDimensions(int dim[3]);
131 vtkGetVectorMacro(SampleDimensions, int, 3);
133
135
141 vtkSetVector6Macro(ModelBounds, double);
142 vtkGetVectorMacro(ModelBounds, double, 6);
144
146
156 vtkSetClampMacro(Footprint, int, 0, VTK_INT_MAX);
157 vtkGetMacro(Footprint, int);
159
161
167 vtkSetClampMacro(Radius, double, 0.0, VTK_DOUBLE_MAX);
168 vtkGetMacro(Radius, double);
170
172
177 vtkSetClampMacro(ScaleFactor, double, 0.0, VTK_DOUBLE_MAX);
178 vtkGetMacro(ScaleFactor, double);
180
182
187 vtkSetMacro(ExponentFactor, double);
188 vtkGetMacro(ExponentFactor, double);
190
192
197 vtkBooleanMacro(ScalarWarping, vtkTypeBool);
199
201
208 vtkBooleanMacro(NormalWarping, vtkTypeBool);
210
212
219 vtkSetClampMacro(Eccentricity, double, 0.001, VTK_DOUBLE_MAX);
220 vtkGetMacro(Eccentricity, double);
222
224
233 vtkGetMacro(AccumulationMode, int);
239
241
246 vtkSetMacro(OutputScalarType, int);
247 vtkGetMacro(OutputScalarType, int);
251
253
258 vtkSetMacro(Capping, vtkTypeBool);
259 vtkGetMacro(Capping, vtkTypeBool);
260 vtkBooleanMacro(Capping, vtkTypeBool);
262
264
268 vtkSetMacro(CapValue, double);
269 vtkGetMacro(CapValue, double);
271
273
280 vtkSetMacro(NullValue, double);
281 vtkGetMacro(NullValue, double);
283
285
292 vtkSetClampMacro(MaximumDimension, int, 0, 255);
293 vtkGetMacro(MaximumDimension, int);
295
297
304 vtkSetClampMacro(ParallelSplatCrossover, int, 0, 255);
305 vtkGetMacro(ParallelSplatCrossover, int);
307
313
314protected:
316 ~vtkCheckerboardSplatter() override = default;
317
318 int FillInputPortInformation(int port, vtkInformation* info) override;
321
322 int OutputScalarType; // the type of output scalars
323 int SampleDimensions[3]; // dimensions of volume to splat into
324 double Radius; // Radius factor in the Gaussian exponential function
325 int Footprint; // maximum distance splat propagates (in voxels 0->Dim)
326 double ExponentFactor; // scale exponent of gaussian function
327 double ModelBounds[6]; // bounding box of splatting dimensions
328 double Origin[3], Spacing[3]; // output geometry
329 vtkTypeBool NormalWarping; // on/off warping of splat via normal
330 double Eccentricity; // elliptic distortion due to normals
331 vtkTypeBool ScalarWarping; // on/off warping of splat via scalar
332 double ScaleFactor; // splat size influenced by scale factor
333 vtkTypeBool Capping; // Cap side of volume to close surfaces
334 double CapValue; // value to use for capping
335 int AccumulationMode; // how to combine scalar values
336 double NullValue; // initial value of voxels
337 unsigned char MaximumDimension; // max resolution of checkerboard
338 int ParallelSplatCrossover; // the point at which parallel splatting occurs
339
340private:
342 void operator=(const vtkCheckerboardSplatter&) = delete;
343};
344
345#endif
void SetOutputScalarTypeToDouble()
Set what type of scalar data this source should generate.
void SetAccumulationModeToSum()
Specify the scalar accumulation mode.
static vtkCheckerboardSplatter * New()
Construct object with dimensions=(50,50,50); automatic computation of bounds; a Footprint of 2; a Rad...
void SetAccumulationModeToMin()
Specify the scalar accumulation mode.
~vtkCheckerboardSplatter() override=default
void SetSampleDimensions(int i, int j, int k)
Set / get the dimensions of the sampling structured point set.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called in response to a REQUEST_DATA request from the executive.
const char * GetAccumulationModeAsString()
Specify the scalar accumulation mode.
virtual void SetAccumulationMode(int)
Specify the scalar accumulation mode.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetAccumulationModeToMax()
Specify the scalar accumulation mode.
void SetSampleDimensions(int dim[3])
Set / get the dimensions of the sampling structured point set.
void ComputeModelBounds(vtkDataSet *input, vtkImageData *output, vtkInformation *outInfo)
Compute the size of the sample bounding box automatically from the input data.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void SetOutputScalarTypeToFloat()
Set what type of scalar data this source should generate.
virtual void SetOutputScalarType(int)
Set what type of scalar data this source should generate.
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
Subclasses can reimplement this method to collect information from their inputs and set information f...
abstract superclass for composite (multi-block or AMR) datasets
abstract class to specify dataset behavior
Definition vtkDataSet.h:63
dynamic, self-adjusting array of double
topologically and geometrically regular array of data
a simple class to control print indentation
Definition vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
int vtkTypeBool
Definition vtkABI.h:69
#define VTK_ACCUMULATION_MODE_SUM
#define VTK_ACCUMULATION_MODE_MIN
#define VTK_ACCUMULATION_MODE_MAX
#define VTK_DOUBLE
Definition vtkType.h:55
#define VTK_DOUBLE_MAX
Definition vtkType.h:165
#define VTK_FLOAT
Definition vtkType.h:54
#define VTK_INT_MAX
Definition vtkType.h:155