VTK  9.1.0
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 class VTKFILTERSPOINTS_EXPORT vtkEllipsoidalGaussianKernel : public vtkGeneralizedKernel
59 {
60 public:
62 
67  void PrintSelf(ostream& os, vtkIndent indent) override;
69 
75 
76  // Re-use any superclass signatures that we don't override.
78 
94  double x[3], vtkIdList* pIds, vtkDoubleArray* prob, vtkDoubleArray* weights) override;
95 
97 
101  vtkSetMacro(UseNormals, bool);
102  vtkGetMacro(UseNormals, bool);
103  vtkBooleanMacro(UseNormals, bool);
105 
107 
113  vtkSetMacro(NormalsArrayName, vtkStdString);
114  vtkGetMacro(NormalsArrayName, vtkStdString);
116 
118 
122  vtkSetMacro(UseScalars, bool);
123  vtkGetMacro(UseScalars, bool);
124  vtkBooleanMacro(UseScalars, bool);
126 
128 
134  vtkSetMacro(ScalarsArrayName, vtkStdString);
135  vtkGetMacro(ScalarsArrayName, vtkStdString);
137 
139 
144  vtkSetClampMacro(ScaleFactor, double, 0.0, VTK_DOUBLE_MAX);
145  vtkGetMacro(ScaleFactor, double);
147 
149 
154  vtkSetClampMacro(Sharpness, double, 1, VTK_FLOAT_MAX);
155  vtkGetMacro(Sharpness, double);
157 
159 
165  vtkSetClampMacro(Eccentricity, double, 0.000001, VTK_FLOAT_MAX);
166  vtkGetMacro(Eccentricity, double);
168 
169 protected:
172 
175 
178 
179  double ScaleFactor;
180  double Sharpness;
181  double Eccentricity;
182 
183  // Internal structure to reduce computation
184  double F2, E2;
187 
188  void FreeStructures() override;
189 
190 private:
192  void operator=(const vtkEllipsoidalGaussianKernel&) = delete;
193 };
194 
195 #endif
abstract class to quickly locate points in 3-space
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:50
abstract class to specify dataset behavior
Definition: vtkDataSet.h:57
dynamic, self-adjusting array of double
an ellipsoidal Gaussian interpolation kernel
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for instantiation, obtaining type information, and printing.
static vtkEllipsoidalGaussianKernel * New()
Standard methods for instantiation, obtaining type information, and printing.
void FreeStructures() override
~vtkEllipsoidalGaussianKernel() override
vtkIdType ComputeWeights(double x[3], vtkIdList *pIds, vtkDoubleArray *prob, vtkDoubleArray *weights) override
Given a point x, a list of basis points pIds, and a probability weighting function prob,...
void Initialize(vtkAbstractPointLocator *loc, vtkDataSet *ds, vtkPointData *pd) override
Initialize the kernel.
flexible, general interpolation kernels
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,...
list of point or cell ids
Definition: vtkIdList.h:31
a simple class to control print indentation
Definition: vtkIndent.h:34
represent and manipulate point attribute data
Definition: vtkPointData.h:33
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:36
int vtkIdType
Definition: vtkType.h:332
#define VTK_DOUBLE_MAX
Definition: vtkType.h:165
#define VTK_FLOAT_MAX
Definition: vtkType.h:163