00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00044 #ifndef __vtkPairwiseExtractHistogram2D_h
00045 #define __vtkPairwiseExtractHistogram2D_h
00046
00047 #include "vtkStatisticsAlgorithm.h"
00048 #include "vtkSmartPointer.h"
00049 class vtkCollection;
00050 class vtkExtractHistogram2D;
00051 class vtkImageData;
00052 class vtkIdTypeArray;
00053
00054 class VTK_INFOVIS_EXPORT vtkPairwiseExtractHistogram2D : public vtkStatisticsAlgorithm
00055 {
00056 public:
00057 static vtkPairwiseExtractHistogram2D* New();
00058 vtkTypeMacro(vtkPairwiseExtractHistogram2D, vtkStatisticsAlgorithm);
00059 void PrintSelf(ostream& os, vtkIndent indent);
00060
00062
00063 vtkSetVector2Macro(NumberOfBins,int);
00064 vtkGetVector2Macro(NumberOfBins,int);
00066
00068
00071 vtkSetMacro(CustomColumnRangeIndex,int);
00072 void SetCustomColumnRangeByIndex(double,double);
00074
00076
00079 void SetCustomColumnRange(int col, double range[2]);
00080 void SetCustomColumnRange(int col, double rmin, double rmax);
00082
00084
00085 vtkSetMacro(ScalarType,int);
00086 void SetScalarTypeToUnsignedInt()
00087 {this->SetScalarType(VTK_UNSIGNED_INT);};
00088 void SetScalarTypeToUnsignedLong()
00089 {this->SetScalarType(VTK_UNSIGNED_LONG);};
00090 void SetScalarTypeToUnsignedShort()
00091 {this->SetScalarType(VTK_UNSIGNED_SHORT);};
00092 void SetScalarTypeToUnsignedChar()
00093 {this->SetScalarType(VTK_UNSIGNED_CHAR);};
00094 vtkGetMacro(ScalarType,int);
00096
00098 double GetMaximumBinCount(int idx);
00099
00101 double GetMaximumBinCount();
00102
00105 int GetBinRange(int idx, vtkIdType binX, vtkIdType binY, double range[4]);
00106
00109 int GetBinRange(int idx, vtkIdType bin, double range[4]);
00110
00113 void GetBinWidth(int idx, double bw[2]);
00114
00117 double* GetHistogramExtents(int idx);
00118
00120 vtkImageData* GetOutputHistogramImage(int idx);
00121
00123 vtkExtractHistogram2D* GetHistogramFilter(int idx);
00124
00125
00126 enum OutputIndices
00127 {
00128 HISTOGRAM_IMAGE=3
00129 };
00130
00131
00133
00134 virtual void Aggregate( vtkDataObjectCollection*, vtkDataObject* )
00135 {};
00137
00138 protected:
00139 vtkPairwiseExtractHistogram2D();
00140 ~vtkPairwiseExtractHistogram2D();
00141
00142 int NumberOfBins[2];
00143 int ScalarType;
00144 int CustomColumnRangeIndex;
00145
00146
00147 vtkSmartPointer<vtkIdTypeArray> OutputOutlierIds;
00148 vtkSmartPointer<vtkCollection> HistogramFilters;
00149 class Internals;
00150 Internals* Implementation;
00151
00152
00154
00156 virtual void Learn( vtkTable* inData,
00157 vtkTable* inParameters,
00158 vtkDataObject* outMeta );
00160
00162 virtual void Derive( vtkDataObject* ) {};
00163
00165
00166 virtual void Assess( vtkTable*,
00167 vtkDataObject*,
00168 vtkTable* ) {};
00170
00172
00173 virtual void Test( vtkTable*,
00174 vtkDataObject*,
00175 vtkDataObject* ) { return; };
00177
00179
00180 virtual void SelectAssessFunctor( vtkTable* vtkNotUsed(outData),
00181 vtkDataObject* vtkNotUsed(inMeta),
00182 vtkStringArray* vtkNotUsed(rowNames),
00183 AssessFunctor*& vtkNotUsed(dfunc) ) {};
00185
00187 virtual vtkExtractHistogram2D* NewHistogramFilter();
00188
00189 virtual int FillOutputPortInformation( int port, vtkInformation* info );
00190
00191 vtkTimeStamp BuildTime;
00192 private:
00193 vtkPairwiseExtractHistogram2D(const vtkPairwiseExtractHistogram2D&);
00194 void operator=(const vtkPairwiseExtractHistogram2D&);
00195 };
00196
00197 #endif