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:
28  void PrintSelf(ostream& os, vtkIndent indent) override;
29 
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 
62 
69 
73  virtual void DeallocateElementArray(void*);
74 
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:
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::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
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:63
vtkKMeansDistanceFunctor
measure distance from k-means cluster centers
Definition: vtkKMeansDistanceFunctor.h:24
vtkKMeansDistanceFunctor::GetEmptyTuple
virtual vtkVariantArray * GetEmptyTuple(vtkIdType dimension)
Return an empty tuple.
vtkKMeansDistanceFunctor::EmptyTuple
vtkVariantArray * EmptyTuple
Definition: vtkKMeansDistanceFunctor.h:110
vtkKMeansDistanceFunctor::GetDataType
virtual int GetDataType()
Return the data type used to store cluster center coordinates.
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:54
vtkVariantArray
An array holding vtkVariants.
Definition: vtkVariantArray.h:50
vtkKMeansDistanceFunctor::CreateCoordinateArray
virtual vtkAbstractArray * CreateCoordinateArray()
Return a vtkAbstractArray capable of holding cluster center coordinates.
vtkKMeansDistanceFunctor::PackElements
virtual void PackElements(vtkTable *curTable, void *vElements)
Pack the cluster center coordinates in vElements into columns of curTable.
vtkKMeansDistanceFunctor::~vtkKMeansDistanceFunctor
~vtkKMeansDistanceFunctor() override
vtkKMeansDistanceFunctor::UnPackElements
virtual void UnPackElements(vtkTable *curTable, vtkTable *newTable, void *vLocalElements, void *vGlobalElements, int np)
Unpack the cluster center coordinates in vElements into columns of curTable.
vtkKMeansDistanceFunctor::vtkKMeansDistanceFunctor
vtkKMeansDistanceFunctor()
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:34
vtkX3D::size
@ size
Definition: vtkX3D.h:259
vtkKMeansDistanceFunctor::PairwiseUpdate
virtual void PairwiseUpdate(vtkTable *clusterCenters, vtkIdType row, vtkVariantArray *data, vtkIdType dataCardinality, vtkIdType totalCardinality)
This is called once per observation per run per iteration in order to assign the observation to its n...
vtkObject.h
vtkAbstractArray
Abstract superclass for all arrays.
Definition: vtkAbstractArray.h:76
vtkKMeansDistanceFunctor::PerturbElement
virtual void PerturbElement(vtkTable *, vtkTable *, vtkIdType, vtkIdType, vtkIdType, double)
When a cluster center (1) has no observations that are closer to it than other cluster centers or (2)...
vtkKMeansDistanceFunctor::operator()
virtual void operator()(double &, vtkVariantArray *, vtkVariantArray *)
Compute the distance from one observation to another, returning the distance in the first argument.
vtkKMeansDistanceFunctor::DeallocateElementArray
virtual void DeallocateElementArray(void *)
Free an array allocated with AllocateElementArray.
vtkKMeansDistanceFunctor::AllocateElementArray
virtual void * AllocateElementArray(vtkIdType size)
Allocate an array large enough to hold size coordinates and return a void pointer to this array.
vtkKMeansDistanceFunctor::New
static vtkKMeansDistanceFunctor * New()
vtkKMeansDistanceFunctor::UnPackElements
virtual void UnPackElements(vtkTable *curTable, void *vLocalElements, vtkIdType numRows, vtkIdType numCols)