00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date$ 00006 Version: $Revision$ 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 MITKLANDMARKPROJECTORBASEDCURVEDGEOMETRY_H_HEADER_INCLUDED_C1C68A2C 00020 #define MITKLANDMARKPROJECTORBASEDCURVEDGEOMETRY_H_HEADER_INCLUDED_C1C68A2C 00021 00022 #include "mitkLandmarkBasedCurvedGeometry.h" 00023 #include "mitkLandmarkProjector.h" 00024 00025 namespace mitk { 00026 00027 //##Documentation 00028 //## @brief Superclass of AbstractTransformGeometry sub-classes defined 00029 //## by a set of landmarks. 00030 //## 00031 //## @ingroup Geometry 00032 class MITK_CORE_EXPORT LandmarkProjectorBasedCurvedGeometry : public LandmarkBasedCurvedGeometry 00033 { 00034 public: 00035 mitkClassMacro(LandmarkProjectorBasedCurvedGeometry, LandmarkBasedCurvedGeometry); 00036 00037 void SetLandmarkProjector(mitk::LandmarkProjector* aLandmarkProjector); 00038 itkGetConstObjectMacro(LandmarkProjector, mitk::LandmarkProjector); 00039 00040 virtual void SetFrameGeometry(const mitk::Geometry3D* frameGeometry); 00041 00042 virtual void ComputeGeometry(); 00043 00044 itkGetConstMacro(InterpolatingAbstractTransform, vtkAbstractTransform*); 00045 protected: 00046 LandmarkProjectorBasedCurvedGeometry(); 00047 00048 virtual ~LandmarkProjectorBasedCurvedGeometry(); 00049 00050 void InitializeGeometry(Self * newGeometry) const; 00051 00052 mitk::LandmarkProjector::Pointer m_LandmarkProjector; 00053 00054 vtkAbstractTransform* m_InterpolatingAbstractTransform; 00055 }; 00056 00057 } // namespace mitk 00058 00059 #endif /* MITKLANDMARKPROJECTORBASEDCURVEDGEOMETRY_H_HEADER_INCLUDED_C1C68A2C */