IGSTK

/build/buildd/igstk-4.2.0/Source/igstkCircularSimulatedTracker.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003 Program:   Image Guided Surgery Software Toolkit
00004 Module:    $RCSfile: igstkCircularSimulatedTracker.h,v $
00005 Language:  C++
00006 Date:      $Date: 2008-06-17 16:58:37 $
00007 Version:   $Revision: 1.2 $
00008 
00009 Copyright (c) ISC  Insight Software Consortium.  All rights reserved.
00010 See IGSTKCopyright.txt or http://www.igstk.org/copyright.htm for details.
00011 
00012 This software is distributed WITHOUT ANY WARRANTY; without even
00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00014 PURPOSE.  See the above copyright notices for more information.
00015 
00016 =========================================================================*/
00017 
00018 #ifndef __igstkCircularSimulatedTracker_h
00019 #define __igstkCircularSimulatedTracker_h
00020 
00021 #include "igstkSimulatedTracker.h"
00022 
00023 namespace igstk
00024 {
00025 
00037 class CircularSimulatedTracker : public SimulatedTracker
00038 {
00039 public:
00040 
00042   igstkStandardClassTraitsMacro( CircularSimulatedTracker, SimulatedTracker )
00043 
00044   typedef Superclass::TransformType           TransformType;
00045 
00047   igstkSetMacro( Radius, double );
00048   igstkGetMacro( Radius, double );
00049 
00051   igstkSetMacro( AngularSpeed, double );
00052   igstkGetMacro( AngularSpeed, double );
00053 
00054 protected:
00055 
00056   CircularSimulatedTracker();
00057 
00058   virtual ~CircularSimulatedTracker();
00059 
00060   typedef Tracker::ResultType             ResultType;
00061   typedef RealTimeClock::TimeStampType    TimeType;
00062 
00063   virtual ResultType InternalOpen( void );
00064 
00065   virtual ResultType InternalStartTracking( void );
00066 
00067   virtual ResultType InternalReset( void );
00068 
00069   virtual ResultType InternalStopTracking( void );
00070 
00071   virtual ResultType InternalClose( void );
00072 
00074   virtual ResultType VerifyTrackerToolInformation( TrackerToolType * );
00075 
00076   virtual ResultType RemoveTrackerToolFromInternalDataContainers( 
00077     const TrackerToolType * );
00078 
00079 
00083   virtual ResultType InternalUpdateStatus( void );
00084 
00085   virtual ResultType InternalThreadedUpdateStatus( void );
00087   virtual void PrintSelf( std::ostream& os, itk::Indent indent ) const; 
00088 
00089 private:
00090 
00091   CircularSimulatedTracker(const Self&);  //purposely not implemented
00092   void operator=(const Self&); //purposely not implemented
00093 
00094   double      m_Radius;
00095   double      m_Angle;
00096   double      m_AngularSpeed;
00097   TimeType    m_TimeOfLastUpdate;
00098 };
00099 
00100 }
00101 
00102 #endif //__igstk_CircularSimulatedTracker_h_