00001 /* 00002 * 00003 * Program: Slicer Image-Guided Navigator (The SIGN) 00004 * Module: $RCSfile: SignImageSink.h,v $ 00005 */ 00016 #ifndef __SIGNIMAGESINK_H__ 00017 #define __SIGNIMAGESINK_H__ 00018 00019 #include <string> 00020 #include <SignDLL.h> 00021 #include <SignSink.h> 00022 00023 00024 00025 #define trackerMaxButtonsPerUnit 4 00026 00027 class SignOTModule; 00028 class Sign2DViewer; 00029 class vtkImageImport; 00030 class vtkMRMLNode; 00031 class SignOTModule; 00032 struct SignStationEventInfo; 00033 class SignImageReslice; 00034 class SignContext; 00035 class vtkTransform; 00036 class vtkImageFlip; 00037 class vtkPoints; 00038 class vtkImageData; 00039 class vtkMatrix4x4; 00040 00041 00042 class SIGN_EXPORT SignImageSink : public SignSink 00043 { 00044 public: 00045 vtkTypeRevisionMacro(SignImageSink,SignSink); 00046 virtual void PrintSelf(ostream& os, vtkIndent indent); 00047 00048 static SignImageSink* New(); 00049 00050 private: 00051 00052 public: 00053 SignContext *signContext; 00054 Sign2DViewer *viewer; 00055 00056 protected: 00058 SignImageSink(); 00059 00061 ~SignImageSink(); 00062 00063 SignImageSink(const SignImageSink&); // Not implemented. 00064 void operator=(const SignImageSink&); // Not implemented. 00065 00066 public: 00070 virtual int isEventGenerator(); 00071 00081 virtual void onEventGenerated( ot::Event& event, ot::Node& generator); 00082 00084 void setSignContext(SignContext *sp); 00086 void setViewer(Sign2DViewer *tdv); 00087 00089 vtkImageData* GetImageData(); 00091 vtkTransform* GetTransform(); 00092 00094 vtkPoints* cornerPoints; 00096 virtual vtkPoints* GetPoints(); 00097 00098 private: 00099 00100 vtkImageImport *imageData; 00101 vtkImageFlip *outData; 00102 vtkMatrix4x4 *imageMatrix; 00103 00104 friend class SignOTModule; 00105 }; 00106 00107 #endif
1.4.6