00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00026 #ifndef __vtkPKMeanStatistics_h
00027 #define __vtkPKMeanStatistics_h
00028
00029 #include "vtkKMeansStatistics.h"
00030
00031 class vtkMultiProcessController;
00032 class vtkCommunicator;
00033
00034 class VTK_INFOVIS_EXPORT vtkPKMeansStatistics : public vtkKMeansStatistics
00035 {
00036 public:
00037 static vtkPKMeansStatistics* New();
00038 vtkTypeMacro(vtkPKMeansStatistics, vtkKMeansStatistics);
00039 void PrintSelf(ostream& os, vtkIndent indent);
00040
00042
00044 virtual void SetController(vtkMultiProcessController*);
00045 vtkGetObjectMacro(Controller, vtkMultiProcessController);
00047
00049
00050 virtual void UpdateClusterCenters( vtkTable* newClusterElements,
00051 vtkTable* curClusterElements,
00052 vtkIdTypeArray* numMembershipChanges,
00053 vtkIdTypeArray* numElementsInCluster,
00054 vtkDoubleArray* error,
00055 vtkIdTypeArray* startRunID,
00056 vtkIdTypeArray* endRunID,
00057 vtkIntArray *computeRun );
00059
00061 virtual vtkIdType GetTotalNumberOfObservations( vtkIdType numObservations );
00062
00064
00066 virtual void CreateInitialClusterCenters(vtkIdType numToAllocate,
00067 vtkIdTypeArray* numberOfClusters,
00068 vtkTable* inData,
00069 vtkTable* curClusterElements,
00070 vtkTable* newClusterElements);
00072
00073
00074 protected:
00075 vtkPKMeansStatistics();
00076 ~vtkPKMeansStatistics();
00077
00078 vtkMultiProcessController* Controller;
00079
00080
00081 private:
00082 vtkPKMeansStatistics(const vtkPKMeansStatistics&);
00083 void operator=(const vtkPKMeansStatistics&);
00084 };
00085
00086 #endif
00087