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 =========================================================================*/
50 #ifndef vtkEllipsoidalGaussianKernel_h
51 #define vtkEllipsoidalGaussianKernel_h
52 
53 #include "vtkFiltersPointsModule.h" // For export macro
54 #include "vtkGeneralizedKernel.h"
55 #include "vtkStdString.h" // For vtkStdString ivars
56 
57 class vtkIdList;
58 class vtkDataArray;
59 class vtkDoubleArray;
60 
61 
62 class VTKFILTERSPOINTS_EXPORT vtkEllipsoidalGaussianKernel : public vtkGeneralizedKernel
63 {
64 public:
66 
71  void PrintSelf(ostream& os, vtkIndent indent) override;
73 
79  vtkPointData *pd) override;
80 
81  // Re-use any superclass signatures that we don't override.
83 
98  vtkIdType ComputeWeights(double x[3], vtkIdList *pIds,
99  vtkDoubleArray *prob, vtkDoubleArray *weights) override;
100 
102 
106  vtkSetMacro(UseNormals,bool);
107  vtkGetMacro(UseNormals,bool);
108  vtkBooleanMacro(UseNormals,bool);
110 
112 
118  vtkSetMacro(NormalsArrayName,vtkStdString);
119  vtkGetMacro(NormalsArrayName,vtkStdString);
121 
123 
127  vtkSetMacro(UseScalars,bool);
128  vtkGetMacro(UseScalars,bool);
129  vtkBooleanMacro(UseScalars,bool);
131 
133 
139  vtkSetMacro(ScalarsArrayName,vtkStdString);
140  vtkGetMacro(ScalarsArrayName,vtkStdString);
142 
144 
149  vtkSetClampMacro(ScaleFactor,double,0.0,VTK_DOUBLE_MAX);
150  vtkGetMacro(ScaleFactor,double);
152 
154 
159  vtkSetClampMacro(Sharpness,double,1,VTK_FLOAT_MAX);
160  vtkGetMacro(Sharpness,double);
162 
164 
170  vtkSetClampMacro(Eccentricity,double,0.000001,VTK_FLOAT_MAX);
171  vtkGetMacro(Eccentricity,double);
173 
174 protected:
176  ~vtkEllipsoidalGaussianKernel() override;
177 
180 
183 
184  double ScaleFactor;
185  double Sharpness;
186  double Eccentricity;
187 
188  // Internal structure to reduce computation
189  double F2, E2;
192 
193  void FreeStructures() override;
194 
195 private:
197  void operator=(const vtkEllipsoidalGaussianKernel&) = delete;
198 };
199 
200 #endif
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:40
virtual void FreeStructures()
flexible, general interpolation kernels
represent and manipulate point attribute data
Definition: vtkPointData.h:37
#define VTK_DOUBLE_MAX
Definition: vtkType.h:167
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
int vtkIdType
Definition: vtkType.h:345
dynamic, self-adjusting array of double
#define VTK_FLOAT_MAX
Definition: vtkType.h:165
a simple class to control print indentation
Definition: vtkIndent.h:39
abstract class to quickly locate points in 3-space
list of point or cell ids
Definition: vtkIdList.h:36
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:54
an ellipsoidal Gaussian interpolation kernel
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...
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for type and printing.
virtual void Initialize(vtkAbstractPointLocator *loc, vtkDataSet *ds, vtkPointData *pd)
Initialize the kernel.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...