00001 /* 00002 * 00003 * Program: Slicer Image-Guided Navigator (The SIGN) 00004 * Module: $RCSfile: SignElementRegistration.h,v $ 00005 */ 00013 #ifndef _SIGNELEMENTREGISTRATION_H 00014 #define _SIGNELEMENTREGISTRATION_H 00015 00016 #include <map> 00017 00018 #include <SignDLL.h> 00019 #include <SignElement.h> 00020 00021 class SignFiducialCollection; 00022 class vtkMatrix4x4; 00023 00024 class SIGN_EXPORT SignElementRegistration : public SignElement 00025 { 00026 public: 00027 vtkTypeRevisionMacro(SignElementRegistration,SignElement); 00028 virtual void PrintSelf(ostream& os, vtkIndent indent); 00029 00030 static SignElementRegistration* New(); 00031 00033 bool ActivateElement(); 00034 00036 bool DeActivateElement(); 00037 00038 void SetRegistrationMethodToUkf(bool); 00039 void SetRegistrationTarget(SignFiducialCollection* name); 00040 00041 protected: 00042 SignElementRegistration(); 00043 ~SignElementRegistration(); 00044 00045 SignElementRegistration(const SignElementRegistration&); // Not implemented. 00046 void operator=(const SignElementRegistration&); // Not implemented. 00047 00048 00049 00050 private: 00051 double ComputeRMSE(SignFiducialCollection* source,SignFiducialCollection* target,vtkMatrix4x4* regMatrix); 00052 00053 double mean_sd_error; 00054 double max_sd_error; 00055 bool ukf; 00056 SignFiducialCollection* registrationTarget; 00057 }; 00058 #endif
1.4.6