00001
00002
00003
00004
00005
00015 #ifndef __SIGNOTSINK_H__
00016 #define __SIGNOTSINK_H__
00017
00018 #define trackerMaxButtonsPerUnit 4
00019
00020 #include <string>
00021
00022 #include <SignDLL.h>
00023 #include <SignSink.h>
00024
00025 class Sign2DViewer;
00026 class vtkMRMLNode;
00027 class SignImageReslice;
00028 class SignContext;
00029
00030 typedef std::vector<SignImageReslice*> SignSlicers;
00031
00032 class SIGN_EXPORT SignOTSink : public SignSink
00033 {
00034 public:
00035 vtkTypeRevisionMacro(SignOTSink,SignSink);
00036 virtual void PrintSelf(ostream& os, vtkIndent indent);
00037
00038 static SignOTSink* New();
00039
00040 private:
00041 SignContext *signContext;
00042 SignSlicers SliceCollection;
00043 float dist;
00044
00045 protected:
00047 SignOTSink();
00048
00050 ~SignOTSink();
00051
00052
00053 SignOTSink(const SignOTSink&);
00054 void operator=(const SignOTSink&);
00055
00056 public:
00058 int events;
00061 double GetNormal(int i);
00064 void GetNormal(double* orient);
00067 double GetPosition(int i);
00070 void GetPosition(double* pos);
00072 vtkTransform* GetTransform();
00075 float GetConfidence();
00076
00077 void SetDist(float d);
00078 float GetDist();
00079
00080 public:
00081
00085 virtual int isEventGenerator();
00086
00096 virtual void onEventGenerated( ot::Event& event, ot::Node& generator);
00097
00099 void setSignContext(SignContext *sp);
00101 SignContext *GetSignContext() {return signContext;}
00102
00103 protected:
00104
00105 friend class SignOTModule;
00106 };
00107
00108 #endif