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 MITKEXTERNABSTRACTTRANSFORMPLANEGEOMETRY_H_HEADER_INCLUDED_C1C68A2C 00020 #define MITKEXTERNABSTRACTTRANSFORMPLANEGEOMETRY_H_HEADER_INCLUDED_C1C68A2C 00021 00022 #include "mitkCommon.h" 00023 #include "MitkExtExports.h" 00024 #include "mitkAbstractTransformGeometry.h" 00025 00026 namespace mitk { 00027 00028 //##Documentation 00029 //## @brief Identical with AbstractTransformGeometry, except that 00030 //## it can be externally configured. 00031 //## 00032 //## In contrast to its superclass (AbstractTransformGeometry), this class 00033 //## provides write access to the vtkAbstractTransform and m_Plane. 00034 //## @note The PlaneGeometry is cloned, @em not linked/referenced. 00035 //## @note The bounds of the PlaneGeometry are used as the parametric bounds. 00036 //## @sa AbstractTransformGeometry 00037 //## @ingroup Geometry 00038 class MitkExt_EXPORT ExternAbstractTransformGeometry : public AbstractTransformGeometry 00039 { 00040 public: 00041 mitkClassMacro(ExternAbstractTransformGeometry, AbstractTransformGeometry); 00042 00043 itkNewMacro(Self); 00044 00045 //##Documentation 00046 //## @brief Set the vtkAbstractTransform (stored in m_VtkAbstractTransform) 00047 virtual void SetVtkAbstractTransform(vtkAbstractTransform* aVtkAbstractTransform); 00048 00049 //##Documentation 00050 //## @brief Set the rectangular area that is used for transformation by 00051 //## m_VtkAbstractTransform and therewith defines the 2D manifold described by 00052 //## ExternAbstractTransformGeometry 00053 //## 00054 //## @note The bounds of the PlaneGeometry are used as the parametric bounds. 00055 //## @note The PlaneGeometry is cloned, @em not linked/referenced. 00056 virtual void SetPlane(const mitk::PlaneGeometry* aPlane); 00057 00058 virtual void SetParametricBounds(const BoundingBox::BoundsArrayType& bounds); 00059 00060 virtual AffineGeometryFrame3D::Pointer Clone() const; 00061 00062 protected: 00063 00064 ExternAbstractTransformGeometry(); 00065 virtual ~ExternAbstractTransformGeometry(); 00066 00067 void InitializeGeometry(Self * newGeometry) const; 00068 }; 00069 00070 } // namespace mitk 00071 #endif /* MITKEXTERNABSTRACTTRANSFORMPLANEGEOMETRY_H_HEADER_INCLUDED_C1C68A2C */