VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkPCAStatistics.h,v $ 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 2008 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 -------------------------------------------------------------------------*/ 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 //BTX 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 //ETX 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 //BTX 00194 00195 virtual void SelectAssessFunctor( vtkTable* inData, 00196 vtkDataObject* inMeta, 00197 vtkStringArray* rowNames, 00198 AssessFunctor*& dfunc ); 00199 //ETX 00201 00202 int NormalizationScheme; 00203 int BasisScheme; 00204 int FixedBasisSize; 00205 double FixedBasisEnergy; 00206 00207 //BTX 00208 static const char* BasisSchemeEnumNames[NUM_BASIS_SCHEMES + 1]; 00209 static const char* NormalizationSchemeEnumNames[NUM_NORMALIZATION_SCHEMES + 1]; 00210 //ETX 00211 00212 private: 00213 vtkPCAStatistics( const vtkPCAStatistics& ); // Not implemented 00214 void operator = ( const vtkPCAStatistics& ); // Not implemented 00215 }; 00216 00217 #endif // __vtkPCAStatistics_h 00218