VTK  9.0.1
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 
74  void Initialize(vtkAbstractPointLocator* loc, vtkDataSet* ds, vtkPointData* pd) override;
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:
171  ~vtkEllipsoidalGaussianKernel() override;
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
vtkStdString.h
vtkEllipsoidalGaussianKernel::UseScalars
bool UseScalars
Definition: vtkEllipsoidalGaussianKernel.h:174
vtkEllipsoidalGaussianKernel
an ellipsoidal Gaussian interpolation kernel
Definition: vtkEllipsoidalGaussianKernel.h:58
vtkEllipsoidalGaussianKernel::Eccentricity
double Eccentricity
Definition: vtkEllipsoidalGaussianKernel.h:181
vtkPointData
represent and manipulate point attribute data
Definition: vtkPointData.h:31
vtkEllipsoidalGaussianKernel::Sharpness
double Sharpness
Definition: vtkEllipsoidalGaussianKernel.h:180
vtkIdType
int vtkIdType
Definition: vtkType.h:338
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:49
vtkGeneralizedKernel.h
vtkEllipsoidalGaussianKernel::UseNormals
bool UseNormals
Definition: vtkEllipsoidalGaussianKernel.h:173
vtkEllipsoidalGaussianKernel::ScalarsArrayName
vtkStdString ScalarsArrayName
Definition: vtkEllipsoidalGaussianKernel.h:177
vtkEllipsoidalGaussianKernel::F2
double F2
Definition: vtkEllipsoidalGaussianKernel.h:184
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkGeneralizedKernel
flexible, general interpolation kernels
Definition: vtkGeneralizedKernel.h:69
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:185
VTK_FLOAT_MAX
#define VTK_FLOAT_MAX
Definition: vtkType.h:163
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:56
vtkEllipsoidalGaussianKernel::NormalsArrayName
vtkStdString NormalsArrayName
Definition: vtkEllipsoidalGaussianKernel.h:176
vtkEllipsoidalGaussianKernel::ScalarsArray
vtkDataArray * ScalarsArray
Definition: vtkEllipsoidalGaussianKernel.h:186
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:179
vtkInterpolationKernel::FreeStructures
virtual void FreeStructures()
VTK_DOUBLE_MAX
#define VTK_DOUBLE_MAX
Definition: vtkType.h:165