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 http://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 MITKSPHERELANDMARKPROJECTOR_H_HEADER_INCLUDED_C1C68A2C 00020 #define MITKSPHERELANDMARKPROJECTOR_H_HEADER_INCLUDED_C1C68A2C 00021 00022 #include "mitkLandmarkProjector.h" 00023 #include "MitkExtExports.h" 00024 #include "mitkPointSet.h" 00025 00026 class vtkTransform; 00027 class vtkSphericalTransform; 00028 class vtkGeneralTransform; 00029 class vtkTransformPolyDataFilter; 00030 00031 namespace mitk { 00032 00033 //##Documentation 00034 //## @brief Thin-plate-spline-based landmark-based curved geometry 00035 //## 00036 //## @ingroup Geometry 00037 class MitkExt_EXPORT SphereLandmarkProjector : public LandmarkProjector 00038 { 00039 public: 00040 mitkClassMacro(SphereLandmarkProjector, LandmarkProjector); 00041 00042 itkNewMacro(Self); 00043 00044 virtual void ProjectLandmarks(const mitk::PointSet::DataType::PointsContainer* targetLandmarks); 00045 protected: 00046 SphereLandmarkProjector(); 00047 virtual ~SphereLandmarkProjector(); 00048 00049 virtual void ComputeCompleteAbstractTransform(); 00050 00051 vtkSphericalTransform* m_SphericalTransform; 00052 vtkTransform* m_SphereRotation; 00053 vtkTransform* m_SpatialPlacementTransform; 00054 vtkGeneralTransform* m_PlaneToSphericalTransform; 00055 00056 mitk::PlaneGeometry::Pointer m_SphereParameterPlane; 00057 }; 00058 00059 } // namespace mitk 00060 00061 #endif /* MITKSPHERELANDMARKPROJECTOR_H_HEADER_INCLUDED_C1C68A2C */