VTK
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 =========================================================================*/
98 #ifndef vtkCheckerboardSplatter_h
99 #define vtkCheckerboardSplatter_h
100 
101 #include "vtkImagingHybridModule.h" // For export macro
102 #include "vtkImageAlgorithm.h"
103 
104 #define VTK_ACCUMULATION_MODE_MIN 0
105 #define VTK_ACCUMULATION_MODE_MAX 1
106 #define VTK_ACCUMULATION_MODE_SUM 2
107 
108 class vtkDoubleArray;
109 class vtkCompositeDataSet;
110 
111 class VTKIMAGINGHYBRID_EXPORT vtkCheckerboardSplatter : public vtkImageAlgorithm
112 {
113 public:
115  void PrintSelf(ostream& os, vtkIndent indent) override;
116 
122  static vtkCheckerboardSplatter *New();
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 
195  vtkSetMacro(ScalarWarping,vtkTypeBool);
196  vtkGetMacro(ScalarWarping,vtkTypeBool);
197  vtkBooleanMacro(ScalarWarping,vtkTypeBool);
199 
201 
206  vtkSetMacro(NormalWarping,vtkTypeBool);
207  vtkGetMacro(NormalWarping,vtkTypeBool);
208  vtkBooleanMacro(NormalWarping,vtkTypeBool);
210 
212 
219  vtkSetClampMacro(Eccentricity,double,0.001,VTK_DOUBLE_MAX);
220  vtkGetMacro(Eccentricity,double);
222 
224 
232  vtkSetClampMacro(AccumulationMode,int,
234  vtkGetMacro(AccumulationMode,int);
236  {this->SetAccumulationMode(VTK_ACCUMULATION_MODE_MIN);}
238  {this->SetAccumulationMode(VTK_ACCUMULATION_MODE_MAX);}
240  {this->SetAccumulationMode(VTK_ACCUMULATION_MODE_SUM);}
241  const char *GetAccumulationModeAsString();
243 
245 
250  vtkSetMacro(OutputScalarType,int);
251  vtkGetMacro(OutputScalarType,int);
253  {this->SetOutputScalarType(VTK_DOUBLE);}
255  {this->SetOutputScalarType(VTK_FLOAT);}
257 
259 
264  vtkSetMacro(Capping,vtkTypeBool);
265  vtkGetMacro(Capping,vtkTypeBool);
266  vtkBooleanMacro(Capping,vtkTypeBool);
268 
270 
274  vtkSetMacro(CapValue,double);
275  vtkGetMacro(CapValue,double);
277 
279 
286  vtkSetMacro(NullValue,double);
287  vtkGetMacro(NullValue,double);
289 
291 
298  vtkSetClampMacro(MaximumDimension,int,0,255);
299  vtkGetMacro(MaximumDimension,int);
301 
303 
310  vtkSetClampMacro(ParallelSplatCrossover,int,0,255);
311  vtkGetMacro(ParallelSplatCrossover,int);
313 
318  void ComputeModelBounds(vtkDataSet *input, vtkImageData *output,
319  vtkInformation *outInfo);
320 
321 protected:
324 
325  int FillInputPortInformation(int port, vtkInformation* info) override;
328  vtkInformationVector *) override;
331  vtkInformationVector *) override;
332 
333  int OutputScalarType; //the type of output scalars
334  int SampleDimensions[3]; // dimensions of volume to splat into
335  double Radius; // Radius factor in the Gaussian exponential function
336  int Footprint; // maximum distance splat propagates (in voxels 0->Dim)
337  double ExponentFactor; // scale exponent of gaussian function
338  double ModelBounds[6]; // bounding box of splatting dimensions
339  double Origin[3], Spacing[3]; // output geometry
340  vtkTypeBool NormalWarping; // on/off warping of splat via normal
341  double Eccentricity;// elliptic distortion due to normals
342  vtkTypeBool ScalarWarping; // on/off warping of splat via scalar
343  double ScaleFactor; // splat size influenced by scale factor
344  vtkTypeBool Capping; // Cap side of volume to close surfaces
345  double CapValue; // value to use for capping
346  int AccumulationMode; // how to combine scalar values
347  double NullValue; // initial value of voxels
348  unsigned char MaximumDimension; // max resolution of checkerboard
349  int ParallelSplatCrossover; //the point at which parallel splatting occurs
350 
351 private:
353  void operator=(const vtkCheckerboardSplatter&) = delete;
354 };
355 
356 #endif
vtkImageAlgorithm::RequestData
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called in response to a REQUEST_DATA request from the executive.
VTK_INT_MAX
#define VTK_INT_MAX
Definition: vtkType.h:159
vtkCheckerboardSplatter::Radius
double Radius
Definition: vtkCheckerboardSplatter.h:335
vtkCheckerboardSplatter
splat points into a volume with an elliptical, Gaussian distribution
Definition: vtkCheckerboardSplatter.h:111
vtkCheckerboardSplatter::ParallelSplatCrossover
int ParallelSplatCrossover
Definition: vtkCheckerboardSplatter.h:349
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkCheckerboardSplatter::CapValue
double CapValue
Definition: vtkCheckerboardSplatter.h:345
VTK_ACCUMULATION_MODE_SUM
#define VTK_ACCUMULATION_MODE_SUM
Definition: vtkCheckerboardSplatter.h:106
vtkImageAlgorithm.h
vtkCheckerboardSplatter::AccumulationMode
int AccumulationMode
Definition: vtkCheckerboardSplatter.h:346
VTK_ACCUMULATION_MODE_MIN
#define VTK_ACCUMULATION_MODE_MIN
Definition: vtkCheckerboardSplatter.h:104
vtkImageAlgorithm
Generic algorithm superclass for image algs.
Definition: vtkImageAlgorithm.h:40
vtkCheckerboardSplatter::ScaleFactor
double ScaleFactor
Definition: vtkCheckerboardSplatter.h:343
vtkCompositeDataSet
abstract superclass for composite (multi-block or AMR) datasets
Definition: vtkCompositeDataSet.h:51
vtkCheckerboardSplatter::SetOutputScalarTypeToFloat
void SetOutputScalarTypeToFloat()
Definition: vtkCheckerboardSplatter.h:254
vtkX3D::port
Definition: vtkX3D.h:447
VTK_ACCUMULATION_MODE_MAX
#define VTK_ACCUMULATION_MODE_MAX
Definition: vtkCheckerboardSplatter.h:105
vtkCheckerboardSplatter::ScalarWarping
vtkTypeBool ScalarWarping
Definition: vtkCheckerboardSplatter.h:342
vtkCheckerboardSplatter::Footprint
int Footprint
Definition: vtkCheckerboardSplatter.h:336
vtkImageAlgorithm::RequestInformation
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
Subclasses can reimplement this method to collect information from their inputs and set information f...
vtkCheckerboardSplatter::Capping
vtkTypeBool Capping
Definition: vtkCheckerboardSplatter.h:344
vtkCheckerboardSplatter::OutputScalarType
int OutputScalarType
Definition: vtkCheckerboardSplatter.h:333
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
VTK_FLOAT
#define VTK_FLOAT
Definition: vtkType.h:58
VTK_DOUBLE
#define VTK_DOUBLE
Definition: vtkType.h:59
vtkCheckerboardSplatter::SetAccumulationModeToMin
void SetAccumulationModeToMin()
Definition: vtkCheckerboardSplatter.h:235
vtkCheckerboardSplatter::SetOutputScalarTypeToDouble
void SetOutputScalarTypeToDouble()
Definition: vtkCheckerboardSplatter.h:252
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkX3D::info
Definition: vtkX3D.h:376
vtkImageAlgorithm::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkAlgorithm::New
static vtkAlgorithm * New()
vtkCheckerboardSplatter::SetAccumulationModeToSum
void SetAccumulationModeToSum()
Definition: vtkCheckerboardSplatter.h:239
vtkCheckerboardSplatter::MaximumDimension
unsigned char MaximumDimension
Definition: vtkCheckerboardSplatter.h:348
vtkCheckerboardSplatter::~vtkCheckerboardSplatter
~vtkCheckerboardSplatter() override
Definition: vtkCheckerboardSplatter.h:323
vtkCheckerboardSplatter::NormalWarping
vtkTypeBool NormalWarping
Definition: vtkCheckerboardSplatter.h:340
vtkDoubleArray
dynamic, self-adjusting array of double
Definition: vtkDoubleArray.h:41
vtkCheckerboardSplatter::NullValue
double NullValue
Definition: vtkCheckerboardSplatter.h:347
vtkCheckerboardSplatter::Eccentricity
double Eccentricity
Definition: vtkCheckerboardSplatter.h:341
vtkCheckerboardSplatter::SetAccumulationModeToMax
void SetAccumulationModeToMax()
Definition: vtkCheckerboardSplatter.h:237
vtkImageAlgorithm::FillInputPortInformation
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
VTK_DOUBLE_MAX
#define VTK_DOUBLE_MAX
Definition: vtkType.h:169
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkCheckerboardSplatter::ExponentFactor
double ExponentFactor
Definition: vtkCheckerboardSplatter.h:337