VTK  9.0.1
vtkKMeansDistanceFunctor.h
Go to the documentation of this file.
1 #ifndef vtkKMeansDistanceFunctor_h
2 #define vtkKMeansDistanceFunctor_h
3 
16 #include "vtkFiltersStatisticsModule.h" // For export macro
17 #include "vtkObject.h"
18 
19 class vtkVariantArray;
20 class vtkAbstractArray;
21 class vtkTable;
22 
23 class VTKFILTERSSTATISTICS_EXPORT vtkKMeansDistanceFunctor : public vtkObject
24 {
25 public:
26  static vtkKMeansDistanceFunctor* New();
28  void PrintSelf(ostream& os, vtkIndent indent) override;
29 
34  virtual vtkVariantArray* GetEmptyTuple(vtkIdType dimension);
35 
40  virtual void operator()(double&, vtkVariantArray*, vtkVariantArray*);
41 
50  virtual void PairwiseUpdate(vtkTable* clusterCenters, vtkIdType row, vtkVariantArray* data,
51  vtkIdType dataCardinality, vtkIdType totalCardinality);
52 
61  virtual void PerturbElement(vtkTable*, vtkTable*, vtkIdType, vtkIdType, vtkIdType, double);
62 
68  virtual void* AllocateElementArray(vtkIdType size);
69 
73  virtual void DeallocateElementArray(void*);
74 
80  virtual vtkAbstractArray* CreateCoordinateArray();
81 
87  virtual void PackElements(vtkTable* curTable, void* vElements);
88 
90 
95  virtual void UnPackElements(
96  vtkTable* curTable, vtkTable* newTable, void* vLocalElements, void* vGlobalElements, int np);
97  virtual void UnPackElements(
98  vtkTable* curTable, void* vLocalElements, vtkIdType numRows, vtkIdType numCols);
100 
104  virtual int GetDataType();
105 
106 protected:
108  ~vtkKMeansDistanceFunctor() override;
109 
110  vtkVariantArray* EmptyTuple; // Used to quickly initialize Tuple for each datum
111  vtkTable*
112  CenterUpdates; // Used to hold online computation of next iteration's cluster center coords.
113 
114 private:
116  void operator=(const vtkKMeansDistanceFunctor&) = delete;
117 };
118 
119 #endif // vtkKMeansDistanceFunctor_h
vtkKMeansDistanceFunctor::CenterUpdates
vtkTable * CenterUpdates
Definition: vtkKMeansDistanceFunctor.h:112
vtkIdType
int vtkIdType
Definition: vtkType.h:338
vtkX3D::data
@ data
Definition: vtkX3D.h:321
vtkTable
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:62
vtkObject::New
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
vtkKMeansDistanceFunctor
measure distance from k-means cluster centers
Definition: vtkKMeansDistanceFunctor.h:23
vtkKMeansDistanceFunctor::EmptyTuple
vtkVariantArray * EmptyTuple
Definition: vtkKMeansDistanceFunctor.h:110
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkVariantArray
An array holding vtkVariants.
Definition: vtkVariantArray.h:49
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkX3D::size
@ size
Definition: vtkX3D.h:259
vtkObject::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkObject.h
vtkAbstractArray
Abstract superclass for all arrays.
Definition: vtkAbstractArray.h:75