00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00050 #ifndef __vtkPCAStatistics_h
00051 #define __vtkPCAStatistics_h
00052
00053 #include "vtkMultiCorrelativeStatistics.h"
00054
00055 class VTK_INFOVIS_EXPORT vtkPCAStatistics : public vtkMultiCorrelativeStatistics
00056 {
00057 public:
00058 vtkTypeMacro(vtkPCAStatistics,vtkMultiCorrelativeStatistics);
00059 virtual void PrintSelf( ostream& os, vtkIndent indent );
00060 static vtkPCAStatistics* New();
00061
00062
00064
00065 enum NormalizationType
00066 {
00067 NONE,
00068 TRIANGLE_SPECIFIED,
00069 DIAGONAL_SPECIFIED,
00070 DIAGONAL_VARIANCE,
00071 NUM_NORMALIZATION_SCHEMES
00072 };
00074
00076
00078 enum ProjectionType
00079 {
00080 FULL_BASIS,
00081 FIXED_BASIS_SIZE,
00082 FIXED_BASIS_ENERGY,
00083 NUM_BASIS_SCHEMES
00084 };
00085
00087
00089
00107 vtkSetMacro(NormalizationScheme,int);
00108 vtkGetMacro(NormalizationScheme,int);
00109 virtual void SetNormalizationSchemeByName( const char* sname );
00110 virtual const char* GetNormalizationSchemeName( int scheme );
00112
00114
00132 virtual vtkTable* GetSpecifiedNormalization();
00133 virtual void SetSpecifiedNormalization( vtkTable* );
00135
00137
00157 vtkSetMacro(BasisScheme,int);
00158 vtkGetMacro(BasisScheme,int);
00159 virtual const char* GetBasisSchemeName( int schemeIndex );
00160 virtual void SetBasisSchemeByName( const char* schemeName );
00162
00164
00167 vtkSetMacro(FixedBasisSize,int);
00168 vtkGetMacro(FixedBasisSize,int);
00170
00172
00176 vtkSetClampMacro(FixedBasisEnergy,double,0.,1.);
00177 vtkGetMacro(FixedBasisEnergy,double);
00179
00180
00182
00185 virtual bool SetParameter( const char* parameter,
00186 int index,
00187 vtkVariant value );
00189
00190
00191 protected:
00192 vtkPCAStatistics();
00193 ~vtkPCAStatistics();
00194
00198 virtual int FillInputPortInformation( int port, vtkInformation* info );
00199
00201 virtual void Derive( vtkDataObject* inMeta );
00202
00204
00205 virtual void Assess( vtkTable*,
00206 vtkDataObject*,
00207 vtkTable* );
00209
00210
00212
00213 virtual void SelectAssessFunctor( vtkTable* inData,
00214 vtkDataObject* inMeta,
00215 vtkStringArray* rowNames,
00216 AssessFunctor*& dfunc );
00217
00219
00220 int NormalizationScheme;
00221 int BasisScheme;
00222 int FixedBasisSize;
00223 double FixedBasisEnergy;
00224
00225
00226 static const char* BasisSchemeEnumNames[NUM_BASIS_SCHEMES + 1];
00227 static const char* NormalizationSchemeEnumNames[NUM_NORMALIZATION_SCHEMES + 1];
00228
00229
00230 private:
00231 vtkPCAStatistics( const vtkPCAStatistics& );
00232 void operator = ( const vtkPCAStatistics& );
00233 };
00234
00235 #endif // __vtkPCAStatistics_h
00236