VTK
vtkKMeansDistanceFunctor.h
Go to the documentation of this file.
1 #ifndef __vtkKMeansDistanceFunctor_h
2 #define __vtkKMeansDistanceFunctor_h
3 
15 #include "vtkObject.h"
16 
17 class vtkVariantArray;
18 class vtkAbstractArray;
19 class vtkTable;
20 
22 {
23 public:
24  static vtkKMeansDistanceFunctor* New();
26  virtual void PrintSelf( ostream& os, vtkIndent indent );
27 
30  virtual vtkVariantArray* GetEmptyTuple( vtkIdType dimension );
31 
34  virtual void operator() ( double&, vtkVariantArray*, vtkVariantArray * );
35 
41  virtual void PairwiseUpdate( vtkTable* clusterCenters, vtkIdType row, vtkVariantArray* data, vtkIdType dataCardinality, vtkIdType totalCardinality );
42 
49  virtual void PerturbElement( vtkTable*, vtkTable*, vtkIdType, vtkIdType, vtkIdType, double );
50 
54  virtual void* AllocateElementArray( vtkIdType size );
55 
57  virtual void DeallocateElementArray( void* );
58 
62  virtual vtkAbstractArray* CreateCoordinateArray();
63 
67  virtual void PackElements( vtkTable* curTable, void* vElements );
68 
70 
73  virtual void UnPackElements( vtkTable* curTable, vtkTable* newTable, void* vLocalElements, void* vGlobalElements, int np );
74  virtual void UnPackElements( vtkTable* curTable, void* vLocalElements, vtkIdType numRows, vtkIdType numCols );
76 
78  virtual int GetDataType();
79 
80 protected:
82  virtual ~vtkKMeansDistanceFunctor();
83 
84  vtkVariantArray* EmptyTuple; // Used to quickly initialize Tuple for each datum
85  vtkTable* CenterUpdates; // Used to hold online computation of next iteration's cluster center coords.
86 
87 private:
88  vtkKMeansDistanceFunctor( const vtkKMeansDistanceFunctor& ); // Not implemented.
89  void operator = ( const vtkKMeansDistanceFunctor& ); // Not implemented.
90 };
91 
92 #endif // __vtkKMeansDistanceFunctor_h