00001
00002
00003
00004
00005
00015 #ifndef _SIGNFIDUCIAL_H
00016 #define _SIGNFIDUCIAL_H
00017
00018 #include <map>
00019 #include <SignDLL.h>
00020
00021
00022
00023 class vtkPointSet;
00024 class vtkActor;
00025 class vtkPolyDataMapper;
00026 class vtkSphereSource;
00027 class vtkRenderer;
00028 class vtkKWPushButton;
00029 class vtkKWLabel;
00030 class vtkKWFrame;
00031 class vtkCrossHair;
00032
00033
00034 typedef std::map<vtkRenderer*,vtkCrossHair*> CrossHairMap;
00035
00036
00037 class SIGN_EXPORT SignFiducial
00038 {
00039 public:
00040 SignFiducial(float x, float y, float z, int ID_);
00041
00044 void Add3DMarker(vtkRenderer *ren);
00045
00048 void Remove2DMarker(vtkRenderer *ren);
00049
00051 void RemoveAll2DMarkers();
00052
00055 void GetCoord(float p[3]);
00056
00059 void GetColor(double c[3]);
00060
00063 int GetID();
00064
00068 void Add2Map(vtkCrossHair* marker,vtkRenderer *viewer);
00069
00071 vtkKWPushButton* button;
00073 vtkKWLabel* label;
00075 vtkKWFrame* frame;
00076
00077 private:
00078 ~SignFiducial(void);
00079
00080 void GetColorForID(int ID, double color[3]);
00081
00083 static const double Color[20][3];
00084
00085 int ID;
00086 float coord[3];
00087 double color[3];
00088
00089
00090 CrossHairMap crossHairs;
00091
00092
00093 vtkSphereSource *sphereMarker;
00094 vtkPolyDataMapper* sphereMapper;
00095 vtkActor* sphereActor;
00096
00097 friend class SignFiducialCollection;
00098
00099 };
00100
00101 #endif