SignFiducial.h

Go to the documentation of this file.
00001 /*
00002  *
00003  * Program:   Slicer Image-Guided Navigator (The SIGN)
00004  * Module:    $RCSfile: SignFiducial.h,v $
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   /* one crossHair per 2D viewer */
00090   CrossHairMap crossHairs;
00091 
00092   /*3D viewer marker */
00093   vtkSphereSource *sphereMarker;
00094   vtkPolyDataMapper* sphereMapper;
00095   vtkActor* sphereActor;
00096 
00097   friend class SignFiducialCollection;
00098 
00099 };
00100 
00101 #endif

Generated on Mon Feb 26 12:11:16 2007 for TheSIGN by  doxygen 1.4.6