VTK
vtkEllipsoidalGaussianKernel.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkEllipsoidalGaussianKernel.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 =========================================================================*/
47 #ifndef vtkEllipsoidalGaussianKernel_h
48 #define vtkEllipsoidalGaussianKernel_h
49 
50 #include "vtkFiltersPointsModule.h" // For export macro
51 #include "vtkGeneralizedKernel.h"
52 #include "vtkStdString.h" // For vtkStdString ivars
53 
54 class vtkIdList;
55 class vtkDataArray;
56 class vtkDoubleArray;
57 
58 
59 class VTKFILTERSPOINTS_EXPORT vtkEllipsoidalGaussianKernel : public vtkGeneralizedKernel
60 {
61 public:
63 
68  void PrintSelf(ostream& os, vtkIndent indent) override;
70 
76  vtkPointData *pd) override;
77 
78  // Re-use any superclass signatures that we don't override.
80 
95  vtkIdType ComputeWeights(double x[3], vtkIdList *pIds,
96  vtkDoubleArray *prob, vtkDoubleArray *weights) override;
97 
99 
103  vtkSetMacro(UseNormals,bool);
104  vtkGetMacro(UseNormals,bool);
105  vtkBooleanMacro(UseNormals,bool);
107 
109 
115  vtkSetMacro(NormalsArrayName,vtkStdString);
116  vtkGetMacro(NormalsArrayName,vtkStdString);
118 
120 
124  vtkSetMacro(UseScalars,bool);
125  vtkGetMacro(UseScalars,bool);
126  vtkBooleanMacro(UseScalars,bool);
128 
130 
136  vtkSetMacro(ScalarsArrayName,vtkStdString);
137  vtkGetMacro(ScalarsArrayName,vtkStdString);
139 
141 
146  vtkSetClampMacro(ScaleFactor,double,0.0,VTK_DOUBLE_MAX);
147  vtkGetMacro(ScaleFactor,double);
149 
151 
156  vtkSetClampMacro(Sharpness,double,1,VTK_FLOAT_MAX);
157  vtkGetMacro(Sharpness,double);
159 
161 
167  vtkSetClampMacro(Eccentricity,double,0.000001,VTK_FLOAT_MAX);
168  vtkGetMacro(Eccentricity,double);
170 
171 protected:
173  ~vtkEllipsoidalGaussianKernel() override;
174 
177 
180 
181  double ScaleFactor;
182  double Sharpness;
183  double Eccentricity;
184 
185  // Internal structure to reduce computation
186  double F2, E2;
189 
190  void FreeStructures() override;
191 
192 private:
194  void operator=(const vtkEllipsoidalGaussianKernel&) = delete;
195 };
196 
197 #endif
vtkStdString.h
vtkEllipsoidalGaussianKernel::UseScalars
bool UseScalars
Definition: vtkEllipsoidalGaussianKernel.h:176
vtkEllipsoidalGaussianKernel
an ellipsoidal Gaussian interpolation kernel
Definition: vtkEllipsoidalGaussianKernel.h:59
vtkEllipsoidalGaussianKernel::Eccentricity
double Eccentricity
Definition: vtkEllipsoidalGaussianKernel.h:183
vtkPointData
represent and manipulate point attribute data
Definition: vtkPointData.h:31
vtkEllipsoidalGaussianKernel::Sharpness
double Sharpness
Definition: vtkEllipsoidalGaussianKernel.h:182
vtkIdType
int vtkIdType
Definition: vtkType.h:347
vtkObject::New
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
vtkInterpolationKernel::Initialize
virtual void Initialize(vtkAbstractPointLocator *loc, vtkDataSet *ds, vtkPointData *pd)
Initialize the kernel.
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:48
vtkGeneralizedKernel.h
vtkEllipsoidalGaussianKernel::UseNormals
bool UseNormals
Definition: vtkEllipsoidalGaussianKernel.h:175
vtkEllipsoidalGaussianKernel::ScalarsArrayName
vtkStdString ScalarsArrayName
Definition: vtkEllipsoidalGaussianKernel.h:179
vtkEllipsoidalGaussianKernel::F2
double F2
Definition: vtkEllipsoidalGaussianKernel.h:186
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkGeneralizedKernel
flexible, general interpolation kernels
Definition: vtkGeneralizedKernel.h:70
vtkGeneralizedKernel::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkIdList
list of point or cell ids
Definition: vtkIdList.h:30
vtkEllipsoidalGaussianKernel::NormalsArray
vtkDataArray * NormalsArray
Definition: vtkEllipsoidalGaussianKernel.h:187
VTK_FLOAT_MAX
#define VTK_FLOAT_MAX
Definition: vtkType.h:167
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:56
vtkEllipsoidalGaussianKernel::NormalsArrayName
vtkStdString NormalsArrayName
Definition: vtkEllipsoidalGaussianKernel.h:178
vtkEllipsoidalGaussianKernel::ScalarsArray
vtkDataArray * ScalarsArray
Definition: vtkEllipsoidalGaussianKernel.h:188
vtkAbstractPointLocator
abstract class to quickly locate points in 3-space
Definition: vtkAbstractPointLocator.h:38
vtkDoubleArray
dynamic, self-adjusting array of double
Definition: vtkDoubleArray.h:35
vtkStdString
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:34
vtkGeneralizedKernel::ComputeWeights
virtual vtkIdType ComputeWeights(double x[3], vtkIdList *pIds, vtkDoubleArray *prob, vtkDoubleArray *weights)=0
Given a point x, a list of basis points pIds, and a probability weighting function prob,...
vtkEllipsoidalGaussianKernel::ScaleFactor
double ScaleFactor
Definition: vtkEllipsoidalGaussianKernel.h:181
vtkInterpolationKernel::FreeStructures
virtual void FreeStructures()
VTK_DOUBLE_MAX
#define VTK_DOUBLE_MAX
Definition: vtkType.h:169