00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00047 #ifndef __vtkPCAStatistics_h
00048 #define __vtkPCAStatistics_h
00049
00050 #include "vtkMultiCorrelativeStatistics.h"
00051
00052 class VTK_INFOVIS_EXPORT vtkPCAStatistics : public vtkMultiCorrelativeStatistics
00053 {
00054 public:
00055 vtkTypeRevisionMacro(vtkPCAStatistics,vtkMultiCorrelativeStatistics);
00056 virtual void PrintSelf( ostream& os, vtkIndent indent );
00057 static vtkPCAStatistics* New();
00058
00059
00061
00062 enum NormalizationType
00063 {
00064 NONE,
00065 TRIANGLE_SPECIFIED,
00066 DIAGONAL_SPECIFIED,
00067 DIAGONAL_VARIANCE,
00068 NUM_NORMALIZATION_SCHEMES
00069 };
00071
00073
00075 enum ProjectionType
00076 {
00077 FULL_BASIS,
00078 FIXED_BASIS_SIZE,
00079 FIXED_BASIS_ENERGY,
00080 NUM_BASIS_SCHEMES
00081 };
00082
00084
00086
00104 vtkSetMacro(NormalizationScheme,int);
00105 vtkGetMacro(NormalizationScheme,int);
00106 virtual void SetNormalizationSchemeByName( const char* sname );
00107 virtual const char* GetNormalizationSchemeName( int scheme );
00109
00111
00129 virtual vtkTable* GetSpecifiedNormalization();
00130 virtual void SetSpecifiedNormalization( vtkTable* );
00132
00134
00154 vtkSetMacro(BasisScheme,int);
00155 vtkGetMacro(BasisScheme,int);
00156 virtual const char* GetBasisSchemeName( int schemeIndex );
00157 virtual void SetBasisSchemeByName( const char* schemeName );
00159
00161
00164 vtkSetMacro(FixedBasisSize,int);
00165 vtkGetMacro(FixedBasisSize,int);
00167
00169
00173 vtkSetClampMacro(FixedBasisEnergy,double,0.,1.);
00174 vtkGetMacro(FixedBasisEnergy,double);
00176
00177 protected:
00178 vtkPCAStatistics();
00179 ~vtkPCAStatistics();
00180
00184 virtual int FillInputPortInformation( int port, vtkInformation* info );
00185
00187 virtual void ExecuteDerive( vtkDataObject* inMeta );
00188
00190 virtual void ExecuteAssess( vtkTable*, vtkDataObject*, vtkTable*, vtkDataObject* );
00191
00192
00194
00195 virtual void SelectAssessFunctor( vtkTable* inData,
00196 vtkDataObject* inMeta,
00197 vtkStringArray* rowNames,
00198 AssessFunctor*& dfunc );
00199
00201
00202 int NormalizationScheme;
00203 int BasisScheme;
00204 int FixedBasisSize;
00205 double FixedBasisEnergy;
00206
00207
00208 static const char* BasisSchemeEnumNames[NUM_BASIS_SCHEMES + 1];
00209 static const char* NormalizationSchemeEnumNames[NUM_NORMALIZATION_SCHEMES + 1];
00210
00211
00212 private:
00213 vtkPCAStatistics( const vtkPCAStatistics& );
00214 void operator = ( const vtkPCAStatistics& );
00215 };
00216
00217 #endif // __vtkPCAStatistics_h
00218