VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/dox/Filters/Statistics/vtkHighestDensityRegionsStatistics.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003 Program:   Visualization Toolkit
00004 Module:    vtkHighestDensityRegionsStatistics.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 
00041 #ifndef vtkHighestDensityRegionsStatistics_h
00042 #define vtkHighestDensityRegionsStatistics_h
00043 
00044 #include "vtkFiltersStatisticsModule.h" // For export macro
00045 #include "vtkStatisticsAlgorithm.h"
00046 
00047 class vtkMultiBlockDataSet;
00048 class vtkVariant;
00049 
00050 class VTKFILTERSSTATISTICS_EXPORT vtkHighestDensityRegionsStatistics :
00051   public vtkStatisticsAlgorithm
00052 {
00053 public:
00054   vtkTypeMacro(vtkHighestDensityRegionsStatistics, vtkStatisticsAlgorithm);
00055   virtual void PrintSelf( ostream& os, vtkIndent indent );
00056   static vtkHighestDensityRegionsStatistics* New();
00057 
00059 
00060   virtual void Aggregate(vtkDataObjectCollection*,
00061                          vtkMultiBlockDataSet*) { return; }
00063 
00068   void SetSigma(double sigma);
00069 
00071 
00072   vtkGetVectorMacro(SmoothHC1, double, 2);
00073   vtkSetVectorMacro(SmoothHC1, double, 2);
00074   vtkGetVectorMacro(SmoothHC2, double, 2);
00075   vtkSetVectorMacro(SmoothHC2, double, 2);
00077 
00078 protected:
00079   vtkHighestDensityRegionsStatistics();
00080   ~vtkHighestDensityRegionsStatistics();
00081 
00083 
00084   virtual void Learn(vtkTable*,
00085                      vtkTable*,
00086                      vtkMultiBlockDataSet*);
00088 
00090   virtual void Derive(vtkMultiBlockDataSet*);
00091 
00093 
00094   virtual void Assess(vtkTable*,
00095                       vtkMultiBlockDataSet*,
00096                       vtkTable*) { return; }
00098 
00100 
00101   virtual void Test(vtkTable*,
00102                     vtkMultiBlockDataSet*,
00103                     vtkTable*) { return; }
00105 
00106 //BTX
00108 
00109   virtual void SelectAssessFunctor(vtkTable*,
00110                                    vtkDataObject*,
00111                                    vtkStringArray*,
00112                                    AssessFunctor*&) { return; }
00113 //ETX
00115 
00121   double ComputeHDR(vtkDataArray *inObservations, vtkDataArray *outDensity);
00122 
00124 
00126   double SmoothHC1[2];
00127   double SmoothHC2[2];
00129 
00131   vtkIdType NumberOfRequestedColumnsPair;
00132 
00133 private :
00138   double ComputeSmoothGaussianKernel(int dimension, double khx, double khy);
00139 
00143   double ComputeStandardGaussianKernel(int dimension, double kx, double ky);
00144 
00145 private:
00146   vtkHighestDensityRegionsStatistics(const vtkHighestDensityRegionsStatistics&); // Not implemented
00147   void operator = (const vtkHighestDensityRegionsStatistics&);  // Not implemented
00148 };
00149 
00150 #endif