VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkPOrderStatistics.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 =========================================================================*/ 00037 #ifndef __vtkPOrderStatistics_h 00038 #define __vtkPOrderStatistics_h 00039 00040 #include "vtkOrderStatistics.h" 00041 00042 //BTX 00043 #include <vtkstd/vector> // STL Header 00044 //ETX 00045 00046 class vtkMultiBlockDataSet; 00047 class vtkMultiProcessController; 00048 00049 class VTK_INFOVIS_EXPORT vtkPOrderStatistics : public vtkOrderStatistics 00050 { 00051 public: 00052 static vtkPOrderStatistics* New(); 00053 vtkTypeMacro(vtkPOrderStatistics, vtkOrderStatistics); 00054 void PrintSelf(ostream& os, vtkIndent indent); 00055 00057 00059 virtual void SetController(vtkMultiProcessController*); 00060 vtkGetObjectMacro(Controller, vtkMultiProcessController); 00062 00064 00065 virtual void Learn( vtkTable* inData, 00066 vtkTable* inParameters, 00067 vtkMultiBlockDataSet* outMeta ); 00069 00070 protected: 00071 vtkPOrderStatistics(); 00072 ~vtkPOrderStatistics(); 00073 00074 //BTX 00076 00079 bool Pack( vtkTable* orderTab, 00080 vtkStdString& xPacked, 00081 vtkstd::vector<vtkIdType>& kcValues ); 00083 00085 00086 bool Reduce( vtkIdType& xSizeTotal, 00087 char* xPacked_g, 00088 vtkStdString& xPacked_l, 00089 vtkIdType& kcSizeTotal, 00090 vtkIdType* kcValues_g, 00091 vtkstd::vector<vtkIdType>& kcValues_l ); 00093 00095 00096 bool Broadcast( vtkIdType xSizeTotal, 00097 vtkStdString& xPacked, 00098 vtkstd::vector<vtkStdString>& xValues, 00099 vtkIdType kcSizeTotal, 00100 vtkstd::vector<vtkIdType>& kcValues, 00101 vtkIdType reduceProc ); 00102 //ETX 00104 00105 vtkMultiProcessController* Controller; 00106 private: 00107 vtkPOrderStatistics(const vtkPOrderStatistics&); // Not implemented. 00108 void operator=(const vtkPOrderStatistics&); // Not implemented. 00109 }; 00110 00111 #endif