VTK
|
00001 #ifndef __vtkKMeansDistanceFunctor_h 00002 #define __vtkKMeansDistanceFunctor_h 00003 00015 #include "vtkFiltersStatisticsModule.h" // For export macro 00016 #include "vtkObject.h" 00017 00018 class vtkVariantArray; 00019 class vtkAbstractArray; 00020 class vtkTable; 00021 00022 class VTKFILTERSSTATISTICS_EXPORT vtkKMeansDistanceFunctor : public vtkObject 00023 { 00024 public: 00025 static vtkKMeansDistanceFunctor* New(); 00026 vtkTypeMacro(vtkKMeansDistanceFunctor,vtkObject); 00027 virtual void PrintSelf( ostream& os, vtkIndent indent ); 00028 00031 virtual vtkVariantArray* GetEmptyTuple( vtkIdType dimension ); 00032 00035 virtual void operator() ( double&, vtkVariantArray*, vtkVariantArray * ); 00036 00042 virtual void PairwiseUpdate( vtkTable* clusterCenters, vtkIdType row, vtkVariantArray* data, vtkIdType dataCardinality, vtkIdType totalCardinality ); 00043 00050 virtual void PerturbElement( vtkTable*, vtkTable*, vtkIdType, vtkIdType, vtkIdType, double ); 00051 00055 virtual void* AllocateElementArray( vtkIdType size ); 00056 00058 virtual void DeallocateElementArray( void* ); 00059 00063 virtual vtkAbstractArray* CreateCoordinateArray(); 00064 00068 virtual void PackElements( vtkTable* curTable, void* vElements ); 00069 00071 00074 virtual void UnPackElements( vtkTable* curTable, vtkTable* newTable, void* vLocalElements, void* vGlobalElements, int np ); 00075 virtual void UnPackElements( vtkTable* curTable, void* vLocalElements, vtkIdType numRows, vtkIdType numCols ); 00077 00079 virtual int GetDataType(); 00080 00081 protected: 00082 vtkKMeansDistanceFunctor(); 00083 virtual ~vtkKMeansDistanceFunctor(); 00084 00085 vtkVariantArray* EmptyTuple; // Used to quickly initialize Tuple for each datum 00086 vtkTable* CenterUpdates; // Used to hold online computation of next iteration's cluster center coords. 00087 00088 private: 00089 vtkKMeansDistanceFunctor( const vtkKMeansDistanceFunctor& ); // Not implemented. 00090 void operator = ( const vtkKMeansDistanceFunctor& ); // Not implemented. 00091 }; 00092 00093 #endif // __vtkKMeansDistanceFunctor_h