VTK
dox/Infovis/vtkOrderStatistics.h
Go to the documentation of this file.
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