00001
00002
00003
00004
00005
00017 #ifndef _SIGNFIDUCIALCOLLECTION_H
00018 #define _SIGNFIDUCIALCOLLECTION_H
00019
00020 #include <vector>
00021
00022 #include <vtkKWFrame.h>
00023
00024 #include <SignDLL.h>
00025 #include <SignFiducial.h>
00026
00027 class vtkMRMLNode;
00028 class Sign2DViewer;
00029
00030 typedef std::vector<SignFiducial*> FiducialVector;
00031
00032 class SIGN_EXPORT SignFiducialCollection
00033 {
00034 public:
00036 SignFiducialCollection();
00037
00039 ~SignFiducialCollection();
00040
00046 SignFiducial *AddFiducial(float x,float y, float z);
00047
00054 SignFiducial* AddFiducial(float x, float y,float z,int newID);
00055
00059 SignFiducial *AddFiducial(float *P);
00060
00067 SignFiducial *AddFiducial(float x,float y,float z,vtkKWFrame *menu);
00068
00076 SignFiducial *AddFiducial(float x,float y,float z,vtkKWFrame *menu,const char *name);
00077
00086 SignFiducial* AddFiducial(float x,float y,float z,vtkKWFrame *menu,const char *name,int newID);
00087
00089 int GetNumberOfFiducials();
00090
00093 int DeleteFiducial(int id);
00094
00097 void DeleteFiducialAndGUI(SignFiducial* fiducial);
00098
00101 void SetParentNode(vtkMRMLNode* parent);
00102
00104 vtkMRMLNode* GetParentNode();
00105
00108 void UpdateFiducials(Sign2DViewer *viewer);
00109
00111 bool hasActors;
00112
00114 FiducialVector Fiducials;
00115
00116 private:
00117
00118
00119 vtkMRMLNode* ParentNode;
00120 int NumberOfFiducials;
00121
00122 static void deleteButtonCallback(vtkObject *caller,unsigned long, void* data,void*);
00123
00124 };
00125
00126 #endif