00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2009-08-11 15:15:02 +0200 (Di, 11 Aug 2009) $ 00006 Version: $Revision: 18516 $ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or https://www.mitk.org/copyright.html 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 00019 #ifndef MITKVirtualTrackingTool_H_HEADER_INCLUDED_ 00020 #define MITKVirtualTrackingTool_H_HEADER_INCLUDED_ 00021 00022 #include <mitkInternalTrackingTool.h> 00023 #include <MitkIGTExports.h> 00024 #include <mitkVector.h> 00025 #include <itkFastMutexLock.h> 00026 00027 #if ITK_VERSION_MAJOR == 3 && ITK_VERSION_MINOR == 18 && ITK_VERSION_PATCH == 0 00028 #include <mitkItkNonUniformBSpline.h> // fixed version of a class that is defect in ITK 3.18 00029 #else 00030 #include <itkNonUniformBSpline.h> 00031 #endif 00032 00033 00034 namespace mitk { 00035 00036 00047 class MitkIGT_EXPORT VirtualTrackingTool : public InternalTrackingTool 00048 { 00049 public: 00050 mitkClassMacro(VirtualTrackingTool, InternalTrackingTool); 00051 friend class VirtualTrackingDevice; 00052 typedef itk::NonUniformBSpline<3> SplineType; 00053 00054 itkGetMacro(SplineLength, mitk::ScalarType); 00055 itkSetMacro(SplineLength, mitk::ScalarType); 00056 00057 itkGetMacro(Velocity, mitk::ScalarType); 00058 itkSetMacro(Velocity, mitk::ScalarType); 00059 00060 itkGetObjectMacro(Spline, SplineType); 00061 00062 protected: 00063 itkNewMacro(Self); 00064 VirtualTrackingTool(); 00065 virtual ~VirtualTrackingTool(); 00066 00067 SplineType::Pointer m_Spline; 00068 mitk::ScalarType m_SplineLength; 00069 mitk::ScalarType m_Velocity; 00070 }; 00071 } // namespace mitk 00072 #endif /* MITKVirtualTrackingTool_H_HEADER_INCLUDED_ */