Hybrid/vtkPCAAnalysisFilter.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00053 #ifndef __vtkPCAAnalysisFilter_h
00054 #define __vtkPCAAnalysisFilter_h
00055
00056 #include "vtkSource.h"
00057
00058 class vtkFloatArray;
00059 class vtkPointSet;
00060
00061 class VTK_HYBRID_EXPORT vtkPCAAnalysisFilter : public vtkSource
00062 {
00063 public:
00064 vtkTypeRevisionMacro(vtkPCAAnalysisFilter,vtkSource);
00065
00067 void PrintSelf(ostream& os, vtkIndent indent);
00068
00070 static vtkPCAAnalysisFilter *New();
00071
00073
00074 vtkGetObjectMacro(Evals, vtkFloatArray);
00076
00078 void SetNumberOfInputs(int n);
00079
00082 void SetInput(int idx,vtkPointSet* p);
00083
00086 vtkPointSet* GetOutput(int idx);
00087
00094 void GetParameterisedShape(vtkFloatArray *b, vtkPointSet* shape);
00095
00101 void GetShapeParameters(vtkPointSet *shape, vtkFloatArray *b, int bsize);
00102
00105 vtkPointSet* GetInput(int idx);
00106
00109 int GetModesRequiredFor(double proportion);
00110
00111 protected:
00112 vtkPCAAnalysisFilter();
00113 ~vtkPCAAnalysisFilter();
00114
00116 void Execute();
00117
00118 private:
00119 vtkPCAAnalysisFilter(const vtkPCAAnalysisFilter&);
00120 void operator=(const vtkPCAAnalysisFilter&);
00121
00122
00123 vtkFloatArray *Evals;
00124
00125
00126 double **evecMat2;
00127
00128
00129 double *meanshape;
00130 };
00131
00132 #endif
00133
00134