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 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 -------------------------------------------------------------------------*/ 00048 #ifndef __vtkOrderStatistics_h 00049 #define __vtkOrderStatistics_h 00050 00051 #include "vtkFiltersStatisticsModule.h" // For export macro 00052 #include "vtkStatisticsAlgorithm.h" 00053 00054 class vtkMultiBlockDataSet; 00055 class vtkStringArray; 00056 class vtkTable; 00057 class vtkVariant; 00058 00059 class VTKFILTERSSTATISTICS_EXPORT vtkOrderStatistics : public vtkStatisticsAlgorithm 00060 { 00061 public: 00062 vtkTypeMacro(vtkOrderStatistics, vtkStatisticsAlgorithm); 00063 void PrintSelf(ostream& os, vtkIndent indent); 00064 static vtkOrderStatistics* New(); 00065 00066 //BTX 00068 00069 enum QuantileDefinitionType { 00070 InverseCDF = 0, // Identical to method 1 of R 00071 InverseCDFAveragedSteps = 1, // Identical to method 2 of R, ignored for non-numeric types 00072 NearestObservation = 2 // Identical to method 3 of R 00073 }; 00074 //ETX 00076 00078 00079 vtkSetMacro( NumberOfIntervals, vtkIdType ); 00080 vtkGetMacro( NumberOfIntervals, vtkIdType ); 00082 00084 00085 vtkSetMacro( QuantileDefinition, QuantileDefinitionType ); 00086 void SetQuantileDefinition ( int ); 00088 00090 00092 vtkSetMacro( Quantize, bool ); 00093 vtkGetMacro( Quantize, bool ); 00095 00097 00099 vtkSetMacro( MaximumHistogramSize, vtkIdType ); 00100 vtkGetMacro( MaximumHistogramSize, vtkIdType ); 00102 00104 vtkIdType GetQuantileDefinition() { return static_cast<vtkIdType>( this->QuantileDefinition ); } 00105 00107 00110 virtual bool SetParameter( const char* parameter, 00111 int index, 00112 vtkVariant value ); 00114 00116 00118 virtual void Aggregate( vtkDataObjectCollection*, 00119 vtkMultiBlockDataSet* ) { return; }; 00121 00122 protected: 00123 vtkOrderStatistics(); 00124 ~vtkOrderStatistics(); 00125 00127 00128 virtual void Learn( vtkTable*, 00129 vtkTable*, 00130 vtkMultiBlockDataSet* ); 00132 00134 virtual void Derive( vtkMultiBlockDataSet* ); 00135 00137 00138 virtual void Test( vtkTable*, 00139 vtkMultiBlockDataSet*, 00140 vtkTable* ); 00142 00144 00145 virtual void Assess( vtkTable* inData, 00146 vtkMultiBlockDataSet* inMeta, 00147 vtkTable* outData ) 00148 { this->Superclass::Assess( inData, inMeta, outData, 1 ); } 00150 00151 //BTX 00153 00154 virtual void SelectAssessFunctor( vtkTable* outData, 00155 vtkDataObject* inMeta, 00156 vtkStringArray* rowNames, 00157 AssessFunctor*& dfunc ); 00158 //ETX 00160 00161 int NumberOfIntervals; 00162 QuantileDefinitionType QuantileDefinition; 00163 bool Quantize; 00164 vtkIdType MaximumHistogramSize; 00165 00166 private: 00167 vtkOrderStatistics(const vtkOrderStatistics&); // Not implemented 00168 void operator=(const vtkOrderStatistics&); // Not implemented 00169 }; 00170 00171 #endif