• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

dox/Infovis/vtkPCAStatistics.h

Go to the documentation of this file.
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 

Generated by  doxygen 1.7.1