00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00037 #ifndef __vtkPOrderStatistics_h
00038 #define __vtkPOrderStatistics_h
00039
00040 #include "vtkOrderStatistics.h"
00041
00042
00043 #include <vtkstd/vector>
00044
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
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
00104
00105 vtkMultiProcessController* Controller;
00106 private:
00107 vtkPOrderStatistics(const vtkPOrderStatistics&);
00108 void operator=(const vtkPOrderStatistics&);
00109 };
00110
00111 #endif