diff --git a/Modules/AlgorithmsExt/Testing/files.cmake b/Modules/AlgorithmsExt/Testing/files.cmake index 9a9b325349..b9ad765e69 100644 --- a/Modules/AlgorithmsExt/Testing/files.cmake +++ b/Modules/AlgorithmsExt/Testing/files.cmake @@ -1,9 +1,10 @@ set(MODULE_TESTS mitkAutoCropImageFilterTest.cpp mitkBoundingObjectCutterTest.cpp mitkSimpleHistogramTest.cpp + mitkUnstructuredGridToUnstructuredGridFilterTest.cpp ) set(MODULE_CUSTOM_TESTS mitkLabeledImageToSurfaceFilterTest.cpp ) diff --git a/Modules/AlgorithmsExt/Testing/mitkUnstructuredGridToUnstructuredGridFilterTest.cpp b/Modules/AlgorithmsExt/Testing/mitkUnstructuredGridToUnstructuredGridFilterTest.cpp new file mode 100644 index 0000000000..d9109def30 --- /dev/null +++ b/Modules/AlgorithmsExt/Testing/mitkUnstructuredGridToUnstructuredGridFilterTest.cpp @@ -0,0 +1,91 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +All rights reserved. + +This software is distributed WITHOUT ANY WARRANTY; without +even the implied warranty of MERCHANTABILITY or FITNESS FOR +A PARTICULAR PURPOSE. + +See LICENSE.txt or http://www.mitk.org for details. + +===================================================================*/ + +#include "mitkTestingMacros.h" +#include +#include +#include + +#include + +#include +#include +#include + +class mitkUnstructuredGridToUnstructuredGridFilterTestSuite : public mitk::TestFixture +{ + CPPUNIT_TEST_SUITE(mitkUnstructuredGridToUnstructuredGridFilterTestSuite); + MITK_TEST(testImageToUnstructuredGridFilterInitialization); + MITK_TEST(testInput); + MITK_TEST(testUnstructuredGridGeneration); + CPPUNIT_TEST_SUITE_END(); + +private: + + mitk::UnstructuredGrid::Pointer m_UnstructuredGrid; + +public: + + void setUp() + { + m_UnstructuredGrid = mitk::UnstructuredGrid::New(); + vtkSmartPointer vtkGrid = vtkSmartPointer::New(); + vtkSmartPointer points = vtkSmartPointer::New(); + + for(int i=0; i<3; i++) + { + for(int j=0; j<3; j++) + { + for(int k=0; k<3; k++) + { + mitk::Point3D point; + point[0]=i; + point[1]=j; + point[2]=k; + + points->InsertNextPoint(point[0],point[1],point[2]); + } + } + } + + vtkGrid->SetPoints(points); + m_UnstructuredGrid->SetVtkUnstructuredGrid(vtkGrid); + } + + void testImageToUnstructuredGridFilterInitialization() + { + mitk::UnstructuredGridToUnstructuredGridFilter::Pointer testFilter = mitk::UnstructuredGridToUnstructuredGridFilter::New(); + CPPUNIT_ASSERT_MESSAGE("Testing instantiation of test object", testFilter.IsNotNull()); + } + + void testInput() + { + mitk::UnstructuredGridToUnstructuredGridFilter::Pointer testFilter = mitk::UnstructuredGridToUnstructuredGridFilter::New(); + testFilter->SetInput(m_UnstructuredGrid); + CPPUNIT_ASSERT_MESSAGE("Testing set / get input!", testFilter->GetInput() == m_UnstructuredGrid); + } + + void testUnstructuredGridGeneration() + { + mitk::UnstructuredGridToUnstructuredGridFilter::Pointer testFilter = mitk::UnstructuredGridToUnstructuredGridFilter::New(); + testFilter->SetInput(m_UnstructuredGrid); + testFilter->Update(); + CPPUNIT_ASSERT_MESSAGE("Testing surface generation!", testFilter->GetOutput() != NULL); + } + +}; + +MITK_TEST_SUITE_REGISTRATION(mitkUnstructuredGridToUnstructuredGridFilter) diff --git a/Modules/AlgorithmsExt/files.cmake b/Modules/AlgorithmsExt/files.cmake index 62667e34bc..b7bf93d29d 100644 --- a/Modules/AlgorithmsExt/files.cmake +++ b/Modules/AlgorithmsExt/files.cmake @@ -1,23 +1,24 @@ set(CPP_FILES mitkAutoCropImageFilter.cpp mitkBoundingObjectCutter.cpp mitkBoundingObjectToSegmentationFilter.cpp mitkGeometryClipImageFilter.cpp mitkHeightFieldSurfaceClipImageFilter.cpp mitkLabeledImageToSurfaceFilter.cpp mitkMaskAndCutRoiImageFilter.cpp mitkMaskImageFilter.cpp mitkMovieGenerator.cpp mitkNonBlockingAlgorithm.cpp mitkPadImageFilter.cpp mitkPlaneLandmarkProjector.cpp mitkPointLocator.cpp mitkSimpleHistogram.cpp mitkSimpleUnstructuredGridHistogram.cpp + mitkUnstructuredGridToUnstructuredGridFilter.cpp ) if(WIN32 AND NOT MINGW) list(APPEND CPP_FILES mitkMovieGeneratorWin32.cpp ) endif() diff --git a/Modules/AlgorithmsExt/mitkUnstructuredGridToUnstructuredGridFilter.cpp b/Modules/AlgorithmsExt/mitkUnstructuredGridToUnstructuredGridFilter.cpp new file mode 100644 index 0000000000..21de9c484d --- /dev/null +++ b/Modules/AlgorithmsExt/mitkUnstructuredGridToUnstructuredGridFilter.cpp @@ -0,0 +1,75 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +All rights reserved. + +This software is distributed WITHOUT ANY WARRANTY; without +even the implied warranty of MERCHANTABILITY or FITNESS FOR +A PARTICULAR PURPOSE. + +See LICENSE.txt or http://www.mitk.org for details. + +===================================================================*/ + +#include + +#include +#include +#include + +#include + +#include + + +mitk::UnstructuredGridToUnstructuredGridFilter::UnstructuredGridToUnstructuredGridFilter() +{ + this->m_UnstructGrid = mitk::UnstructuredGrid::New(); +} + +mitk::UnstructuredGridToUnstructuredGridFilter::~UnstructuredGridToUnstructuredGridFilter(){} + +void mitk::UnstructuredGridToUnstructuredGridFilter::GenerateData() +{ + const mitk::UnstructuredGrid* grid = this->GetInput(); + + if(grid == NULL || !grid->IsInitialized()) + { + MITK_ERROR << "Wrong input UnstructuredGrid set" << std::endl; + return; + } + +// m_UnstructGrid = grid->Clone(); +} + +void mitk::UnstructuredGridToUnstructuredGridFilter::SetInput(const mitk::UnstructuredGrid* image) +{ + this->ProcessObject::SetNthInput(0, const_cast< mitk::UnstructuredGrid* >( image ) ); +} + + +const mitk::UnstructuredGrid* mitk::UnstructuredGridToUnstructuredGridFilter::GetInput(void) +{ + if (this->GetNumberOfInputs() < 1) + { + MITK_ERROR << "No input set" << std::endl; + return 0; + } + + return static_cast( this->ProcessObject::GetInput(0) ); +} + + +void mitk::UnstructuredGridToUnstructuredGridFilter::GenerateOutputInformation() +{ + mitk::UnstructuredGrid::ConstPointer inputImage = this->GetInput(); + + m_UnstructGrid = this->GetOutput(); + + itkDebugMacro(<<"GenerateOutputInformation()"); + + if(inputImage.IsNull()) return; +} diff --git a/Modules/AlgorithmsExt/mitkUnstructuredGridToUnstructuredGridFilter.h b/Modules/AlgorithmsExt/mitkUnstructuredGridToUnstructuredGridFilter.h new file mode 100644 index 0000000000..ab4a3b2e79 --- /dev/null +++ b/Modules/AlgorithmsExt/mitkUnstructuredGridToUnstructuredGridFilter.h @@ -0,0 +1,74 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +All rights reserved. + +This software is distributed WITHOUT ANY WARRANTY; without +even the implied warranty of MERCHANTABILITY or FITNESS FOR +A PARTICULAR PURPOSE. + +See LICENSE.txt or http://www.mitk.org for details. + +===================================================================*/ + +#ifndef _MITKUNSTRUCTUREDGRIDTOUNSTRUCTUREDGRID_h__ +#define _MITKUNSTRUCTUREDGRIDTOUNSTRUCTUREDGRID_h__ + +#include + +#include + +#include +#include +#include + + +namespace mitk { + + class MitkAlgorithmsExt_EXPORT UnstructuredGridToUnstructuredGridFilter + : public UnstructuredGridSource + { + public: + + mitkClassMacro(UnstructuredGridToUnstructuredGridFilter, UnstructuredGridSource) + itkFactorylessNewMacro(Self) + itkCloneMacro(Self) + + /** This method is called by Update(). */ + virtual void GenerateData(); + + /** Initializes the output information */ + virtual void GenerateOutputInformation(); + + /** Returns a const reference to the input image */ + const mitk::UnstructuredGrid* GetInput(void); + + /** Set the source grid. As input every mitk unstructured grid can be used. */ + using itk::ProcessObject::SetInput; + virtual void SetInput(const UnstructuredGrid *image); + + + protected: + + /** Constructor */ + UnstructuredGridToUnstructuredGridFilter(); + + /** Destructor */ + virtual ~UnstructuredGridToUnstructuredGridFilter(); + + + private: + + /** The output of the filter */ + mitk::UnstructuredGrid::Pointer m_UnstructGrid; + + }; + +} // namespace mitk + +#endif //_MITKUNSTRUCTUREDGRIDTOUNSTRUCTUREDGRID_h__ + +