diff --git a/Modules/PlanarFigure/Algorithms/mitkPlanarFigureToPlanarFigureFilter.cpp b/Modules/PlanarFigure/Algorithms/mitkPlanarFigureToPlanarFigureFilter.cpp new file mode 100644 index 0000000000..0f0a87d0d1 --- /dev/null +++ b/Modules/PlanarFigure/Algorithms/mitkPlanarFigureToPlanarFigureFilter.cpp @@ -0,0 +1,76 @@ +/*========================================================================= + +Program: Medical Imaging & Interaction Toolkit +Language: C++ +Date: $Date: 2007-12-11 14:46:19 +0100 (Di, 11. Dez 2007) $ +Version: $Revision: 13129 $ + +Copyright (c) German Cancer Research Center, Division of Medical and +Biological Informatics. All rights reserved. +See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. + +This software is distributed WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + + +#include "mitkPlanarFigureToPlanarFigureFilter.h" + +mitk::PlanarFigureToPlanarFigureFilter::PlanarFigureToPlanarFigureFilter() +: mitk::PlanarFigureSource() +{ + this->SetNumberOfRequiredInputs(1); +} + + +mitk::PlanarFigureToPlanarFigureFilter::~PlanarFigureToPlanarFigureFilter() +{ +} + + +void mitk::PlanarFigureToPlanarFigureFilter::SetInput( const InputType* figure ) +{ + this->SetInput( 0, figure ); +} + +void mitk::PlanarFigureToPlanarFigureFilter::SetInput( unsigned int idx, const InputType* figure ) +{ + if ( this->GetInput(idx) != figure ) + { + this->SetNthInput( idx, const_cast( figure ) ); + this->CreateOutputsForAllInputs(); + this->Modified(); + } +} + +const mitk::PlanarFigureToPlanarFigureFilter::InputType* mitk::PlanarFigureToPlanarFigureFilter::GetInput() +{ + if (this->GetNumberOfInputs() < 1) + return NULL; + + return static_cast(this->ProcessObject::GetInput(0)); +} + +const mitk::PlanarFigureToPlanarFigureFilter::InputType* mitk::PlanarFigureToPlanarFigureFilter::GetInput( unsigned int idx ) +{ + if (this->GetNumberOfInputs() < idx) + return NULL; + + return static_cast(this->ProcessObject::GetInput(idx)); +} + +void mitk::PlanarFigureToPlanarFigureFilter::CreateOutputsForAllInputs() +{ + this->SetNumberOfOutputs(this->GetNumberOfInputs()); // create outputs for all inputs + for (unsigned int idx = 0; idx < this->GetNumberOfOutputs(); ++idx) + { + if (this->GetOutput(idx) == NULL) + { + DataObjectPointer newOutput = this->MakeOutput(idx); + this->SetNthOutput(idx, newOutput); + } + this->Modified(); + } +} diff --git a/Modules/PlanarFigure/Algorithms/mitkPlanarFigureToPlanarFigureFilter.h b/Modules/PlanarFigure/Algorithms/mitkPlanarFigureToPlanarFigureFilter.h new file mode 100644 index 0000000000..4514b524dc --- /dev/null +++ b/Modules/PlanarFigure/Algorithms/mitkPlanarFigureToPlanarFigureFilter.h @@ -0,0 +1,62 @@ +/*========================================================================= + +Program: Medical Imaging & Interaction Toolkit +Language: C++ +Date: $Date: 2009-05-13 18:06:46 +0200 (Mi, 13. Mai 2009) $ +Version: $Revision: 17258 $ + +Copyright (c) German Cancer Research Center, Division of Medical and +Biological Informatics. All rights reserved. +See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. + +This software is distributed WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + + +#ifndef MITKPlanarFigureToPlanarFigureFilter_H_HEADER_INCLUDED +#define MITKPlanarFigureToPlanarFigureFilter_H_HEADER_INCLUDED + +#include "mitkPlanarFigure.h" +#include "PlanarFigureExports.h" +#include "mitkCommon.h" +#include "mitkPlanarFigureSource.h" + +namespace mitk +{ +/** + * @brief Base class for all filters which have an object of type + * mitk::PlanarFigure as input and output + * + * Base class for all filters which have an object of type mitk::PlanarFigure + * as input and output. + * @ingroup PlanarFigure_EXPORT + */ +class PlanarFigure_EXPORT PlanarFigureToPlanarFigureFilter : public mitk::PlanarFigureSource +{ +public: + mitkClassMacro( PlanarFigureToPlanarFigureFilter, PlanarFigureSource ); + itkNewMacro( Self ); + + typedef PlanarFigure InputType; + typedef InputType::Pointer InputTypePointer; + typedef itk::DataObject::Pointer DataObjectPointer; + + virtual void SetInput( const InputType* figure ); + + virtual void SetInput( unsigned int idx, const InputType* figure ); + + virtual const InputType* GetInput(); + + virtual const InputType* GetInput( unsigned int idx ); + + virtual void CreateOutputsForAllInputs(); + +protected: + PlanarFigureToPlanarFigureFilter(); + virtual ~PlanarFigureToPlanarFigureFilter(); +}; +} // namespace mitk +#endif diff --git a/Modules/PlanarFigure/files.cmake b/Modules/PlanarFigure/files.cmake index c6c5672252..931d605501 100644 --- a/Modules/PlanarFigure/files.cmake +++ b/Modules/PlanarFigure/files.cmake @@ -1,23 +1,24 @@ SET(CPP_FILES Algorithms/mitkImageToPlanarFigureFilter.cpp Algorithms/mitkPlanarFigureObjectFactory.cpp Algorithms/mitkPlanarFigureSource.cpp + Algorithms/mitkPlanarFigureToPlanarFigureFilter.cpp DataManagement/mitkPlanarAngle.cpp DataManagement/mitkPlanarCircle.cpp DataManagement/mitkPlanarCross.cpp DataManagement/mitkPlanarFigure.cpp DataManagement/mitkPlanarFourPointAngle.cpp DataManagement/mitkPlanarLine.cpp DataManagement/mitkPlanarArrow.cpp DataManagement/mitkPlanarPolygon.cpp DataManagement/mitkPlanarRectangle.cpp DataManagement/mitkPlanarFigureControlPointStyleProperty.cpp IO/mitkPlanarFigureIOFactory.cpp IO/mitkPlanarFigureReader.cpp IO/mitkPlanarFigureWriter.cpp IO/mitkPlanarFigureWriterFactory.cpp IO/mitkPlanarFigureSerializer.cpp IO/mitkPlanarFigureSubclassesSerializer.cpp Interactions/mitkPlanarFigureInteractor.cpp Rendering/mitkPlanarFigureMapper2D.cpp )