VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkPKMeansStatistics.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00015 /*------------------------------------------------------------------------- 00016 Copyright 2011 Sandia Corporation. 00017 Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, 00018 the U.S. Government retains certain rights in this software. 00019 -------------------------------------------------------------------------*/ 00031 #ifndef __vtkPKMeanStatistics_h 00032 #define __vtkPKMeanStatistics_h 00033 00034 #include "vtkKMeansStatistics.h" 00035 00036 class vtkMultiProcessController; 00037 class vtkCommunicator; 00038 00039 class VTK_INFOVIS_EXPORT vtkPKMeansStatistics : public vtkKMeansStatistics 00040 { 00041 public: 00042 static vtkPKMeansStatistics* New(); 00043 vtkTypeMacro(vtkPKMeansStatistics, vtkKMeansStatistics); 00044 void PrintSelf(ostream& os, vtkIndent indent); 00045 00047 00049 virtual void SetController(vtkMultiProcessController*); 00050 vtkGetObjectMacro(Controller, vtkMultiProcessController); 00052 00054 00055 virtual void UpdateClusterCenters( vtkTable* newClusterElements, 00056 vtkTable* curClusterElements, 00057 vtkIdTypeArray* numMembershipChanges, 00058 vtkIdTypeArray* numElementsInCluster, 00059 vtkDoubleArray* error, 00060 vtkIdTypeArray* startRunID, 00061 vtkIdTypeArray* endRunID, 00062 vtkIntArray *computeRun ); 00064 00066 virtual vtkIdType GetTotalNumberOfObservations( vtkIdType numObservations ); 00067 00069 00071 virtual void CreateInitialClusterCenters(vtkIdType numToAllocate, 00072 vtkIdTypeArray* numberOfClusters, 00073 vtkTable* inData, 00074 vtkTable* curClusterElements, 00075 vtkTable* newClusterElements); 00077 00078 00079 protected: 00080 vtkPKMeansStatistics(); 00081 ~vtkPKMeansStatistics(); 00082 00083 vtkMultiProcessController* Controller; 00084 00085 00086 private: 00087 vtkPKMeansStatistics(const vtkPKMeansStatistics&); // Not implemented. 00088 void operator=(const vtkPKMeansStatistics&); // Not implemented. 00089 }; 00090 00091 #endif 00092