00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00055 #ifndef __vtkProcrustesAlignmentFilter_h
00056 #define __vtkProcrustesAlignmentFilter_h
00057
00058 #include "vtkPointSetAlgorithm.h"
00059
00060 class vtkLandmarkTransform;
00061 class vtkPointSet;
00062 class vtkPoints;
00063
00064 class VTK_HYBRID_EXPORT vtkProcrustesAlignmentFilter : public vtkPointSetAlgorithm
00065 {
00066 public:
00067 vtkTypeRevisionMacro(vtkProcrustesAlignmentFilter,vtkPointSetAlgorithm);
00068
00070 void PrintSelf(ostream& os, vtkIndent indent);
00071
00073 static vtkProcrustesAlignmentFilter *New();
00074
00076
00079 vtkGetObjectMacro(LandmarkTransform,vtkLandmarkTransform);
00081
00083
00084 vtkGetObjectMacro(MeanPoints,vtkPoints);
00086
00088 void SetNumberOfInputs(int n);
00089
00091
00093 void SetInput(int idx, vtkPointSet* p);
00094 void SetInput(int idx, vtkDataObject* input);
00096
00098
00101 vtkSetMacro(StartFromCentroid, bool);
00102 vtkGetMacro(StartFromCentroid, bool);
00103 vtkBooleanMacro(StartFromCentroid, bool);
00105
00108 vtkPointSet* GetInput(int idx);
00109
00110 protected:
00111 vtkProcrustesAlignmentFilter();
00112 ~vtkProcrustesAlignmentFilter();
00113
00115 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00116
00117 virtual int FillInputPortInformation(int port, vtkInformation *info);
00118
00119 vtkLandmarkTransform *LandmarkTransform;
00120
00121 bool StartFromCentroid;
00122
00123 vtkPoints *MeanPoints;
00124
00125 private:
00126 vtkProcrustesAlignmentFilter(const vtkProcrustesAlignmentFilter&);
00127 void operator=(const vtkProcrustesAlignmentFilter&);
00128 };
00129
00130 #endif
00131
00132