00001
00002
00003
00004
00005
00015 #ifndef _SIGNELEMENTIDENTIFYFIDUCIALS_H
00016 #define _SIGNELEMENTIDENTIFYFIDUCIALS_H
00017
00018 #include <map>
00019
00020 #include <SignDLL.h>
00021 #include <SignElement.h>
00022
00023 class Sign2DViewer;
00024 class SignViewer;
00025
00026 typedef std::map<SignViewer*,unsigned long> oidMap;
00027
00028 class SIGN_EXPORT SignElementIdentifyFiducials : public SignElement
00029 {
00030 public:
00031 vtkTypeRevisionMacro(SignElementIdentifyFiducials,SignElement);
00032 virtual void PrintSelf(ostream& os, vtkIndent indent);
00033
00034 static SignElementIdentifyFiducials* New();
00035
00037 bool ActivateElement();
00039 bool DeActivateElement();
00040
00042 void SetMinimumNumberOfFiducials(int);
00043
00044 protected:
00045 SignElementIdentifyFiducials();
00046 ~SignElementIdentifyFiducials();
00047
00048 SignElementIdentifyFiducials(const SignElementIdentifyFiducials&);
00049 void operator=(const SignElementIdentifyFiducials&);
00050
00051 private:
00052 int middleButtonClickPos[2];
00053 int minimum_number_of_fiducials;
00054
00055 static void Moving(vtkObject *caller,unsigned long event, void* data,void*calldata);
00056 static void StartMoving(vtkObject *caller,unsigned long event, void* data,void*calldata);
00057 static void StopMoving(vtkObject *caller,unsigned long event, void* data,void*calldata);
00058 static void OnMiddleButtonRelease(vtkObject *caller,unsigned long event, void* data,void* callData);
00059 static void OnMiddleButtonPress(vtkObject *caller,unsigned long,void* data,void* callData);
00060
00061
00062 oidMap mbroid;
00063 oidMap mbr2oid;
00064 oidMap mbpoid;
00065 oidMap mbp2oid;
00066 oidMap rbpoid;
00067 oidMap rbroid;
00068 oidMap rbr2oid;
00069 oidMap s2void;
00070 oidMap mmoid;
00071
00072 };
00073 #endif