VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkOrderStatistics.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 2010 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 -------------------------------------------------------------------------*/ 00044 #ifndef __vtkOrderStatistics_h 00045 #define __vtkOrderStatistics_h 00046 00047 #include "vtkUnivariateStatisticsAlgorithm.h" 00048 00049 class vtkMultiBlockDataSet; 00050 class vtkStringArray; 00051 class vtkTable; 00052 class vtkVariant; 00053 00054 class VTK_INFOVIS_EXPORT vtkOrderStatistics : public vtkUnivariateStatisticsAlgorithm 00055 { 00056 public: 00057 vtkTypeMacro(vtkOrderStatistics, vtkUnivariateStatisticsAlgorithm); 00058 void PrintSelf(ostream& os, vtkIndent indent); 00059 static vtkOrderStatistics* New(); 00060 00061 //BTX 00063 00064 enum QuantileDefinitionType { 00065 InverseCDF = 0, 00066 InverseCDFAveragedSteps = 1 // Ignored for non-numeric types 00067 }; 00068 //ETX 00070 00072 00078 vtkSetMacro( NumericType, int ); 00079 vtkGetMacro( NumericType, int ); 00080 vtkBooleanMacro( NumericType, int ); 00082 00084 00085 vtkSetMacro( NumberOfIntervals, vtkIdType ); 00086 vtkGetMacro( NumberOfIntervals, vtkIdType ); 00088 00090 00091 vtkSetMacro( QuantileDefinition, QuantileDefinitionType ); 00092 void SetQuantileDefinition ( int ); 00094 00096 vtkIdType GetQuantileDefinition() { return static_cast<vtkIdType>( this->QuantileDefinition ); } 00097 00099 00102 virtual bool SetParameter( const char* parameter, 00103 int index, 00104 vtkVariant value ); 00106 00108 00110 virtual void Aggregate( vtkDataObjectCollection*, 00111 vtkMultiBlockDataSet* ) { return; }; 00113 00114 protected: 00115 vtkOrderStatistics(); 00116 ~vtkOrderStatistics(); 00117 00119 00120 virtual void Learn( vtkTable* inData, 00121 vtkTable* inParameters, 00122 vtkMultiBlockDataSet* outMeta ); 00124 00126 virtual void Derive( vtkMultiBlockDataSet* ); 00127 00129 00130 virtual void Test( vtkTable*, 00131 vtkMultiBlockDataSet*, 00132 vtkTable* ); 00134 00135 //BTX 00137 00138 virtual void SelectAssessFunctor( vtkTable* outData, 00139 vtkDataObject* inMeta, 00140 vtkStringArray* rowNames, 00141 AssessFunctor*& dfunc ); 00142 //ETX 00144 00145 int NumericType; 00146 int NumberOfIntervals; 00147 QuantileDefinitionType QuantileDefinition; 00148 00149 private: 00150 vtkOrderStatistics(const vtkOrderStatistics&); // Not implemented 00151 void operator=(const vtkOrderStatistics&); // Not implemented 00152 }; 00153 00154 #endif