From 4cb8ad2a5b7362dc579c5dc80757577edd566070 Mon Sep 17 00:00:00 2001 From: Davis Vigneault Date: Thu, 27 Oct 2016 21:39:35 +0100 Subject: [PATCH 01/40] Initial Commit --- Modules/Filtering/MeshNoise/CMakeLists.txt | 11 ++ .../itkAdditiveGaussianNoiseMeshFilter.h | 105 ++++++++++++++++ .../itkAdditiveGaussianNoiseMeshFilter.hxx | 116 ++++++++++++++++++ ...kAdditiveGaussianNoiseQuadEdgeMeshFilter.h | 98 +++++++++++++++ ...dditiveGaussianNoiseQuadEdgeMeshFilter.hxx | 75 +++++++++++ Modules/Filtering/MeshNoise/itk-module.cmake | 14 +++ .../Filtering/MeshNoise/test/CMakeLists.txt | 13 ++ ...itkAdditiveGaussianNoiseMeshFilterTest.cxx | 76 ++++++++++++ ...iveGaussianNoiseQuadEdgeMeshFilterTest.cxx | 76 ++++++++++++ 9 files changed, 584 insertions(+) create mode 100644 Modules/Filtering/MeshNoise/CMakeLists.txt create mode 100644 Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h create mode 100644 Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx create mode 100644 Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h create mode 100644 Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx create mode 100644 Modules/Filtering/MeshNoise/itk-module.cmake create mode 100755 Modules/Filtering/MeshNoise/test/CMakeLists.txt create mode 100644 Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx create mode 100644 Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx diff --git a/Modules/Filtering/MeshNoise/CMakeLists.txt b/Modules/Filtering/MeshNoise/CMakeLists.txt new file mode 100644 index 00000000000..b5bed3d1788 --- /dev/null +++ b/Modules/Filtering/MeshNoise/CMakeLists.txt @@ -0,0 +1,11 @@ +cmake_minimum_required(VERSION 2.8.9) + +project(ITKMeshNoise) + +if(NOT ITK_SOURCE_DIR) + find_package(ITK REQUIRED) + list(APPEND CMAKE_MODULE_PATH ${ITK_CMAKE_DIR}) + include(ITKModuleExternal) +else() + itk_module_impl() +endif() diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h new file mode 100644 index 00000000000..e1fe034c86e --- /dev/null +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h @@ -0,0 +1,105 @@ +/*========================================================================= + * + * Copyright Insight Software Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0.txt + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *=========================================================================*/ +#ifndef itkAdditiveGaussianNoiseMeshFilter_h +#define itkAdditiveGaussianNoiseMeshFilter_h + +#include + +namespace itk +{ +/** \class AdditiveGaussianNoiseMeshFilter + * \brief Add Gaussian noise to the points defining an itkMesh. + * + * \author Davis Vigneault + * + * This class adds Gaussian noise with a specified mean and standard + * deviation to the coordinates of the points defining an itkMesh. + * Mesh topology and other data is passed unaltered. This may be + * useful in testing the robustness of an algorithm to small changes + * in the input mesh, augmenting datasets for machine learning, and + * counteracting deleterious effects which highly regular regions + * of a mesh may occassionally have on mesh processing. + * + * \ingroup ITKMeshNoise + */ +template< typename TInput, typename TOutput = TInput > +class AdditiveGaussianNoiseMeshFilter: +public MeshToMeshFilter< TInput, TOutput > +{ + +public: + + /** Standard class typedefs. */ + typedef AdditiveGaussianNoiseMeshFilter Self; + typedef MeshToMeshFilter< TInput, TOutput > Superclass; + typedef SmartPointer< Self > Pointer; + typedef SmartPointer< const Self > ConstPointer; + + typedef TInput InputMeshType; + typedef TOutput OutputMeshType; + typedef typename InputMeshType::Pointer InputMeshPointer; + typedef typename OutputMeshType::Pointer OutputMeshPointer; + + /** Type for representing coordinates. */ + typedef typename TInput::CoordRepType CoordRepType; + + /** Method for creation through the object factory. */ + itkNewMacro(Self); + + /** Run-time type information (and related methods). */ + itkTypeMacro(AdditiveGaussianNoiseMeshFilter, MeshToMeshFilter); + + /** Mean of noise. */ + itkGetConstMacro(Mean, CoordRepType); + itkSetMacro(Mean, CoordRepType); + + /** Variance of noise. */ + itkGetConstMacro(Sigma, CoordRepType); + itkSetMacro(Sigma, CoordRepType); + + /** Initialization seed. */ + itkGetConstMacro(Seed, int); + itkSetMacro(Seed, int); + +protected: + + AdditiveGaussianNoiseMeshFilter(); + ~AdditiveGaussianNoiseMeshFilter(){} + + void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE; + + /** Generate Requested Data */ + virtual void GenerateData() ITK_OVERRIDE; + + CoordRepType m_Mean; + CoordRepType m_Sigma; + int m_Seed; + +private: + + ITK_DISALLOW_COPY_AND_ASSIGN(AdditiveGaussianNoiseMeshFilter); + +}; + +} + +#ifndef ITK_MANUAL_INSTANTIATION +#include "itkAdditiveGaussianNoiseMeshFilter.hxx" +#endif + +#endif diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx new file mode 100644 index 00000000000..0fb2c52058f --- /dev/null +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx @@ -0,0 +1,116 @@ +/*========================================================================= + * + * Copyright Insight Software Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0.txt + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *=========================================================================*/ +#ifndef itkAdditiveGaussianNoiseMeshFilter_hxx +#define itkAdditiveGaussianNoiseMeshFilter_hxx + +#include "itkAdditiveGaussianNoiseMeshFilter.h" +#include "itkNormalVariateGenerator.h" + +namespace itk +{ + +template< typename TInputMesh, typename TOutputMesh > +AdditiveGaussianNoiseMeshFilter< TInputMesh, TOutputMesh > +::AdditiveGaussianNoiseMeshFilter() +{ + this->m_Mean = 0.0; + this->m_Sigma = 1.0; + this->m_Seed = 0; +} + +template< typename TInputMesh, typename TOutputMesh > +void +AdditiveGaussianNoiseMeshFilter< TInputMesh, TOutputMesh > +::PrintSelf(std::ostream & os, Indent indent) const +{ + Superclass::PrintSelf(os, indent); + os << indent << "Mean: " << this->m_Mean << std::endl; + os << indent << "Sigma: " << this->m_Sigma << std::endl; +} + +template< typename TInputMesh, typename TOutputMesh > +void +AdditiveGaussianNoiseMeshFilter< TInputMesh, TOutputMesh > +::GenerateData(void) +{ + typedef typename TInputMesh::PointsContainer InputPointsContainer; + typedef typename TOutputMesh::PointsContainer OutputPointsContainer; + + typedef typename TInputMesh::PointsContainerConstPointer InputPointsContainerConstPointer; + typedef typename TOutputMesh::PointsContainerPointer OutputPointsContainerPointer; + + const InputMeshType *inputMesh = this->GetInput(); + OutputMeshPointer outputMesh = this->GetOutput(); + + if ( !inputMesh ) + { + itkExceptionMacro(<< "Missing Input Mesh"); + } + + if ( !outputMesh ) + { + itkExceptionMacro(<< "Missing Output Mesh"); + } + + outputMesh->SetBufferedRegion( outputMesh->GetRequestedRegion() ); + + InputPointsContainerConstPointer inPoints = inputMesh->GetPoints(); + OutputPointsContainerPointer outPoints = outputMesh->GetPoints(); + + outPoints->Reserve( inputMesh->GetNumberOfPoints() ); + outPoints->Squeeze(); + + typename InputPointsContainer::ConstIterator inputPoint + = inPoints->Begin(); + typename OutputPointsContainer::Iterator outputPoint + = outPoints->Begin(); + + unsigned int maxDimension = TInputMesh::MaxTopologicalDimension; + + typedef itk::Statistics::NormalVariateGenerator GeneratorType; + GeneratorType::Pointer generator = GeneratorType::New(); + generator->Initialize( this->m_Seed ); + + while ( inputPoint != inPoints->End() ) + { + for ( unsigned int dim = 0; dim < maxDimension; ++dim ) + { + outputPoint.Value()[dim] + = inputPoint.Value()[dim] + generator->GetVariate()*this->m_Sigma + this->m_Mean; + } + ++inputPoint; + ++outputPoint; + } + + // Create duplicate references to the rest of data on the mesh + this->CopyInputMeshToOutputMeshPointData(); + this->CopyInputMeshToOutputMeshCellLinks(); + this->CopyInputMeshToOutputMeshCells(); + this->CopyInputMeshToOutputMeshCellData(); + + for ( unsigned int dim = 0; dim < maxDimension; ++dim ) + { + outputMesh->SetBoundaryAssignments( dim, + inputMesh->GetBoundaryAssignments(dim) ); + } + +} + +} + +#endif diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h new file mode 100644 index 00000000000..f8c64225b9d --- /dev/null +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h @@ -0,0 +1,98 @@ +/*========================================================================= + * + * Copyright Insight Software Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0.txt + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *=========================================================================*/ +#ifndef itkAdditiveGaussianNoiseQuadEdgeMeshFilter_h +#define itkAdditiveGaussianNoiseQuadEdgeMeshFilter_h + +#include "itkQuadEdgeMeshToQuadEdgeMeshFilter.h" + +namespace itk +{ +/** \class AdditiveGaussianNoiseQuadEdgeMeshFilter + * \brief Add Gaussian noise to the points defining an itkQuadEdgeMesh. + * + * \author Davis Vigneault + * + * This class adds Gaussian noise with a specified mean and standard + * deviation to the coordinates of the points defining an itkMesh. + * Mesh topology and other data is passed unaltered. This may be + * useful in testing the robustness of an algorithm to small changes + * in the input mesh, augmenting datasets for machine learning, and + * counteracting deleterious effects which highly regular regions + * of a mesh may occassionally have on mesh processing. + * + * \ingroup ITKMeshNoise + */ +template< typename TInputMesh, typename TOutputMesh = TInputMesh > +class AdditiveGaussianNoiseQuadEdgeMeshFilter: + public QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh > +{ +public: + /** Standard class typedefs. */ + typedef AdditiveGaussianNoiseQuadEdgeMeshFilter Self; + typedef QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh > Superclass; + typedef SmartPointer< Self > Pointer; + typedef SmartPointer< const Self > ConstPointer; + + /** Type for representing coordinates. */ + typedef typename TInputMesh::CoordRepType CoordRepType; + + /** Method for creation through the object factory. */ + itkNewMacro(Self); + + /** Run-time type information (and related methods). */ + itkTypeMacro(AdditiveGaussianNoiseQuadEdgeMeshFilter, QuadEdgeMeshToQuadEdgeMeshFilter); + + /** Mean of noise. */ + itkGetConstMacro(Mean, CoordRepType); + itkSetMacro(Mean, CoordRepType); + + /** Variance of noise. */ + itkGetConstMacro(Sigma, CoordRepType); + itkSetMacro(Sigma, CoordRepType); + + /** Initialization seed. */ + itkGetConstMacro(Seed, int); + itkSetMacro(Seed, int); + +protected: + + AdditiveGaussianNoiseQuadEdgeMeshFilter(); + ~AdditiveGaussianNoiseQuadEdgeMeshFilter(){} + + void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE; + + /** Generate Requested Data */ + virtual void GenerateData(void) ITK_OVERRIDE; + + CoordRepType m_Mean; + CoordRepType m_Sigma; + int m_Seed; + +private: + + ITK_DISALLOW_COPY_AND_ASSIGN(AdditiveGaussianNoiseQuadEdgeMeshFilter); + +}; + +} // end namespace itk + +#ifndef ITK_MANUAL_INSTANTIATION +#include "itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx" +#endif + +#endif diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx new file mode 100644 index 00000000000..fceed6d02ab --- /dev/null +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx @@ -0,0 +1,75 @@ +/*========================================================================= + * + * Copyright Insight Software Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0.txt + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *=========================================================================*/ +#ifndef itkAdditiveGaussianNoiseQuadEdgeMeshFilter_hxx +#define itkAdditiveGaussianNoiseQuadEdgeMeshFilter_hxx + +#include "itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h" +#include "itkNormalVariateGenerator.h" + +namespace itk +{ + +template< typename TInputMesh, typename TOutputMesh > +AdditiveGaussianNoiseQuadEdgeMeshFilter< TInputMesh, TOutputMesh > +::AdditiveGaussianNoiseQuadEdgeMeshFilter() +{ + this->m_Mean = 0.0; + this->m_Sigma = 1.0; + this->m_Seed = 0; +} + +template< typename TInputMesh, typename TOutputMesh > +void +AdditiveGaussianNoiseQuadEdgeMeshFilter< TInputMesh, TOutputMesh > +::PrintSelf(std::ostream & os, Indent indent) const +{ + Superclass::PrintSelf(os, indent); + os << indent << "Mean: " << this->m_Mean << std::endl; + os << indent << "Sigma: " << this->m_Sigma << std::endl; +} + +template< typename TInputMesh, typename TOutputMesh > +void +AdditiveGaussianNoiseQuadEdgeMeshFilter< TInputMesh, TOutputMesh > +::GenerateData(void) +{ + typename TInputMesh::ConstPointer inputMesh = this->GetInput(); + typename TOutputMesh::Pointer outputMesh = this->GetOutput(); + + this->CopyInputMeshToOutputMesh(); + + typename TOutputMesh::PointsContainer::Iterator it = + outputMesh->GetPoints()->Begin(); + + typedef itk::Statistics::NormalVariateGenerator GeneratorType; + GeneratorType::Pointer generator = GeneratorType::New(); + generator->Initialize( this->m_Seed ); + + while ( it != outputMesh->GetPoints()->End() ) + { + for (unsigned int d = 0; d < TOutputMesh::MeshTraits::PointDimension; ++d) + { + it.Value()[d] += (generator->GetVariate()*this->m_Sigma + this->m_Mean); + } + ++it; + } + +} +} // end namespace itk + +#endif diff --git a/Modules/Filtering/MeshNoise/itk-module.cmake b/Modules/Filtering/MeshNoise/itk-module.cmake new file mode 100644 index 00000000000..dc02015e1f1 --- /dev/null +++ b/Modules/Filtering/MeshNoise/itk-module.cmake @@ -0,0 +1,14 @@ +set(DOCUMENTATION "This module contains classes to perturb +itk::Mesh and itk::QuadEdgeMesh classes with Gaussian noise.") + +itk_module(ITKMeshNoise + DEPENDS + ITKCommon + ITKMesh + ITKQuadEdgeMesh + ITKStatistics + TEST_DEPENDS + ITKTestKernel + DESCRIPTION + "${DOCUMENTATION}" +) diff --git a/Modules/Filtering/MeshNoise/test/CMakeLists.txt b/Modules/Filtering/MeshNoise/test/CMakeLists.txt new file mode 100755 index 00000000000..1c45bb34909 --- /dev/null +++ b/Modules/Filtering/MeshNoise/test/CMakeLists.txt @@ -0,0 +1,13 @@ +itk_module_test() + +Set(${itk-module}Tests + itkAdditiveGaussianNoiseMeshFilterTest.cxx + itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx +) + +CreateTestDriver(${itk-module} "${${itk-module}-Test_LIBRARIES}" "${${itk-module}Tests}") + +itk_add_test(NAME itkAdditiveGaussianNoiseMeshFilterTest + COMMAND ${itk-module}TestDriver itkAdditiveGaussianNoiseMeshFilterTest ) +itk_add_test(NAME itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest + COMMAND ${itk-module}TestDriver itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest ) diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx new file mode 100644 index 00000000000..c9fe869f987 --- /dev/null +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx @@ -0,0 +1,76 @@ +/*========================================================================= + * + * Copyright Insight Software Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0.txt + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *=========================================================================*/ +#include +#include +#include +#include "itkTestingMacros.h" + +int +itkAdditiveGaussianNoiseMeshFilterTest(int itkNotUsed(argc), char * itkNotUsed(argv) []) +{ + + typedef double TPixel; + const unsigned int Dimension = 3; + + ////////////// + // Typedefs // + ////////////// + + typedef itk::Mesh< TPixel, Dimension > TMesh; + typedef itk::RegularSphereMeshSource< TMesh > TSphere; + typedef itk::AdditiveGaussianNoiseMeshFilter< TMesh > TNoise; + + //////////////// + // Parameters // + //////////////// + + const int SPHERE_RESOLUTION = 5; + const double SPHERE_SCALE = 10.0; + + const int NOISE_SEED = 100; + const TMesh::CoordRepType NOISE_SIGMA = SPHERE_SCALE * 0.01; + const TMesh::CoordRepType NOISE_MEAN = 1.0; + + /////////// + // Logic // + /////////// + + TSphere::Pointer sphere = TSphere::New(); + + sphere->SetResolution( SPHERE_RESOLUTION ); + sphere->SetScale( SPHERE_SCALE ); + + TNoise::Pointer noise = TNoise::New(); + + EXERCISE_BASIC_OBJECT_METHODS( noise, + AdditiveGaussianNoiseMeshFilter, + MeshToMeshFilter ); + + noise->SetInput( sphere->GetOutput() ); + noise->SetSeed( NOISE_SEED ); + TEST_SET_GET_VALUE( NOISE_SEED, noise->GetSeed() ); + noise->SetSigma( NOISE_SIGMA ); + TEST_SET_GET_VALUE( NOISE_SIGMA, noise->GetSigma() ); + noise->SetMean( NOISE_MEAN ); + TEST_SET_GET_VALUE( NOISE_MEAN, noise->GetMean() ); + + noise->Update(); + + return EXIT_SUCCESS; + +} diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx new file mode 100644 index 00000000000..e211c7d2df5 --- /dev/null +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx @@ -0,0 +1,76 @@ +/*========================================================================= + * + * Copyright Insight Software Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0.txt + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *=========================================================================*/ +#include +#include +#include +#include "itkTestingMacros.h" + +int +itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest(int itkNotUsed(argc), char * itkNotUsed(argv) []) +{ + + typedef double TPixel; + const unsigned int Dimension = 3; + + ////////////// + // Typedefs // + ////////////// + + typedef itk::QuadEdgeMesh< TPixel, Dimension > TMesh; + typedef itk::RegularSphereMeshSource< TMesh > TSphere; + typedef itk::AdditiveGaussianNoiseQuadEdgeMeshFilter< TMesh > TNoise; + + //////////////// + // Parameters // + //////////////// + + const int SPHERE_RESOLUTION = 5; + const double SPHERE_SCALE = 10.0; + + const int NOISE_SEED = 100; + const TMesh::CoordRepType NOISE_SIGMA = SPHERE_SCALE * 0.01; + const TMesh::CoordRepType NOISE_MEAN = 1.0; + + /////////// + // Logic // + /////////// + + TSphere::Pointer sphere = TSphere::New(); + + sphere->SetResolution( SPHERE_RESOLUTION ); + sphere->SetScale( SPHERE_SCALE ); + + TNoise::Pointer noise = TNoise::New(); + + EXERCISE_BASIC_OBJECT_METHODS( noise, + AdditiveGaussianNoiseQuadEdgeMeshFilter, + QuadEdgeMeshToQuadEdgeMeshFilter ); + + noise->SetInput( sphere->GetOutput() ); + noise->SetSeed( NOISE_SEED ); + TEST_SET_GET_VALUE( NOISE_SEED, noise->GetSeed() ); + noise->SetSigma( NOISE_SIGMA ); + TEST_SET_GET_VALUE( NOISE_SIGMA, noise->GetSigma() ); + noise->SetMean( NOISE_MEAN ); + TEST_SET_GET_VALUE( NOISE_MEAN, noise->GetMean() ); + + noise->Update(); + + return EXIT_SUCCESS; + +} From 7b1571881847923ba13d30fae2810a3e7443dcd3 Mon Sep 17 00:00:00 2001 From: Davis Vigneault Date: Thu, 27 Oct 2016 21:48:35 +0100 Subject: [PATCH 02/40] BUG: Remove ITK prefix to distinguish from native modules. --- Modules/Filtering/MeshNoise/CMakeLists.txt | 2 +- .../MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h | 2 +- .../include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h | 2 +- Modules/Filtering/MeshNoise/itk-module.cmake | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Modules/Filtering/MeshNoise/CMakeLists.txt b/Modules/Filtering/MeshNoise/CMakeLists.txt index b5bed3d1788..beebe341afa 100644 --- a/Modules/Filtering/MeshNoise/CMakeLists.txt +++ b/Modules/Filtering/MeshNoise/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 2.8.9) -project(ITKMeshNoise) +project(DVMeshNoise) if(NOT ITK_SOURCE_DIR) find_package(ITK REQUIRED) diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h index e1fe034c86e..506c8f1e852 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h @@ -35,7 +35,7 @@ namespace itk * counteracting deleterious effects which highly regular regions * of a mesh may occassionally have on mesh processing. * - * \ingroup ITKMeshNoise + * \ingroup DVMeshNoise */ template< typename TInput, typename TOutput = TInput > class AdditiveGaussianNoiseMeshFilter: diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h index f8c64225b9d..4cbac925568 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h @@ -35,7 +35,7 @@ namespace itk * counteracting deleterious effects which highly regular regions * of a mesh may occassionally have on mesh processing. * - * \ingroup ITKMeshNoise + * \ingroup DVMeshNoise */ template< typename TInputMesh, typename TOutputMesh = TInputMesh > class AdditiveGaussianNoiseQuadEdgeMeshFilter: diff --git a/Modules/Filtering/MeshNoise/itk-module.cmake b/Modules/Filtering/MeshNoise/itk-module.cmake index dc02015e1f1..35da67514f9 100644 --- a/Modules/Filtering/MeshNoise/itk-module.cmake +++ b/Modules/Filtering/MeshNoise/itk-module.cmake @@ -1,7 +1,7 @@ set(DOCUMENTATION "This module contains classes to perturb itk::Mesh and itk::QuadEdgeMesh classes with Gaussian noise.") -itk_module(ITKMeshNoise +itk_module(DVMeshNoise DEPENDS ITKCommon ITKMesh From d7a300c0c8a980d269abce9f0e38227e2bdbafc3 Mon Sep 17 00:00:00 2001 From: Davis Vigneault Date: Fri, 25 Nov 2016 10:30:49 +0000 Subject: [PATCH 03/40] Add link to Insight Journal submission. --- Modules/Filtering/MeshNoise/itk-module.cmake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Modules/Filtering/MeshNoise/itk-module.cmake b/Modules/Filtering/MeshNoise/itk-module.cmake index 35da67514f9..5c61ee29183 100644 --- a/Modules/Filtering/MeshNoise/itk-module.cmake +++ b/Modules/Filtering/MeshNoise/itk-module.cmake @@ -1,5 +1,7 @@ set(DOCUMENTATION "This module contains classes to perturb -itk::Mesh and itk::QuadEdgeMesh classes with Gaussian noise.") +itk::Mesh and itk::QuadEdgeMesh objects with Gaussian noise. +This module is introduced in the Insight Journal article +http://hdl.handle.net/10380/3567") itk_module(DVMeshNoise DEPENDS From 777e893a143f6f34baf6eb8fd49d083668eb4217 Mon Sep 17 00:00:00 2001 From: Jon Haitz Legarreta Date: Fri, 19 Jan 2018 08:11:09 +0100 Subject: [PATCH 04/40] ENH: Require cmake minimum version to be 3.9.5. Require CMake minimum version to be 3.9.5 following ITKv5 requiring C++11: https://discourse.itk.org/t/minimum-cmake-version-update/585 --- Modules/Filtering/MeshNoise/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/Filtering/MeshNoise/CMakeLists.txt b/Modules/Filtering/MeshNoise/CMakeLists.txt index beebe341afa..650e827f7cb 100644 --- a/Modules/Filtering/MeshNoise/CMakeLists.txt +++ b/Modules/Filtering/MeshNoise/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.8.9) +cmake_minimum_required(VERSION 3.9.5) project(DVMeshNoise) From 6daddd2e234dffa0bb389f38ea93b0bbbd23558d Mon Sep 17 00:00:00 2001 From: Hans Johnson Date: Sat, 16 Dec 2017 14:49:54 -0600 Subject: [PATCH 05/40] ENH: Initial ITKv5 conversions. Provide initial conversion of features to ITKv5. --- .../MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h | 4 ++-- .../include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h index 506c8f1e852..1538b503e2d 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h @@ -79,12 +79,12 @@ public MeshToMeshFilter< TInput, TOutput > protected: AdditiveGaussianNoiseMeshFilter(); - ~AdditiveGaussianNoiseMeshFilter(){} + ~AdditiveGaussianNoiseMeshFilter() override{} void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE; /** Generate Requested Data */ - virtual void GenerateData() ITK_OVERRIDE; + void GenerateData() ITK_OVERRIDE; CoordRepType m_Mean; CoordRepType m_Sigma; diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h index 4cbac925568..f310e8cbe8e 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h @@ -72,12 +72,12 @@ class AdditiveGaussianNoiseQuadEdgeMeshFilter: protected: AdditiveGaussianNoiseQuadEdgeMeshFilter(); - ~AdditiveGaussianNoiseQuadEdgeMeshFilter(){} + ~AdditiveGaussianNoiseQuadEdgeMeshFilter() override{} void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE; /** Generate Requested Data */ - virtual void GenerateData(void) ITK_OVERRIDE; + void GenerateData(void) ITK_OVERRIDE; CoordRepType m_Mean; CoordRepType m_Sigma; From e27c4f150652ace3d9152dc20029f670b9d6a094 Mon Sep 17 00:00:00 2001 From: Hans Johnson Date: Sat, 16 Dec 2017 19:16:56 -0600 Subject: [PATCH 06/40] ENH: ITKv5 override consistency MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Provide remove virtual and override Use clang-tidy to add ITK_OVERRIDE, and to remove redundant virtual on functions. cd ../ITK; clang-tidy -p ITK-clangtidy $find Modules/[A-J]* -name *.cxx |fgrep -v ThirdParty) -checks=-*,modernize-use-override -header-filter=.* -fix clang-tidy -p ITK-clangtidy $(find Modules/[K-Z]* -name *.cxx |fgrep -v ThirdParty) -checks=-*,modernize-use-override -header-filter=.* -fix https://stackoverflow.com/questions/39932391/virtual-override-or-both-c When you override a function you don't technically need to write either virtual or override. The original base class declaration needs the keyword virtual to mark it as virtual. In the derived class the function is virtual by way of having the ¹same type as the base class function. However, an override can help avoid bugs by producing a compilation error when the intended override isn't technically an override. E.g. that the function type isn't exactly like the base class function. Or that a maintenance of the base class changes that function's type, e.g. adding a defaulted argument. In the same way, a virtual keyword in the derived class can make such a bug more subtle, by ensuring that the function is still is virtual in further derived classes. So the general advice is, virtual for the base class function declaration. This is technically necessary. Use override (only) for a derived class' override. This helps with maintenance. --- .../MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h | 2 +- .../include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h index 1538b503e2d..fa827323ea3 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h @@ -79,7 +79,7 @@ public MeshToMeshFilter< TInput, TOutput > protected: AdditiveGaussianNoiseMeshFilter(); - ~AdditiveGaussianNoiseMeshFilter() override{} + ~AdditiveGaussianNoiseMeshFilter() ITK_OVERRIDE{} void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE; diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h index f310e8cbe8e..77db8ee3f89 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h @@ -72,7 +72,7 @@ class AdditiveGaussianNoiseQuadEdgeMeshFilter: protected: AdditiveGaussianNoiseQuadEdgeMeshFilter(); - ~AdditiveGaussianNoiseQuadEdgeMeshFilter() override{} + ~AdditiveGaussianNoiseQuadEdgeMeshFilter() ITK_OVERRIDE{} void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE; From 61ebf2fdf7d58154cacca2e324dea468c16ad855 Mon Sep 17 00:00:00 2001 From: Hans Johnson Date: Sat, 16 Dec 2017 19:36:24 -0600 Subject: [PATCH 07/40] COMP: Use C++11 override directly git grep -l "ITK_OVERRIDE" | fgrep -v itk_compiler_detection.h | fgrep -v CMakeLists.txt |fgrep -v .cmake | xargs sed -i '' -e "s/ITK_OVERRIDE/override/g" --- .../MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h | 6 +++--- .../include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h index fa827323ea3..25d9d1cf76e 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h @@ -79,12 +79,12 @@ public MeshToMeshFilter< TInput, TOutput > protected: AdditiveGaussianNoiseMeshFilter(); - ~AdditiveGaussianNoiseMeshFilter() ITK_OVERRIDE{} + ~AdditiveGaussianNoiseMeshFilter() override{} - void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE; + void PrintSelf(std::ostream & os, Indent indent) const override; /** Generate Requested Data */ - void GenerateData() ITK_OVERRIDE; + void GenerateData() override; CoordRepType m_Mean; CoordRepType m_Sigma; diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h index 77db8ee3f89..984f9b5bc3d 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h @@ -72,12 +72,12 @@ class AdditiveGaussianNoiseQuadEdgeMeshFilter: protected: AdditiveGaussianNoiseQuadEdgeMeshFilter(); - ~AdditiveGaussianNoiseQuadEdgeMeshFilter() ITK_OVERRIDE{} + ~AdditiveGaussianNoiseQuadEdgeMeshFilter() override{} - void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE; + void PrintSelf(std::ostream & os, Indent indent) const override; /** Generate Requested Data */ - void GenerateData(void) ITK_OVERRIDE; + void GenerateData(void) override; CoordRepType m_Mean; CoordRepType m_Sigma; From efec31ef867bb5f92b5bedf3770d157e550e9300 Mon Sep 17 00:00:00 2001 From: Hans Johnson Date: Mon, 12 Feb 2018 23:29:38 -0600 Subject: [PATCH 08/40] STYLE: Prefer C++11 type alias over typedef == http://en.cppreference.com/w/cpp/language/type_alias == Type alias is a name that refers to a previously defined type (similar to typedef). A type alias declaration introduces a name which can be used as a synonym for the type denoted by type-id. It does not introduce a new type and it cannot change the meaning of an existing type name. There is no difference between a type alias declaration and typedef declaration. This declaration may appear in block scope, class scope, or namespace scope. == https://www.quora.com/Is-using-typedef-in-C++-considered-a-bad-practice == While typedef is still available for backward compatibility, the new Type Alias syntax 'using Alias = ExistingLongName;' is more consistent with the flow of C++ than the old typedef syntax 'typedef ExistingLongName Alias;', and it also works for templates (Type alias, alias template (since C++11)), so leftover 'typedef' aliases will differ in style from any alias templates. --- .../itkAdditiveGaussianNoiseMeshFilter.h | 20 +++++++++---------- .../itkAdditiveGaussianNoiseMeshFilter.hxx | 10 +++++----- ...kAdditiveGaussianNoiseQuadEdgeMeshFilter.h | 12 +++++------ ...dditiveGaussianNoiseQuadEdgeMeshFilter.hxx | 2 +- ...itkAdditiveGaussianNoiseMeshFilterTest.cxx | 8 ++++---- ...iveGaussianNoiseQuadEdgeMeshFilterTest.cxx | 8 ++++---- 6 files changed, 30 insertions(+), 30 deletions(-) diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h index 25d9d1cf76e..73b03f51d6c 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h @@ -44,19 +44,19 @@ public MeshToMeshFilter< TInput, TOutput > public: - /** Standard class typedefs. */ - typedef AdditiveGaussianNoiseMeshFilter Self; - typedef MeshToMeshFilter< TInput, TOutput > Superclass; - typedef SmartPointer< Self > Pointer; - typedef SmartPointer< const Self > ConstPointer; + /** Standard class type alias. */ + using Self = AdditiveGaussianNoiseMeshFilter; + using Superclass = MeshToMeshFilter< TInput, TOutput >; + using Pointer = SmartPointer< Self >; + using ConstPointer = SmartPointer< const Self >; - typedef TInput InputMeshType; - typedef TOutput OutputMeshType; - typedef typename InputMeshType::Pointer InputMeshPointer; - typedef typename OutputMeshType::Pointer OutputMeshPointer; + using InputMeshType = TInput; + using OutputMeshType = TOutput; + using InputMeshPointer = typename InputMeshType::Pointer; + using OutputMeshPointer = typename OutputMeshType::Pointer; /** Type for representing coordinates. */ - typedef typename TInput::CoordRepType CoordRepType; + using CoordRepType = typename TInput::CoordRepType; /** Method for creation through the object factory. */ itkNewMacro(Self); diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx index 0fb2c52058f..989feb89199 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx @@ -48,11 +48,11 @@ void AdditiveGaussianNoiseMeshFilter< TInputMesh, TOutputMesh > ::GenerateData(void) { - typedef typename TInputMesh::PointsContainer InputPointsContainer; - typedef typename TOutputMesh::PointsContainer OutputPointsContainer; + using InputPointsContainer = typename TInputMesh::PointsContainer; + using OutputPointsContainer = typename TOutputMesh::PointsContainer; - typedef typename TInputMesh::PointsContainerConstPointer InputPointsContainerConstPointer; - typedef typename TOutputMesh::PointsContainerPointer OutputPointsContainerPointer; + using InputPointsContainerConstPointer = typename TInputMesh::PointsContainerConstPointer; + using OutputPointsContainerPointer = typename TOutputMesh::PointsContainerPointer; const InputMeshType *inputMesh = this->GetInput(); OutputMeshPointer outputMesh = this->GetOutput(); @@ -82,7 +82,7 @@ AdditiveGaussianNoiseMeshFilter< TInputMesh, TOutputMesh > unsigned int maxDimension = TInputMesh::MaxTopologicalDimension; - typedef itk::Statistics::NormalVariateGenerator GeneratorType; + using GeneratorType = itk::Statistics::NormalVariateGenerator; GeneratorType::Pointer generator = GeneratorType::New(); generator->Initialize( this->m_Seed ); diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h index 984f9b5bc3d..1d6accc8953 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h @@ -42,14 +42,14 @@ class AdditiveGaussianNoiseQuadEdgeMeshFilter: public QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh > { public: - /** Standard class typedefs. */ - typedef AdditiveGaussianNoiseQuadEdgeMeshFilter Self; - typedef QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh > Superclass; - typedef SmartPointer< Self > Pointer; - typedef SmartPointer< const Self > ConstPointer; + /** Standard class type alias. */ + using Self = AdditiveGaussianNoiseQuadEdgeMeshFilter; + using Superclass = QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh >; + using Pointer = SmartPointer< Self >; + using ConstPointer = SmartPointer< const Self >; /** Type for representing coordinates. */ - typedef typename TInputMesh::CoordRepType CoordRepType; + using CoordRepType = typename TInputMesh::CoordRepType; /** Method for creation through the object factory. */ itkNewMacro(Self); diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx index fceed6d02ab..f72a1649512 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx @@ -56,7 +56,7 @@ AdditiveGaussianNoiseQuadEdgeMeshFilter< TInputMesh, TOutputMesh > typename TOutputMesh::PointsContainer::Iterator it = outputMesh->GetPoints()->Begin(); - typedef itk::Statistics::NormalVariateGenerator GeneratorType; + using GeneratorType = itk::Statistics::NormalVariateGenerator; GeneratorType::Pointer generator = GeneratorType::New(); generator->Initialize( this->m_Seed ); diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx index c9fe869f987..b13184471c3 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx @@ -24,16 +24,16 @@ int itkAdditiveGaussianNoiseMeshFilterTest(int itkNotUsed(argc), char * itkNotUsed(argv) []) { - typedef double TPixel; + using TPixel = double; const unsigned int Dimension = 3; ////////////// // Typedefs // ////////////// - typedef itk::Mesh< TPixel, Dimension > TMesh; - typedef itk::RegularSphereMeshSource< TMesh > TSphere; - typedef itk::AdditiveGaussianNoiseMeshFilter< TMesh > TNoise; + using TMesh = itk::Mesh< TPixel, Dimension >; + using TSphere = itk::RegularSphereMeshSource< TMesh >; + using TNoise = itk::AdditiveGaussianNoiseMeshFilter< TMesh >; //////////////// // Parameters // diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx index e211c7d2df5..b32f486bbd9 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx @@ -24,16 +24,16 @@ int itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest(int itkNotUsed(argc), char * itkNotUsed(argv) []) { - typedef double TPixel; + using TPixel = double; const unsigned int Dimension = 3; ////////////// // Typedefs // ////////////// - typedef itk::QuadEdgeMesh< TPixel, Dimension > TMesh; - typedef itk::RegularSphereMeshSource< TMesh > TSphere; - typedef itk::AdditiveGaussianNoiseQuadEdgeMeshFilter< TMesh > TNoise; + using TMesh = itk::QuadEdgeMesh< TPixel, Dimension >; + using TSphere = itk::RegularSphereMeshSource< TMesh >; + using TNoise = itk::AdditiveGaussianNoiseQuadEdgeMeshFilter< TMesh >; //////////////// // Parameters // From b3fb7491f5753a477666761b58dd7bcc5dee33b6 Mon Sep 17 00:00:00 2001 From: Hans Johnson Date: Tue, 13 Feb 2018 08:23:59 -0600 Subject: [PATCH 09/40] STYLE: Prefer constexpr for const numeric literals Use constexpr for constant numeric literals. --- .../test/itkAdditiveGaussianNoiseMeshFilterTest.cxx | 10 +++++----- .../itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx index b13184471c3..0caede18418 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx @@ -25,7 +25,7 @@ itkAdditiveGaussianNoiseMeshFilterTest(int itkNotUsed(argc), char * itkNotUsed(a { using TPixel = double; - const unsigned int Dimension = 3; + constexpr unsigned int Dimension = 3; ////////////// // Typedefs // @@ -39,12 +39,12 @@ itkAdditiveGaussianNoiseMeshFilterTest(int itkNotUsed(argc), char * itkNotUsed(a // Parameters // //////////////// - const int SPHERE_RESOLUTION = 5; - const double SPHERE_SCALE = 10.0; + constexpr int SPHERE_RESOLUTION = 5; + constexpr double SPHERE_SCALE = 10.0; - const int NOISE_SEED = 100; + constexpr int NOISE_SEED = 100; const TMesh::CoordRepType NOISE_SIGMA = SPHERE_SCALE * 0.01; - const TMesh::CoordRepType NOISE_MEAN = 1.0; + constexpr TMesh::CoordRepType NOISE_MEAN = 1.0; /////////// // Logic // diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx index b32f486bbd9..0e08f27c8d0 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx @@ -25,7 +25,7 @@ itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest(int itkNotUsed(argc), char * itkN { using TPixel = double; - const unsigned int Dimension = 3; + constexpr unsigned int Dimension = 3; ////////////// // Typedefs // @@ -39,12 +39,12 @@ itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest(int itkNotUsed(argc), char * itkN // Parameters // //////////////// - const int SPHERE_RESOLUTION = 5; - const double SPHERE_SCALE = 10.0; + constexpr int SPHERE_RESOLUTION = 5; + constexpr double SPHERE_SCALE = 10.0; - const int NOISE_SEED = 100; + constexpr int NOISE_SEED = 100; const TMesh::CoordRepType NOISE_SIGMA = SPHERE_SCALE * 0.01; - const TMesh::CoordRepType NOISE_MEAN = 1.0; + constexpr TMesh::CoordRepType NOISE_MEAN = 1.0; /////////// // Logic // From 629eb43b61823f597bf80ef25c7a1bd95c8933e7 Mon Sep 17 00:00:00 2001 From: Jon Haitz Legarreta Date: Sat, 14 Apr 2018 19:37:22 +0200 Subject: [PATCH 10/40] COMP: Move ITK_DISALLOW_COPY_AND_ASSIGN calls to public section. Move `ITK_DISALLOW_COPY_AND_ASSIGN` calls to public section following the discussion in https://discourse.itk.org/t/noncopyable If legacy (pre-macro) copy and assing methods existed, subsitute them for the `ITK_DISALLOW_COPY_AND_ASSIGN` macro. --- .../MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h | 6 +----- .../include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h | 7 ++----- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h index 73b03f51d6c..16598317d1e 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h @@ -43,6 +43,7 @@ public MeshToMeshFilter< TInput, TOutput > { public: + ITK_DISALLOW_COPY_AND_ASSIGN(AdditiveGaussianNoiseMeshFilter); /** Standard class type alias. */ using Self = AdditiveGaussianNoiseMeshFilter; @@ -89,11 +90,6 @@ public MeshToMeshFilter< TInput, TOutput > CoordRepType m_Mean; CoordRepType m_Sigma; int m_Seed; - -private: - - ITK_DISALLOW_COPY_AND_ASSIGN(AdditiveGaussianNoiseMeshFilter); - }; } diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h index 1d6accc8953..d82687c679b 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h @@ -42,6 +42,8 @@ class AdditiveGaussianNoiseQuadEdgeMeshFilter: public QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh > { public: + ITK_DISALLOW_COPY_AND_ASSIGN(AdditiveGaussianNoiseQuadEdgeMeshFilter); + /** Standard class type alias. */ using Self = AdditiveGaussianNoiseQuadEdgeMeshFilter; using Superclass = QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh >; @@ -82,11 +84,6 @@ class AdditiveGaussianNoiseQuadEdgeMeshFilter: CoordRepType m_Mean; CoordRepType m_Sigma; int m_Seed; - -private: - - ITK_DISALLOW_COPY_AND_ASSIGN(AdditiveGaussianNoiseQuadEdgeMeshFilter); - }; } // end namespace itk From ab42b4ee84056c6a5e198144106b0e6041033688 Mon Sep 17 00:00:00 2001 From: Jon Haitz Legarreta Date: Sat, 5 May 2018 12:54:49 +0200 Subject: [PATCH 11/40] COMP: Set the minimum required CMake version to 3.10.2. As agreed in: https://discourse.itk.org/t/cmake-update/870/ Set the cmake_minimum_required to version **3.10.2**. --- Modules/Filtering/MeshNoise/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/Filtering/MeshNoise/CMakeLists.txt b/Modules/Filtering/MeshNoise/CMakeLists.txt index 650e827f7cb..93da25c3f91 100644 --- a/Modules/Filtering/MeshNoise/CMakeLists.txt +++ b/Modules/Filtering/MeshNoise/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.9.5) +cmake_minimum_required(VERSION 3.10.2) project(DVMeshNoise) From f2027ed935805766533bf2c459e79c21bc441f91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20Haitz=20Legarreta=20Gorro=C3=B1o?= Date: Wed, 17 Oct 2018 08:38:59 -0400 Subject: [PATCH 12/40] ENH: Add CI. - Add `*.yml` configuration files for CI. - Update the `README.rst` file to reflect the CI status. - Modify the current `CTestConfig.cmake` file to make the build results be sent to the **Insight** project in **open.cdash.org**. - Add the necessary `*.wrap` files. - Add the `setup.py` file for Python packaging. - Modify the `itk-module.cmake` to take advantage of the module documentation in the `README.rst` file. - Take advantage to improve the `README` file contents. --- Modules/Filtering/MeshNoise/itk-module.cmake | 15 +++++++++++---- .../Filtering/MeshNoise/wrapping/CMakeLists.txt | 8 ++++++++ .../itkAdditiveGaussianNoiseMeshFilter.wrap | 12 ++++++++++++ ...tkAdditiveGaussianNoiseQuadEdgeMeshFilter.wrap | 7 +++++++ 4 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 Modules/Filtering/MeshNoise/wrapping/CMakeLists.txt create mode 100644 Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseMeshFilter.wrap create mode 100644 Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.wrap diff --git a/Modules/Filtering/MeshNoise/itk-module.cmake b/Modules/Filtering/MeshNoise/itk-module.cmake index 5c61ee29183..3eeff98ec40 100644 --- a/Modules/Filtering/MeshNoise/itk-module.cmake +++ b/Modules/Filtering/MeshNoise/itk-module.cmake @@ -1,8 +1,15 @@ -set(DOCUMENTATION "This module contains classes to perturb -itk::Mesh and itk::QuadEdgeMesh objects with Gaussian noise. -This module is introduced in the Insight Journal article -http://hdl.handle.net/10380/3567") +# the top-level README is used for describing this module, just +# re-used it for documentation here +get_filename_component(MY_CURRENT_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +file(READ "${MY_CURRENT_DIR}/README.rst" DOCUMENTATION) + +# itk_module() defines the module dependencies in DVMeshNoise +# The testing module in DVMeshNoise depends on ITKTestKernel +# By convention those modules outside of ITK are not prefixed with +# ITK. + +# define the dependencies of the include module and the tests itk_module(DVMeshNoise DEPENDS ITKCommon diff --git a/Modules/Filtering/MeshNoise/wrapping/CMakeLists.txt b/Modules/Filtering/MeshNoise/wrapping/CMakeLists.txt new file mode 100644 index 00000000000..5ca53bc9385 --- /dev/null +++ b/Modules/Filtering/MeshNoise/wrapping/CMakeLists.txt @@ -0,0 +1,8 @@ +itk_wrap_module(DVMeshNoise) + +set(WRAPPER_SUBMODULE_ORDER + AdditiveGaussianNoiseMeshFilter + AdditiveGaussianNoiseQuadEdgeMeshFilter) + +itk_auto_load_submodules() +itk_end_wrap_module() diff --git a/Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseMeshFilter.wrap b/Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseMeshFilter.wrap new file mode 100644 index 00000000000..4bcd0f5a7ea --- /dev/null +++ b/Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseMeshFilter.wrap @@ -0,0 +1,12 @@ +itk_wrap_include("itkMeshToMeshFilter.h") + +itk_wrap_class("itk::AdditiveGaussianNoiseMeshFilter" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + foreach(t ${WRAP_ITK_REAL}) + itk_wrap_template("M${ITKM_${t}}${d}ST${ITKM_${t}}${d}${d}${ITKM_${t}}M${ITKM_${t}}${d}ST${ITKM_${t}}${d}${d}${ITKM_${t}}${ITKM_${t}}" + "itk::Mesh< ${ITKT_${t}},${d},itk::DefaultStaticMeshTraits< ${ITKT_${t}},${d},${d},${ITKT_${t}} > >, itk::Mesh< ${ITKT_${t}},${d},itk::DefaultStaticMeshTraits< ${ITKT_${t}},${d},${d},${ITKT_${t}},${ITKT_${t}} > >") + itk_wrap_template("M${ITKM_${t}}${d}DT${ITKM_${t}}${d}${d}${ITKM_${t}}M${ITKM_${t}}${d}DT${ITKM_${t}}${d}${d}${ITKM_${t}}${ITKM_${t}}" + "itk::Mesh< ${ITKT_${t}},${d},itk::DefaultDynamicMeshTraits< ${ITKT_${t}},${d},${d},${ITKT_${t}} > >, itk::Mesh< ${ITKT_${t}},${d},itk::DefaultDynamicMeshTraits< ${ITKT_${t}},${d},${d},${ITKT_${t}},${ITKT_${t}} > >") + endforeach() + endforeach() +itk_end_wrap_class() \ No newline at end of file diff --git a/Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.wrap b/Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.wrap new file mode 100644 index 00000000000..d429799f8d9 --- /dev/null +++ b/Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.wrap @@ -0,0 +1,7 @@ +itk_wrap_include("itkQuadEdgeMesh.h") + +itk_wrap_class("itk::AdditiveGaussianNoiseQuadEdgeMeshFilter" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template("QEM${ITKM_D}${d}QEM${ITKM_D}${d}" "itk::QuadEdgeMesh< ${ITKT_D},${d} >, itk::QuadEdgeMesh< ${ITKT_D},${d} >") + endforeach() +itk_end_wrap_class() From 752d4a2a1455d1a5b1c042eea5761ae1cd4d3791 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20Haitz=20Legarreta=20Gorro=C3=B1o?= Date: Tue, 13 Nov 2018 20:33:14 -0500 Subject: [PATCH 13/40] STYLE: Add a newline at the end of files. Add a newline at the end of files to conform to KW Style. Missed by commit 1ddba65. --- .../MeshNoise/wrapping/itkAdditiveGaussianNoiseMeshFilter.wrap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseMeshFilter.wrap b/Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseMeshFilter.wrap index 4bcd0f5a7ea..4bdbe6fcc85 100644 --- a/Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseMeshFilter.wrap +++ b/Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseMeshFilter.wrap @@ -9,4 +9,4 @@ itk_wrap_class("itk::AdditiveGaussianNoiseMeshFilter" POINTER) "itk::Mesh< ${ITKT_${t}},${d},itk::DefaultDynamicMeshTraits< ${ITKT_${t}},${d},${d},${ITKT_${t}} > >, itk::Mesh< ${ITKT_${t}},${d},itk::DefaultDynamicMeshTraits< ${ITKT_${t}},${d},${d},${ITKT_${t}},${ITKT_${t}} > >") endforeach() endforeach() -itk_end_wrap_class() \ No newline at end of file +itk_end_wrap_class() From 6a8957f795d111107cbda0f1a5d91fcc1f015363 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20Haitz=20Legarreta=20Gorro=C3=B1o?= Date: Fri, 23 Nov 2018 19:47:46 -0500 Subject: [PATCH 14/40] DOC: Follow repository naming convention. Follow remote module repository naming convention: add the `ITK` prefix to the **project name**, and keep the prefix out of the **module name**. Specifically: - Fix the **module name** in the main `CMakeLists.txt` file. - Fix the **module name** in the wrapping `CMakeLists.txt` file. - Fix the **module name** in the `itk-module.cmake` file. - Fix the **project name** in the `setup` section of the `setup.py` file. - Change the **project name** in the `config.yml` Circle CI `yml` file. - Fix the **module name** for the `\ingroup` Doxygen documentation keyword. - Take advantage of the change to set the URL to the repository site in `setup.py`. - Take advantage of the change to add keywords describing the module to `setup.py`. --- Modules/Filtering/MeshNoise/CMakeLists.txt | 2 +- .../MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h | 2 +- .../include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h | 2 +- Modules/Filtering/MeshNoise/itk-module.cmake | 6 +++--- Modules/Filtering/MeshNoise/wrapping/CMakeLists.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Modules/Filtering/MeshNoise/CMakeLists.txt b/Modules/Filtering/MeshNoise/CMakeLists.txt index 93da25c3f91..fe05b794d2f 100644 --- a/Modules/Filtering/MeshNoise/CMakeLists.txt +++ b/Modules/Filtering/MeshNoise/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.10.2) -project(DVMeshNoise) +project(MeshNoise) if(NOT ITK_SOURCE_DIR) find_package(ITK REQUIRED) diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h index 16598317d1e..7b9a7075819 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h @@ -35,7 +35,7 @@ namespace itk * counteracting deleterious effects which highly regular regions * of a mesh may occassionally have on mesh processing. * - * \ingroup DVMeshNoise + * \ingroup MeshNoise */ template< typename TInput, typename TOutput = TInput > class AdditiveGaussianNoiseMeshFilter: diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h index d82687c679b..e62d96a2670 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h @@ -35,7 +35,7 @@ namespace itk * counteracting deleterious effects which highly regular regions * of a mesh may occassionally have on mesh processing. * - * \ingroup DVMeshNoise + * \ingroup MeshNoise */ template< typename TInputMesh, typename TOutputMesh = TInputMesh > class AdditiveGaussianNoiseQuadEdgeMeshFilter: diff --git a/Modules/Filtering/MeshNoise/itk-module.cmake b/Modules/Filtering/MeshNoise/itk-module.cmake index 3eeff98ec40..5926e243b76 100644 --- a/Modules/Filtering/MeshNoise/itk-module.cmake +++ b/Modules/Filtering/MeshNoise/itk-module.cmake @@ -4,13 +4,13 @@ get_filename_component(MY_CURRENT_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) file(READ "${MY_CURRENT_DIR}/README.rst" DOCUMENTATION) -# itk_module() defines the module dependencies in DVMeshNoise -# The testing module in DVMeshNoise depends on ITKTestKernel +# itk_module() defines the module dependencies in MeshNoise +# The testing module in MeshNoise depends on ITKTestKernel # By convention those modules outside of ITK are not prefixed with # ITK. # define the dependencies of the include module and the tests -itk_module(DVMeshNoise +itk_module(MeshNoise DEPENDS ITKCommon ITKMesh diff --git a/Modules/Filtering/MeshNoise/wrapping/CMakeLists.txt b/Modules/Filtering/MeshNoise/wrapping/CMakeLists.txt index 5ca53bc9385..b5feb586e1e 100644 --- a/Modules/Filtering/MeshNoise/wrapping/CMakeLists.txt +++ b/Modules/Filtering/MeshNoise/wrapping/CMakeLists.txt @@ -1,4 +1,4 @@ -itk_wrap_module(DVMeshNoise) +itk_wrap_module(MeshNoise) set(WRAPPER_SUBMODULE_ORDER AdditiveGaussianNoiseMeshFilter From 60a284309381d629fe4fc45774904b8a455f66d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20Haitz=20Legarreta=20Gorro=C3=B1o?= Date: Fri, 23 Nov 2018 20:57:01 -0500 Subject: [PATCH 15/40] BUG: Fix wrapping modules names. Fix wrapping modules names: add the missing `itk` prefix. --- Modules/Filtering/MeshNoise/wrapping/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/Filtering/MeshNoise/wrapping/CMakeLists.txt b/Modules/Filtering/MeshNoise/wrapping/CMakeLists.txt index b5feb586e1e..9549003ec4f 100644 --- a/Modules/Filtering/MeshNoise/wrapping/CMakeLists.txt +++ b/Modules/Filtering/MeshNoise/wrapping/CMakeLists.txt @@ -1,8 +1,8 @@ itk_wrap_module(MeshNoise) set(WRAPPER_SUBMODULE_ORDER - AdditiveGaussianNoiseMeshFilter - AdditiveGaussianNoiseQuadEdgeMeshFilter) + itkAdditiveGaussianNoiseMeshFilter + itkAdditiveGaussianNoiseQuadEdgeMeshFilter) itk_auto_load_submodules() itk_end_wrap_module() From 28950d606ae8c7d0a59d52aeb03f189a3991a9ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20Haitz=20Legarreta=20Gorro=C3=B1o?= Date: Sat, 24 Nov 2018 13:43:48 -0500 Subject: [PATCH 16/40] BUG: Fix wrapping. Fix Python wrapping. --- .../wrapping/itkAdditiveGaussianNoiseMeshFilter.wrap | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseMeshFilter.wrap b/Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseMeshFilter.wrap index 4bdbe6fcc85..8100f5d0dd4 100644 --- a/Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseMeshFilter.wrap +++ b/Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseMeshFilter.wrap @@ -1,4 +1,6 @@ -itk_wrap_include("itkMeshToMeshFilter.h") +itk_wrap_include("itkMesh.h") +itk_wrap_include("itkDefaultStaticMeshTraits.h") +itk_wrap_include("itkDefaultDynamicMeshTraits.h") itk_wrap_class("itk::AdditiveGaussianNoiseMeshFilter" POINTER) foreach(d ${ITK_WRAP_IMAGE_DIMS}) From 142718be89ec14384d372c13b21ac87dd6f2837e Mon Sep 17 00:00:00 2001 From: Hans Johnson Date: Wed, 19 Feb 2020 18:08:32 -0600 Subject: [PATCH 17/40] ENH: Add .gitattributes to allow running ITK clang-formatting scripts ``` git filter-branch -f \ --tree-filter "~/ITK/Utilities/Maintenance/clang-format.bash --clang-format ~/Dashboard/src/ITK-clang11/clang-format-Linux --tracked" \ master.. ``` --- .../itkAdditiveGaussianNoiseMeshFilter.h | 24 +++---- .../itkAdditiveGaussianNoiseMeshFilter.hxx | 70 ++++++++----------- ...kAdditiveGaussianNoiseQuadEdgeMeshFilter.h | 22 +++--- ...dditiveGaussianNoiseQuadEdgeMeshFilter.hxx | 35 ++++------ ...itkAdditiveGaussianNoiseMeshFilterTest.cxx | 39 +++++------ ...iveGaussianNoiseQuadEdgeMeshFilterTest.cxx | 39 +++++------ 6 files changed, 105 insertions(+), 124 deletions(-) diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h index 7b9a7075819..4225defb7ab 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h @@ -37,9 +37,8 @@ namespace itk * * \ingroup MeshNoise */ -template< typename TInput, typename TOutput = TInput > -class AdditiveGaussianNoiseMeshFilter: -public MeshToMeshFilter< TInput, TOutput > +template +class AdditiveGaussianNoiseMeshFilter : public MeshToMeshFilter { public: @@ -47,9 +46,9 @@ public MeshToMeshFilter< TInput, TOutput > /** Standard class type alias. */ using Self = AdditiveGaussianNoiseMeshFilter; - using Superclass = MeshToMeshFilter< TInput, TOutput >; - using Pointer = SmartPointer< Self >; - using ConstPointer = SmartPointer< const Self >; + using Superclass = MeshToMeshFilter; + using Pointer = SmartPointer; + using ConstPointer = SmartPointer; using InputMeshType = TInput; using OutputMeshType = TOutput; @@ -78,24 +77,25 @@ public MeshToMeshFilter< TInput, TOutput > itkSetMacro(Seed, int); protected: - AdditiveGaussianNoiseMeshFilter(); - ~AdditiveGaussianNoiseMeshFilter() override{} + ~AdditiveGaussianNoiseMeshFilter() override {} - void PrintSelf(std::ostream & os, Indent indent) const override; + void + PrintSelf(std::ostream & os, Indent indent) const override; /** Generate Requested Data */ - void GenerateData() override; + void + GenerateData() override; CoordRepType m_Mean; CoordRepType m_Sigma; int m_Seed; }; -} +} // namespace itk #ifndef ITK_MANUAL_INSTANTIATION -#include "itkAdditiveGaussianNoiseMeshFilter.hxx" +# include "itkAdditiveGaussianNoiseMeshFilter.hxx" #endif #endif diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx index 989feb89199..eb11c0dafda 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx @@ -24,29 +24,26 @@ namespace itk { -template< typename TInputMesh, typename TOutputMesh > -AdditiveGaussianNoiseMeshFilter< TInputMesh, TOutputMesh > -::AdditiveGaussianNoiseMeshFilter() +template +AdditiveGaussianNoiseMeshFilter::AdditiveGaussianNoiseMeshFilter() { this->m_Mean = 0.0; this->m_Sigma = 1.0; this->m_Seed = 0; } -template< typename TInputMesh, typename TOutputMesh > +template void -AdditiveGaussianNoiseMeshFilter< TInputMesh, TOutputMesh > -::PrintSelf(std::ostream & os, Indent indent) const +AdditiveGaussianNoiseMeshFilter::PrintSelf(std::ostream & os, Indent indent) const { Superclass::PrintSelf(os, indent); os << indent << "Mean: " << this->m_Mean << std::endl; os << indent << "Sigma: " << this->m_Sigma << std::endl; } -template< typename TInputMesh, typename TOutputMesh > +template void -AdditiveGaussianNoiseMeshFilter< TInputMesh, TOutputMesh > -::GenerateData(void) +AdditiveGaussianNoiseMeshFilter::GenerateData(void) { using InputPointsContainer = typename TInputMesh::PointsContainer; using OutputPointsContainer = typename TOutputMesh::PointsContainer; @@ -54,48 +51,45 @@ AdditiveGaussianNoiseMeshFilter< TInputMesh, TOutputMesh > using InputPointsContainerConstPointer = typename TInputMesh::PointsContainerConstPointer; using OutputPointsContainerPointer = typename TOutputMesh::PointsContainerPointer; - const InputMeshType *inputMesh = this->GetInput(); - OutputMeshPointer outputMesh = this->GetOutput(); + const InputMeshType * inputMesh = this->GetInput(); + OutputMeshPointer outputMesh = this->GetOutput(); - if ( !inputMesh ) - { + if (!inputMesh) + { itkExceptionMacro(<< "Missing Input Mesh"); - } + } - if ( !outputMesh ) - { + if (!outputMesh) + { itkExceptionMacro(<< "Missing Output Mesh"); - } + } - outputMesh->SetBufferedRegion( outputMesh->GetRequestedRegion() ); + outputMesh->SetBufferedRegion(outputMesh->GetRequestedRegion()); - InputPointsContainerConstPointer inPoints = inputMesh->GetPoints(); + InputPointsContainerConstPointer inPoints = inputMesh->GetPoints(); OutputPointsContainerPointer outPoints = outputMesh->GetPoints(); - outPoints->Reserve( inputMesh->GetNumberOfPoints() ); + outPoints->Reserve(inputMesh->GetNumberOfPoints()); outPoints->Squeeze(); - typename InputPointsContainer::ConstIterator inputPoint - = inPoints->Begin(); - typename OutputPointsContainer::Iterator outputPoint - = outPoints->Begin(); + typename InputPointsContainer::ConstIterator inputPoint = inPoints->Begin(); + typename OutputPointsContainer::Iterator outputPoint = outPoints->Begin(); unsigned int maxDimension = TInputMesh::MaxTopologicalDimension; using GeneratorType = itk::Statistics::NormalVariateGenerator; GeneratorType::Pointer generator = GeneratorType::New(); - generator->Initialize( this->m_Seed ); + generator->Initialize(this->m_Seed); - while ( inputPoint != inPoints->End() ) + while (inputPoint != inPoints->End()) + { + for (unsigned int dim = 0; dim < maxDimension; ++dim) { - for ( unsigned int dim = 0; dim < maxDimension; ++dim ) - { - outputPoint.Value()[dim] - = inputPoint.Value()[dim] + generator->GetVariate()*this->m_Sigma + this->m_Mean; - } + outputPoint.Value()[dim] = inputPoint.Value()[dim] + generator->GetVariate() * this->m_Sigma + this->m_Mean; + } ++inputPoint; ++outputPoint; - } + } // Create duplicate references to the rest of data on the mesh this->CopyInputMeshToOutputMeshPointData(); @@ -103,14 +97,12 @@ AdditiveGaussianNoiseMeshFilter< TInputMesh, TOutputMesh > this->CopyInputMeshToOutputMeshCells(); this->CopyInputMeshToOutputMeshCellData(); - for ( unsigned int dim = 0; dim < maxDimension; ++dim ) - { - outputMesh->SetBoundaryAssignments( dim, - inputMesh->GetBoundaryAssignments(dim) ); - } - + for (unsigned int dim = 0; dim < maxDimension; ++dim) + { + outputMesh->SetBoundaryAssignments(dim, inputMesh->GetBoundaryAssignments(dim)); + } } -} +} // namespace itk #endif diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h index e62d96a2670..27df6c8682c 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h @@ -37,18 +37,17 @@ namespace itk * * \ingroup MeshNoise */ -template< typename TInputMesh, typename TOutputMesh = TInputMesh > -class AdditiveGaussianNoiseQuadEdgeMeshFilter: - public QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh > +template +class AdditiveGaussianNoiseQuadEdgeMeshFilter : public QuadEdgeMeshToQuadEdgeMeshFilter { public: ITK_DISALLOW_COPY_AND_ASSIGN(AdditiveGaussianNoiseQuadEdgeMeshFilter); /** Standard class type alias. */ using Self = AdditiveGaussianNoiseQuadEdgeMeshFilter; - using Superclass = QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh >; - using Pointer = SmartPointer< Self >; - using ConstPointer = SmartPointer< const Self >; + using Superclass = QuadEdgeMeshToQuadEdgeMeshFilter; + using Pointer = SmartPointer; + using ConstPointer = SmartPointer; /** Type for representing coordinates. */ using CoordRepType = typename TInputMesh::CoordRepType; @@ -72,14 +71,15 @@ class AdditiveGaussianNoiseQuadEdgeMeshFilter: itkSetMacro(Seed, int); protected: - AdditiveGaussianNoiseQuadEdgeMeshFilter(); - ~AdditiveGaussianNoiseQuadEdgeMeshFilter() override{} + ~AdditiveGaussianNoiseQuadEdgeMeshFilter() override {} - void PrintSelf(std::ostream & os, Indent indent) const override; + void + PrintSelf(std::ostream & os, Indent indent) const override; /** Generate Requested Data */ - void GenerateData(void) override; + void + GenerateData(void) override; CoordRepType m_Mean; CoordRepType m_Sigma; @@ -89,7 +89,7 @@ class AdditiveGaussianNoiseQuadEdgeMeshFilter: } // end namespace itk #ifndef ITK_MANUAL_INSTANTIATION -#include "itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx" +# include "itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx" #endif #endif diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx index f72a1649512..2485a87603a 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx @@ -24,51 +24,46 @@ namespace itk { -template< typename TInputMesh, typename TOutputMesh > -AdditiveGaussianNoiseQuadEdgeMeshFilter< TInputMesh, TOutputMesh > -::AdditiveGaussianNoiseQuadEdgeMeshFilter() +template +AdditiveGaussianNoiseQuadEdgeMeshFilter::AdditiveGaussianNoiseQuadEdgeMeshFilter() { this->m_Mean = 0.0; this->m_Sigma = 1.0; this->m_Seed = 0; } -template< typename TInputMesh, typename TOutputMesh > +template void -AdditiveGaussianNoiseQuadEdgeMeshFilter< TInputMesh, TOutputMesh > -::PrintSelf(std::ostream & os, Indent indent) const +AdditiveGaussianNoiseQuadEdgeMeshFilter::PrintSelf(std::ostream & os, Indent indent) const { Superclass::PrintSelf(os, indent); os << indent << "Mean: " << this->m_Mean << std::endl; os << indent << "Sigma: " << this->m_Sigma << std::endl; } -template< typename TInputMesh, typename TOutputMesh > +template void -AdditiveGaussianNoiseQuadEdgeMeshFilter< TInputMesh, TOutputMesh > -::GenerateData(void) +AdditiveGaussianNoiseQuadEdgeMeshFilter::GenerateData(void) { - typename TInputMesh::ConstPointer inputMesh = this->GetInput(); + typename TInputMesh::ConstPointer inputMesh = this->GetInput(); typename TOutputMesh::Pointer outputMesh = this->GetOutput(); this->CopyInputMeshToOutputMesh(); - typename TOutputMesh::PointsContainer::Iterator it = - outputMesh->GetPoints()->Begin(); + typename TOutputMesh::PointsContainer::Iterator it = outputMesh->GetPoints()->Begin(); using GeneratorType = itk::Statistics::NormalVariateGenerator; GeneratorType::Pointer generator = GeneratorType::New(); - generator->Initialize( this->m_Seed ); + generator->Initialize(this->m_Seed); - while ( it != outputMesh->GetPoints()->End() ) - { + while (it != outputMesh->GetPoints()->End()) + { for (unsigned int d = 0; d < TOutputMesh::MeshTraits::PointDimension; ++d) - { - it.Value()[d] += (generator->GetVariate()*this->m_Sigma + this->m_Mean); - } - ++it; + { + it.Value()[d] += (generator->GetVariate() * this->m_Sigma + this->m_Mean); } - + ++it; + } } } // end namespace itk diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx index 0caede18418..22d84de02aa 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx @@ -21,7 +21,7 @@ #include "itkTestingMacros.h" int -itkAdditiveGaussianNoiseMeshFilterTest(int itkNotUsed(argc), char * itkNotUsed(argv) []) +itkAdditiveGaussianNoiseMeshFilterTest(int itkNotUsed(argc), char * itkNotUsed(argv)[]) { using TPixel = double; @@ -31,20 +31,20 @@ itkAdditiveGaussianNoiseMeshFilterTest(int itkNotUsed(argc), char * itkNotUsed(a // Typedefs // ////////////// - using TMesh = itk::Mesh< TPixel, Dimension >; - using TSphere = itk::RegularSphereMeshSource< TMesh >; - using TNoise = itk::AdditiveGaussianNoiseMeshFilter< TMesh >; + using TMesh = itk::Mesh; + using TSphere = itk::RegularSphereMeshSource; + using TNoise = itk::AdditiveGaussianNoiseMeshFilter; //////////////// // Parameters // //////////////// - constexpr int SPHERE_RESOLUTION = 5; + constexpr int SPHERE_RESOLUTION = 5; constexpr double SPHERE_SCALE = 10.0; - constexpr int NOISE_SEED = 100; - const TMesh::CoordRepType NOISE_SIGMA = SPHERE_SCALE * 0.01; - constexpr TMesh::CoordRepType NOISE_MEAN = 1.0; + constexpr int NOISE_SEED = 100; + const TMesh::CoordRepType NOISE_SIGMA = SPHERE_SCALE * 0.01; + constexpr TMesh::CoordRepType NOISE_MEAN = 1.0; /////////// // Logic // @@ -52,25 +52,22 @@ itkAdditiveGaussianNoiseMeshFilterTest(int itkNotUsed(argc), char * itkNotUsed(a TSphere::Pointer sphere = TSphere::New(); - sphere->SetResolution( SPHERE_RESOLUTION ); - sphere->SetScale( SPHERE_SCALE ); + sphere->SetResolution(SPHERE_RESOLUTION); + sphere->SetScale(SPHERE_SCALE); TNoise::Pointer noise = TNoise::New(); - EXERCISE_BASIC_OBJECT_METHODS( noise, - AdditiveGaussianNoiseMeshFilter, - MeshToMeshFilter ); + EXERCISE_BASIC_OBJECT_METHODS(noise, AdditiveGaussianNoiseMeshFilter, MeshToMeshFilter); - noise->SetInput( sphere->GetOutput() ); - noise->SetSeed( NOISE_SEED ); - TEST_SET_GET_VALUE( NOISE_SEED, noise->GetSeed() ); - noise->SetSigma( NOISE_SIGMA ); - TEST_SET_GET_VALUE( NOISE_SIGMA, noise->GetSigma() ); - noise->SetMean( NOISE_MEAN ); - TEST_SET_GET_VALUE( NOISE_MEAN, noise->GetMean() ); + noise->SetInput(sphere->GetOutput()); + noise->SetSeed(NOISE_SEED); + TEST_SET_GET_VALUE(NOISE_SEED, noise->GetSeed()); + noise->SetSigma(NOISE_SIGMA); + TEST_SET_GET_VALUE(NOISE_SIGMA, noise->GetSigma()); + noise->SetMean(NOISE_MEAN); + TEST_SET_GET_VALUE(NOISE_MEAN, noise->GetMean()); noise->Update(); return EXIT_SUCCESS; - } diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx index 0e08f27c8d0..a80664b3482 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx @@ -21,7 +21,7 @@ #include "itkTestingMacros.h" int -itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest(int itkNotUsed(argc), char * itkNotUsed(argv) []) +itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest(int itkNotUsed(argc), char * itkNotUsed(argv)[]) { using TPixel = double; @@ -31,20 +31,20 @@ itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest(int itkNotUsed(argc), char * itkN // Typedefs // ////////////// - using TMesh = itk::QuadEdgeMesh< TPixel, Dimension >; - using TSphere = itk::RegularSphereMeshSource< TMesh >; - using TNoise = itk::AdditiveGaussianNoiseQuadEdgeMeshFilter< TMesh >; + using TMesh = itk::QuadEdgeMesh; + using TSphere = itk::RegularSphereMeshSource; + using TNoise = itk::AdditiveGaussianNoiseQuadEdgeMeshFilter; //////////////// // Parameters // //////////////// - constexpr int SPHERE_RESOLUTION = 5; + constexpr int SPHERE_RESOLUTION = 5; constexpr double SPHERE_SCALE = 10.0; - constexpr int NOISE_SEED = 100; - const TMesh::CoordRepType NOISE_SIGMA = SPHERE_SCALE * 0.01; - constexpr TMesh::CoordRepType NOISE_MEAN = 1.0; + constexpr int NOISE_SEED = 100; + const TMesh::CoordRepType NOISE_SIGMA = SPHERE_SCALE * 0.01; + constexpr TMesh::CoordRepType NOISE_MEAN = 1.0; /////////// // Logic // @@ -52,25 +52,22 @@ itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest(int itkNotUsed(argc), char * itkN TSphere::Pointer sphere = TSphere::New(); - sphere->SetResolution( SPHERE_RESOLUTION ); - sphere->SetScale( SPHERE_SCALE ); + sphere->SetResolution(SPHERE_RESOLUTION); + sphere->SetScale(SPHERE_SCALE); TNoise::Pointer noise = TNoise::New(); - EXERCISE_BASIC_OBJECT_METHODS( noise, - AdditiveGaussianNoiseQuadEdgeMeshFilter, - QuadEdgeMeshToQuadEdgeMeshFilter ); + EXERCISE_BASIC_OBJECT_METHODS(noise, AdditiveGaussianNoiseQuadEdgeMeshFilter, QuadEdgeMeshToQuadEdgeMeshFilter); - noise->SetInput( sphere->GetOutput() ); - noise->SetSeed( NOISE_SEED ); - TEST_SET_GET_VALUE( NOISE_SEED, noise->GetSeed() ); - noise->SetSigma( NOISE_SIGMA ); - TEST_SET_GET_VALUE( NOISE_SIGMA, noise->GetSigma() ); - noise->SetMean( NOISE_MEAN ); - TEST_SET_GET_VALUE( NOISE_MEAN, noise->GetMean() ); + noise->SetInput(sphere->GetOutput()); + noise->SetSeed(NOISE_SEED); + TEST_SET_GET_VALUE(NOISE_SEED, noise->GetSeed()); + noise->SetSigma(NOISE_SIGMA); + TEST_SET_GET_VALUE(NOISE_SIGMA, noise->GetSigma()); + noise->SetMean(NOISE_MEAN); + TEST_SET_GET_VALUE(NOISE_MEAN, noise->GetMean()); noise->Update(); return EXIT_SUCCESS; - } From c6886c0d435e36e47ae5cb759288bd9bd2920e5a Mon Sep 17 00:00:00 2001 From: Hans Johnson Date: Mon, 17 Feb 2020 14:29:56 -0600 Subject: [PATCH 18/40] STYLE: Prefer = default to explicitly trivial implementations This check replaces default bodies of special member functions with = default;. The explicitly defaulted function declarations enable more opportunities in optimization, because the compiler might treat explicitly defaulted functions as trivial. Additionally, the C++11 use of = default more clearly expreses the intent for the special member functions. --- .../MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h | 2 +- .../include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h index 4225defb7ab..41949abc3b4 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h @@ -78,7 +78,7 @@ class AdditiveGaussianNoiseMeshFilter : public MeshToMeshFilter protected: AdditiveGaussianNoiseMeshFilter(); - ~AdditiveGaussianNoiseMeshFilter() override {} + ~AdditiveGaussianNoiseMeshFilter() override = default; void PrintSelf(std::ostream & os, Indent indent) const override; diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h index 27df6c8682c..9ad55265e90 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h @@ -72,7 +72,7 @@ class AdditiveGaussianNoiseQuadEdgeMeshFilter : public QuadEdgeMeshToQuadEdgeMes protected: AdditiveGaussianNoiseQuadEdgeMeshFilter(); - ~AdditiveGaussianNoiseQuadEdgeMeshFilter() override {} + ~AdditiveGaussianNoiseQuadEdgeMeshFilter() override = default; void PrintSelf(std::ostream & os, Indent indent) const override; From f09f7855550ca3adb052f4fd3151bb47c2f8fbac Mon Sep 17 00:00:00 2001 From: Hans Johnson Date: Mon, 17 Feb 2020 14:48:31 -0600 Subject: [PATCH 19/40] STYLE: Remove redundant void argument lists Find and remove redundant void argument lists. --- .../MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx | 2 +- .../include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h | 2 +- .../include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx index eb11c0dafda..320e51b4653 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx @@ -43,7 +43,7 @@ AdditiveGaussianNoiseMeshFilter::PrintSelf(std::ostream template void -AdditiveGaussianNoiseMeshFilter::GenerateData(void) +AdditiveGaussianNoiseMeshFilter::GenerateData() { using InputPointsContainer = typename TInputMesh::PointsContainer; using OutputPointsContainer = typename TOutputMesh::PointsContainer; diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h index 9ad55265e90..6fabf4acd69 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h @@ -79,7 +79,7 @@ class AdditiveGaussianNoiseQuadEdgeMeshFilter : public QuadEdgeMeshToQuadEdgeMes /** Generate Requested Data */ void - GenerateData(void) override; + GenerateData() override; CoordRepType m_Mean; CoordRepType m_Sigma; diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx index 2485a87603a..7fbf02766c3 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx @@ -43,7 +43,7 @@ AdditiveGaussianNoiseQuadEdgeMeshFilter::PrintSelf(std: template void -AdditiveGaussianNoiseQuadEdgeMeshFilter::GenerateData(void) +AdditiveGaussianNoiseQuadEdgeMeshFilter::GenerateData() { typename TInputMesh::ConstPointer inputMesh = this->GetInput(); typename TOutputMesh::Pointer outputMesh = this->GetOutput(); From 5202d728dc6779fb43a3f0c8f21cd3ae6e42fcd2 Mon Sep 17 00:00:00 2001 From: Hans Johnson Date: Wed, 19 Feb 2020 10:45:25 -0600 Subject: [PATCH 20/40] DOC: Update copyright assignment to NumFOCUS The mission of NumFOCUS is to promote open practices in research, data, and scientific computing. https://numfocus.org --- .../MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h | 2 +- .../MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx | 2 +- .../include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h | 2 +- .../include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx | 2 +- .../MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx | 2 +- .../test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h index 41949abc3b4..0a0441ac1ba 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h @@ -1,6 +1,6 @@ /*========================================================================= * - * Copyright Insight Software Consortium + * Copyright NumFOCUS * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx index 320e51b4653..1b9e0d20b6d 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx @@ -1,6 +1,6 @@ /*========================================================================= * - * Copyright Insight Software Consortium + * Copyright NumFOCUS * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h index 6fabf4acd69..d392256b762 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h @@ -1,6 +1,6 @@ /*========================================================================= * - * Copyright Insight Software Consortium + * Copyright NumFOCUS * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx index 7fbf02766c3..0b7365e8167 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx @@ -1,6 +1,6 @@ /*========================================================================= * - * Copyright Insight Software Consortium + * Copyright NumFOCUS * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx index 22d84de02aa..d330ad20c72 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx @@ -1,6 +1,6 @@ /*========================================================================= * - * Copyright Insight Software Consortium + * Copyright NumFOCUS * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx index a80664b3482..f2ab2729164 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx @@ -1,6 +1,6 @@ /*========================================================================= * - * Copyright Insight Software Consortium + * Copyright NumFOCUS * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. From 721e2fa2908b6b4a25c54d27206418aa2b23fd63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20Haitz=20Legarreta=20Gorro=C3=B1o?= Date: Fri, 14 Jun 2019 20:28:06 -0400 Subject: [PATCH 21/40] STYLE: Add ITK prefix to testing macros --- .../itkAdditiveGaussianNoiseMeshFilterTest.cxx | 18 ++++++++++-------- ...tiveGaussianNoiseQuadEdgeMeshFilterTest.cxx | 18 ++++++++++-------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx index d330ad20c72..2056f7f8c1f 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx @@ -57,15 +57,17 @@ itkAdditiveGaussianNoiseMeshFilterTest(int itkNotUsed(argc), char * itkNotUsed(a TNoise::Pointer noise = TNoise::New(); - EXERCISE_BASIC_OBJECT_METHODS(noise, AdditiveGaussianNoiseMeshFilter, MeshToMeshFilter); + ITK_EXERCISE_BASIC_OBJECT_METHODS( noise, + AdditiveGaussianNoiseMeshFilter, + MeshToMeshFilter ); - noise->SetInput(sphere->GetOutput()); - noise->SetSeed(NOISE_SEED); - TEST_SET_GET_VALUE(NOISE_SEED, noise->GetSeed()); - noise->SetSigma(NOISE_SIGMA); - TEST_SET_GET_VALUE(NOISE_SIGMA, noise->GetSigma()); - noise->SetMean(NOISE_MEAN); - TEST_SET_GET_VALUE(NOISE_MEAN, noise->GetMean()); + noise->SetInput( sphere->GetOutput() ); + noise->SetSeed( NOISE_SEED ); + ITK_TEST_SET_GET_VALUE( NOISE_SEED, noise->GetSeed() ); + noise->SetSigma( NOISE_SIGMA ); + ITK_TEST_SET_GET_VALUE( NOISE_SIGMA, noise->GetSigma() ); + noise->SetMean( NOISE_MEAN ); + ITK_TEST_SET_GET_VALUE( NOISE_MEAN, noise->GetMean() ); noise->Update(); diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx index f2ab2729164..de011289c45 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx @@ -57,15 +57,17 @@ itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest(int itkNotUsed(argc), char * itkN TNoise::Pointer noise = TNoise::New(); - EXERCISE_BASIC_OBJECT_METHODS(noise, AdditiveGaussianNoiseQuadEdgeMeshFilter, QuadEdgeMeshToQuadEdgeMeshFilter); + ITK_EXERCISE_BASIC_OBJECT_METHODS( noise, + AdditiveGaussianNoiseQuadEdgeMeshFilter, + QuadEdgeMeshToQuadEdgeMeshFilter ); - noise->SetInput(sphere->GetOutput()); - noise->SetSeed(NOISE_SEED); - TEST_SET_GET_VALUE(NOISE_SEED, noise->GetSeed()); - noise->SetSigma(NOISE_SIGMA); - TEST_SET_GET_VALUE(NOISE_SIGMA, noise->GetSigma()); - noise->SetMean(NOISE_MEAN); - TEST_SET_GET_VALUE(NOISE_MEAN, noise->GetMean()); + noise->SetInput( sphere->GetOutput() ); + noise->SetSeed( NOISE_SEED ); + ITK_TEST_SET_GET_VALUE( NOISE_SEED, noise->GetSeed() ); + noise->SetSigma( NOISE_SIGMA ); + ITK_TEST_SET_GET_VALUE( NOISE_SIGMA, noise->GetSigma() ); + noise->SetMean( NOISE_MEAN ); + ITK_TEST_SET_GET_VALUE( NOISE_MEAN, noise->GetMean() ); noise->Update(); From 0026e120dd857fd3ea3cd3ea074bdef31ef816bb Mon Sep 17 00:00:00 2001 From: Davis Marc Vigneault Date: Wed, 20 May 2020 23:04:34 -0700 Subject: [PATCH 22/40] STYLE: Apply Clang Format --- .../itkAdditiveGaussianNoiseMeshFilterTest.cxx | 18 ++++++++---------- ...tiveGaussianNoiseQuadEdgeMeshFilterTest.cxx | 18 ++++++++---------- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx index 2056f7f8c1f..fb6bd117066 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx @@ -57,17 +57,15 @@ itkAdditiveGaussianNoiseMeshFilterTest(int itkNotUsed(argc), char * itkNotUsed(a TNoise::Pointer noise = TNoise::New(); - ITK_EXERCISE_BASIC_OBJECT_METHODS( noise, - AdditiveGaussianNoiseMeshFilter, - MeshToMeshFilter ); + ITK_EXERCISE_BASIC_OBJECT_METHODS(noise, AdditiveGaussianNoiseMeshFilter, MeshToMeshFilter); - noise->SetInput( sphere->GetOutput() ); - noise->SetSeed( NOISE_SEED ); - ITK_TEST_SET_GET_VALUE( NOISE_SEED, noise->GetSeed() ); - noise->SetSigma( NOISE_SIGMA ); - ITK_TEST_SET_GET_VALUE( NOISE_SIGMA, noise->GetSigma() ); - noise->SetMean( NOISE_MEAN ); - ITK_TEST_SET_GET_VALUE( NOISE_MEAN, noise->GetMean() ); + noise->SetInput(sphere->GetOutput()); + noise->SetSeed(NOISE_SEED); + ITK_TEST_SET_GET_VALUE(NOISE_SEED, noise->GetSeed()); + noise->SetSigma(NOISE_SIGMA); + ITK_TEST_SET_GET_VALUE(NOISE_SIGMA, noise->GetSigma()); + noise->SetMean(NOISE_MEAN); + ITK_TEST_SET_GET_VALUE(NOISE_MEAN, noise->GetMean()); noise->Update(); diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx index de011289c45..4f5f9da76d7 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx @@ -57,17 +57,15 @@ itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest(int itkNotUsed(argc), char * itkN TNoise::Pointer noise = TNoise::New(); - ITK_EXERCISE_BASIC_OBJECT_METHODS( noise, - AdditiveGaussianNoiseQuadEdgeMeshFilter, - QuadEdgeMeshToQuadEdgeMeshFilter ); + ITK_EXERCISE_BASIC_OBJECT_METHODS(noise, AdditiveGaussianNoiseQuadEdgeMeshFilter, QuadEdgeMeshToQuadEdgeMeshFilter); - noise->SetInput( sphere->GetOutput() ); - noise->SetSeed( NOISE_SEED ); - ITK_TEST_SET_GET_VALUE( NOISE_SEED, noise->GetSeed() ); - noise->SetSigma( NOISE_SIGMA ); - ITK_TEST_SET_GET_VALUE( NOISE_SIGMA, noise->GetSigma() ); - noise->SetMean( NOISE_MEAN ); - ITK_TEST_SET_GET_VALUE( NOISE_MEAN, noise->GetMean() ); + noise->SetInput(sphere->GetOutput()); + noise->SetSeed(NOISE_SEED); + ITK_TEST_SET_GET_VALUE(NOISE_SEED, noise->GetSeed()); + noise->SetSigma(NOISE_SIGMA); + ITK_TEST_SET_GET_VALUE(NOISE_SIGMA, noise->GetSigma()); + noise->SetMean(NOISE_MEAN); + ITK_TEST_SET_GET_VALUE(NOISE_MEAN, noise->GetMean()); noise->Update(); From ada7f09f547aa8634d91248ba6f4fa6a5f12c8c4 Mon Sep 17 00:00:00 2001 From: Davis Vigneault Date: Wed, 20 May 2020 13:40:23 -0700 Subject: [PATCH 23/40] COMP: Fix Wrapping Errors When compiling ITK with Module_MeshNoise=ON and ITK_WRAP_PYTHON=ON, ITK fails to build with a number of compilation errors due to the fact that we are attempting to instantiate the filters over DynamicMeshTraits, but PointSet, Mesh, MeshSource, and MeshToMeshFilter have been instantiated for only StaticMeshTraits. This results in a number of errors of the form "Nothing known about base class XXX." This patch ensures that the two superclasses (MeshToMeshFilter and MeshSource) are wrapped by passing the appropriate option (POINTER_WITH_2_SUPERCLASSES), and explicitly wraps Mesh and PointSet, allowing the module to build successfully. --- .../itkAdditiveGaussianNoiseMeshFilter.wrap | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseMeshFilter.wrap b/Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseMeshFilter.wrap index 8100f5d0dd4..33bcf7a2b58 100644 --- a/Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseMeshFilter.wrap +++ b/Modules/Filtering/MeshNoise/wrapping/itkAdditiveGaussianNoiseMeshFilter.wrap @@ -2,13 +2,32 @@ itk_wrap_include("itkMesh.h") itk_wrap_include("itkDefaultStaticMeshTraits.h") itk_wrap_include("itkDefaultDynamicMeshTraits.h") -itk_wrap_class("itk::AdditiveGaussianNoiseMeshFilter" POINTER) +itk_wrap_class("itk::AdditiveGaussianNoiseMeshFilter" POINTER_WITH_2_SUPERCLASSES) foreach(d ${ITK_WRAP_IMAGE_DIMS}) foreach(t ${WRAP_ITK_REAL}) - itk_wrap_template("M${ITKM_${t}}${d}ST${ITKM_${t}}${d}${d}${ITKM_${t}}M${ITKM_${t}}${d}ST${ITKM_${t}}${d}${d}${ITKM_${t}}${ITKM_${t}}" - "itk::Mesh< ${ITKT_${t}},${d},itk::DefaultStaticMeshTraits< ${ITKT_${t}},${d},${d},${ITKT_${t}} > >, itk::Mesh< ${ITKT_${t}},${d},itk::DefaultStaticMeshTraits< ${ITKT_${t}},${d},${d},${ITKT_${t}},${ITKT_${t}} > >") - itk_wrap_template("M${ITKM_${t}}${d}DT${ITKM_${t}}${d}${d}${ITKM_${t}}M${ITKM_${t}}${d}DT${ITKM_${t}}${d}${d}${ITKM_${t}}${ITKM_${t}}" - "itk::Mesh< ${ITKT_${t}},${d},itk::DefaultDynamicMeshTraits< ${ITKT_${t}},${d},${d},${ITKT_${t}} > >, itk::Mesh< ${ITKT_${t}},${d},itk::DefaultDynamicMeshTraits< ${ITKT_${t}},${d},${d},${ITKT_${t}},${ITKT_${t}} > >") + itk_wrap_template("M${ITKM_${t}}${d}M${ITKM_${t}}${d}" + "itk::Mesh<${ITKT_${t}},${d}>, itk::Mesh<${ITKT_${t}},${d}>") + itk_wrap_template("M${ITKM_${t}}${d}DT${ITKM_${t}}${d}M${ITKM_${t}}${d}DT${ITKM_${t}}${d}" + "itk::Mesh<${ITKT_${t}},${d},itk::DefaultDynamicMeshTraits<${ITKT_${t}},${d}>>, itk::Mesh<${ITKT_${t}},${d},itk::DefaultDynamicMeshTraits<${ITKT_${t}},${d}>>") + endforeach() + endforeach() +itk_end_wrap_class() + + +itk_wrap_class("itk::Mesh" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + foreach(t ${WRAP_ITK_REAL}) + itk_wrap_template("${ITKM_${t}}${d}DT${ITKM_${t}}${d}" + "${ITKT_${t}},${d},itk::DefaultDynamicMeshTraits<${ITKT_${t}},${d}>") + endforeach() + endforeach() +itk_end_wrap_class() + +itk_wrap_class("itk::PointSet" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + foreach(t ${WRAP_ITK_REAL}) + itk_wrap_template("${ITKM_${t}}${d}DT${ITKM_${t}}${d}" + "${ITKT_${t}},${d},itk::DefaultDynamicMeshTraits<${ITKT_${t}},${d}>") endforeach() endforeach() itk_end_wrap_class() From 8c2e287c480e2a48c5d0c28957f819b7d48cc285 Mon Sep 17 00:00:00 2001 From: Mathew Seng Date: Fri, 16 Oct 2020 10:26:08 -0500 Subject: [PATCH 24/40] STYLE: Rename ITK_DISALLOW_COPY_AND_ASSIGN to ITK_DISALLOW_COPY_AND_MOVE Fixes changes made in #2053. ITK_DISALLOW_COPY_AND_ASSIGN will be used if ITK_FUTURE_LEGACY_REMOVE=OFF. --- .../MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h | 2 +- .../include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h index 0a0441ac1ba..28325f501f9 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h @@ -42,7 +42,7 @@ class AdditiveGaussianNoiseMeshFilter : public MeshToMeshFilter { public: - ITK_DISALLOW_COPY_AND_ASSIGN(AdditiveGaussianNoiseMeshFilter); + ITK_DISALLOW_COPY_AND_MOVE(AdditiveGaussianNoiseMeshFilter); /** Standard class type alias. */ using Self = AdditiveGaussianNoiseMeshFilter; diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h index d392256b762..d65e61c97a7 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h @@ -41,7 +41,7 @@ template class AdditiveGaussianNoiseQuadEdgeMeshFilter : public QuadEdgeMeshToQuadEdgeMeshFilter { public: - ITK_DISALLOW_COPY_AND_ASSIGN(AdditiveGaussianNoiseQuadEdgeMeshFilter); + ITK_DISALLOW_COPY_AND_MOVE(AdditiveGaussianNoiseQuadEdgeMeshFilter); /** Standard class type alias. */ using Self = AdditiveGaussianNoiseQuadEdgeMeshFilter; From 5e9ada550d9d41ab18a346577be4c7c16d240d19 Mon Sep 17 00:00:00 2001 From: Hans Johnson Date: Fri, 17 Dec 2021 13:14:26 -0600 Subject: [PATCH 25/40] COMP: Remove inclusion of .hxx files as headers The ability to include either .h or .hxx files as header files required recursively reading the .h files twice. The added complexity is unnecessary, costly, and can confuse static analysis tools that monitor header guardes (due to reaching the maximum depth of recursion limits for nested #ifdefs in checking). --- .../MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx | 1 - .../include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx | 1 - 2 files changed, 2 deletions(-) diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx index 1b9e0d20b6d..f8a390c8723 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx @@ -18,7 +18,6 @@ #ifndef itkAdditiveGaussianNoiseMeshFilter_hxx #define itkAdditiveGaussianNoiseMeshFilter_hxx -#include "itkAdditiveGaussianNoiseMeshFilter.h" #include "itkNormalVariateGenerator.h" namespace itk diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx index 0b7365e8167..f1ffb44888b 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx @@ -18,7 +18,6 @@ #ifndef itkAdditiveGaussianNoiseQuadEdgeMeshFilter_hxx #define itkAdditiveGaussianNoiseQuadEdgeMeshFilter_hxx -#include "itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h" #include "itkNormalVariateGenerator.h" namespace itk From 14b714fbb7d5e27c58bdb18ac40e06c430043841 Mon Sep 17 00:00:00 2001 From: Tom Birdsong Date: Tue, 31 May 2022 11:48:46 -0400 Subject: [PATCH 26/40] ENH: Bump ITK and replace http with https using script --- .../MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h | 2 +- .../MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx | 2 +- .../include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h | 2 +- .../include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx | 2 +- .../MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx | 2 +- .../test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h index 28325f501f9..87501ffe6dc 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h @@ -6,7 +6,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0.txt + * https://www.apache.org/licenses/LICENSE-2.0.txt * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx index f8a390c8723..17d81d955c8 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.hxx @@ -6,7 +6,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0.txt + * https://www.apache.org/licenses/LICENSE-2.0.txt * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h index d65e61c97a7..22936577841 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h @@ -6,7 +6,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0.txt + * https://www.apache.org/licenses/LICENSE-2.0.txt * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx index f1ffb44888b..c32d7546439 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.hxx @@ -6,7 +6,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0.txt + * https://www.apache.org/licenses/LICENSE-2.0.txt * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx index fb6bd117066..a15e559931c 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx @@ -6,7 +6,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0.txt + * https://www.apache.org/licenses/LICENSE-2.0.txt * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx index 4f5f9da76d7..b126e649a86 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx @@ -6,7 +6,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0.txt + * https://www.apache.org/licenses/LICENSE-2.0.txt * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, From 3f4e08693d8fe973e99850239f8ee3956ababa2d Mon Sep 17 00:00:00 2001 From: Hans Johnson Date: Sun, 26 Jan 2025 08:59:24 -0600 Subject: [PATCH 27/40] STYLE: Add itkVirtualGetNameOfClassMacro + itkOverrideGetNameOfClassMacro Added two new macro's, intended to replace the old 'itkTypeMacro' and 'itkTypeMacroNoParent'. The main aim is to be clearer about what those macro's do: add a virtual 'GetNameOfClass()' member function and override it. Unlike 'itkTypeMacro', 'itkOverrideGetNameOfClassMacro' does not have a 'superclass' parameter, as it was not used anyway. Note that originally 'itkTypeMacro' did not use its 'superclass' parameter either, looking at commit 699b66cb04d410e555656828e8892107add38ccb, Will Schroeder, June 27, 2001: https://github.com/InsightSoftwareConsortium/ITK/blob/699b66cb04d410e555656828e8892107add38ccb/Code/Common/itkMacro.h#L331-L337 --- .../MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h | 2 +- .../include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h index 87501ffe6dc..a1bbdf064ff 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h @@ -62,7 +62,7 @@ class AdditiveGaussianNoiseMeshFilter : public MeshToMeshFilter itkNewMacro(Self); /** Run-time type information (and related methods). */ - itkTypeMacro(AdditiveGaussianNoiseMeshFilter, MeshToMeshFilter); + itkOverrideGetNameOfClassMacro(AdditiveGaussianNoiseMeshFilter); /** Mean of noise. */ itkGetConstMacro(Mean, CoordRepType); diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h index 22936577841..a1dbc19bc53 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h @@ -56,7 +56,7 @@ class AdditiveGaussianNoiseQuadEdgeMeshFilter : public QuadEdgeMeshToQuadEdgeMes itkNewMacro(Self); /** Run-time type information (and related methods). */ - itkTypeMacro(AdditiveGaussianNoiseQuadEdgeMeshFilter, QuadEdgeMeshToQuadEdgeMeshFilter); + itkOverrideGetNameOfClassMacro(AdditiveGaussianNoiseQuadEdgeMeshFilter); /** Mean of noise. */ itkGetConstMacro(Mean, CoordRepType); From 865ed89d417f87ae41a0c86060777dc2bf83b4dd Mon Sep 17 00:00:00 2001 From: Hans Johnson Date: Sun, 26 Jan 2025 12:55:35 -0600 Subject: [PATCH 28/40] STYLE: CoordRepType -> CoordinateType code readability For the sake of code readability, a new 'CoordinateType' alias is added for each nested 'CoordRepType' alias. The old 'CoordRepType' aliases will still be available with ITK 6.0, but it is recommended to use 'CoordinateType' instead. The 'CoordRepType' aliases will be removed when 'ITK_FUTURE_LEGACY_REMOVE' is enabled. Similarly, 'InputCoordinateType', 'OutputCoordinateType', and 'ImagePointCoordinateType' replace 'InputCoordRepType', 'OutputCoordRepType', and 'ImagePointCoordRepType', respectively. --- .../include/itkAdditiveGaussianNoiseMeshFilter.h | 14 +++++++------- .../itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h | 14 +++++++------- .../itkAdditiveGaussianNoiseMeshFilterTest.cxx | 4 ++-- ...AdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx | 4 ++-- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h index a1bbdf064ff..6ced55d26ba 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h @@ -56,7 +56,7 @@ class AdditiveGaussianNoiseMeshFilter : public MeshToMeshFilter using OutputMeshPointer = typename OutputMeshType::Pointer; /** Type for representing coordinates. */ - using CoordRepType = typename TInput::CoordRepType; + using CoordinateType = typename TInput::CoordinateType; /** Method for creation through the object factory. */ itkNewMacro(Self); @@ -65,12 +65,12 @@ class AdditiveGaussianNoiseMeshFilter : public MeshToMeshFilter itkOverrideGetNameOfClassMacro(AdditiveGaussianNoiseMeshFilter); /** Mean of noise. */ - itkGetConstMacro(Mean, CoordRepType); - itkSetMacro(Mean, CoordRepType); + itkGetConstMacro(Mean, CoordinateType); + itkSetMacro(Mean, CoordinateType); /** Variance of noise. */ - itkGetConstMacro(Sigma, CoordRepType); - itkSetMacro(Sigma, CoordRepType); + itkGetConstMacro(Sigma, CoordinateType); + itkSetMacro(Sigma, CoordinateType); /** Initialization seed. */ itkGetConstMacro(Seed, int); @@ -87,8 +87,8 @@ class AdditiveGaussianNoiseMeshFilter : public MeshToMeshFilter void GenerateData() override; - CoordRepType m_Mean; - CoordRepType m_Sigma; + CoordinateType m_Mean; + CoordinateType m_Sigma; int m_Seed; }; diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h index a1dbc19bc53..362d51236e1 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h @@ -50,7 +50,7 @@ class AdditiveGaussianNoiseQuadEdgeMeshFilter : public QuadEdgeMeshToQuadEdgeMes using ConstPointer = SmartPointer; /** Type for representing coordinates. */ - using CoordRepType = typename TInputMesh::CoordRepType; + using CoordinateType = typename TInputMesh::CoordinateType; /** Method for creation through the object factory. */ itkNewMacro(Self); @@ -59,12 +59,12 @@ class AdditiveGaussianNoiseQuadEdgeMeshFilter : public QuadEdgeMeshToQuadEdgeMes itkOverrideGetNameOfClassMacro(AdditiveGaussianNoiseQuadEdgeMeshFilter); /** Mean of noise. */ - itkGetConstMacro(Mean, CoordRepType); - itkSetMacro(Mean, CoordRepType); + itkGetConstMacro(Mean, CoordinateType); + itkSetMacro(Mean, CoordinateType); /** Variance of noise. */ - itkGetConstMacro(Sigma, CoordRepType); - itkSetMacro(Sigma, CoordRepType); + itkGetConstMacro(Sigma, CoordinateType); + itkSetMacro(Sigma, CoordinateType); /** Initialization seed. */ itkGetConstMacro(Seed, int); @@ -81,8 +81,8 @@ class AdditiveGaussianNoiseQuadEdgeMeshFilter : public QuadEdgeMeshToQuadEdgeMes void GenerateData() override; - CoordRepType m_Mean; - CoordRepType m_Sigma; + CoordinateType m_Mean; + CoordinateType m_Sigma; int m_Seed; }; diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx index a15e559931c..5aa90f8d78c 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx @@ -43,8 +43,8 @@ itkAdditiveGaussianNoiseMeshFilterTest(int itkNotUsed(argc), char * itkNotUsed(a constexpr double SPHERE_SCALE = 10.0; constexpr int NOISE_SEED = 100; - const TMesh::CoordRepType NOISE_SIGMA = SPHERE_SCALE * 0.01; - constexpr TMesh::CoordRepType NOISE_MEAN = 1.0; + const TMesh::CoordinateType NOISE_SIGMA = SPHERE_SCALE * 0.01; + constexpr TMesh::CoordinateType NOISE_MEAN = 1.0; /////////// // Logic // diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx index b126e649a86..4ce37f2e1e8 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx @@ -43,8 +43,8 @@ itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest(int itkNotUsed(argc), char * itkN constexpr double SPHERE_SCALE = 10.0; constexpr int NOISE_SEED = 100; - const TMesh::CoordRepType NOISE_SIGMA = SPHERE_SCALE * 0.01; - constexpr TMesh::CoordRepType NOISE_MEAN = 1.0; + const TMesh::CoordinateType NOISE_SIGMA = SPHERE_SCALE * 0.01; + constexpr TMesh::CoordinateType NOISE_MEAN = 1.0; /////////// // Logic // From 6be0f650abe2a1270655d4b497b39ec0579cd416 Mon Sep 17 00:00:00 2001 From: Hans Johnson Date: Sun, 26 Jan 2025 13:03:26 -0600 Subject: [PATCH 29/40] COMP: Match scale setting from vector MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx:56:20: error: no viable conversion from 'const double' to 'VectorType' (aka 'Vector') 56 | sphere->SetScale(SPHERE_SCALE); | ^~~~~~~~~~~~ --- .../MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx | 4 ++-- .../test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx index 5aa90f8d78c..24b043d7b5d 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx @@ -42,7 +42,7 @@ itkAdditiveGaussianNoiseMeshFilterTest(int itkNotUsed(argc), char * itkNotUsed(a constexpr int SPHERE_RESOLUTION = 5; constexpr double SPHERE_SCALE = 10.0; - constexpr int NOISE_SEED = 100; + constexpr int NOISE_SEED = 100; const TMesh::CoordinateType NOISE_SIGMA = SPHERE_SCALE * 0.01; constexpr TMesh::CoordinateType NOISE_MEAN = 1.0; @@ -53,7 +53,7 @@ itkAdditiveGaussianNoiseMeshFilterTest(int itkNotUsed(argc), char * itkNotUsed(a TSphere::Pointer sphere = TSphere::New(); sphere->SetResolution(SPHERE_RESOLUTION); - sphere->SetScale(SPHERE_SCALE); + sphere->SetScale(TSphere::VectorType(SPHERE_SCALE)); TNoise::Pointer noise = TNoise::New(); diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx index 4ce37f2e1e8..8f39347daec 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx @@ -42,7 +42,7 @@ itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest(int itkNotUsed(argc), char * itkN constexpr int SPHERE_RESOLUTION = 5; constexpr double SPHERE_SCALE = 10.0; - constexpr int NOISE_SEED = 100; + constexpr int NOISE_SEED = 100; const TMesh::CoordinateType NOISE_SIGMA = SPHERE_SCALE * 0.01; constexpr TMesh::CoordinateType NOISE_MEAN = 1.0; @@ -53,7 +53,7 @@ itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest(int itkNotUsed(argc), char * itkN TSphere::Pointer sphere = TSphere::New(); sphere->SetResolution(SPHERE_RESOLUTION); - sphere->SetScale(SPHERE_SCALE); + sphere->SetScale(TSphere::VectorType(SPHERE_SCALE)); TNoise::Pointer noise = TNoise::New(); From d2993d5e835f6296f1132ab4b8f9484f928dc0e2 Mon Sep 17 00:00:00 2001 From: Hans Johnson Date: Mon, 27 Jan 2025 17:53:54 -0600 Subject: [PATCH 30/40] STYLE: Update to match clang-format-19 from ITK --- .../MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h | 2 +- .../include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h index 6ced55d26ba..7d56cd9149c 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseMeshFilter.h @@ -89,7 +89,7 @@ class AdditiveGaussianNoiseMeshFilter : public MeshToMeshFilter CoordinateType m_Mean; CoordinateType m_Sigma; - int m_Seed; + int m_Seed; }; } // namespace itk diff --git a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h index 362d51236e1..a106096b474 100644 --- a/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h +++ b/Modules/Filtering/MeshNoise/include/itkAdditiveGaussianNoiseQuadEdgeMeshFilter.h @@ -83,7 +83,7 @@ class AdditiveGaussianNoiseQuadEdgeMeshFilter : public QuadEdgeMeshToQuadEdgeMes CoordinateType m_Mean; CoordinateType m_Sigma; - int m_Seed; + int m_Seed; }; } // end namespace itk From dec0a298ae556eb2b036dd2cc911b45762d5397a Mon Sep 17 00:00:00 2001 From: Hans Johnson Date: Sun, 16 Mar 2025 12:41:34 -0500 Subject: [PATCH 31/40] ENH: Update to newer minimum cmake versions Match the ITK version minimum requirements for cmake. --- Modules/Filtering/MeshNoise/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Modules/Filtering/MeshNoise/CMakeLists.txt b/Modules/Filtering/MeshNoise/CMakeLists.txt index fe05b794d2f..ec16b03e08d 100644 --- a/Modules/Filtering/MeshNoise/CMakeLists.txt +++ b/Modules/Filtering/MeshNoise/CMakeLists.txt @@ -1,4 +1,5 @@ -cmake_minimum_required(VERSION 3.10.2) +cmake_minimum_required(VERSION 3.22.1...3.29.0 FATAL_ERROR) + project(MeshNoise) From 6a5cc6bc15a98f9139f2f0679528ff1faa453eaa Mon Sep 17 00:00:00 2001 From: Hans Johnson Date: Sun, 16 Mar 2025 13:05:16 -0500 Subject: [PATCH 32/40] ENH: Update minimum cmake version to 3.16.3 Match version for ITK v5.4.2 --- Modules/Filtering/MeshNoise/CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Modules/Filtering/MeshNoise/CMakeLists.txt b/Modules/Filtering/MeshNoise/CMakeLists.txt index ec16b03e08d..b2a28c59b18 100644 --- a/Modules/Filtering/MeshNoise/CMakeLists.txt +++ b/Modules/Filtering/MeshNoise/CMakeLists.txt @@ -1,5 +1,4 @@ -cmake_minimum_required(VERSION 3.22.1...3.29.0 FATAL_ERROR) - +cmake_minimum_required(VERSION 3.16.3) project(MeshNoise) From 5c4678a61eae92c92146e4958e57018eed99b7aa Mon Sep 17 00:00:00 2001 From: Bradley Lowekamp Date: Tue, 3 Feb 2026 19:21:39 +0000 Subject: [PATCH 33/40] ENH: Add EXCLUDE_FROM_DEFAULT to MeshNoise module This change excludes the MeshNoise module from the default ITK build, making it an optional module that must be explicitly enabled. --- Modules/Filtering/MeshNoise/itk-module.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/Modules/Filtering/MeshNoise/itk-module.cmake b/Modules/Filtering/MeshNoise/itk-module.cmake index 5926e243b76..4bd444bbd48 100644 --- a/Modules/Filtering/MeshNoise/itk-module.cmake +++ b/Modules/Filtering/MeshNoise/itk-module.cmake @@ -18,6 +18,7 @@ itk_module(MeshNoise ITKStatistics TEST_DEPENDS ITKTestKernel + EXCLUDE_FROM_DEFAULT DESCRIPTION "${DOCUMENTATION}" ) From 9e4b2ae6cf2c7e92b3edfcbb52e8ea8a8b25c208 Mon Sep 17 00:00:00 2001 From: "Hans J. Johnson" Date: Tue, 28 Apr 2026 11:57:46 -0500 Subject: [PATCH 34/40] COMP: Drop standalone-build boilerplate from MeshNoise Collapses the dual-mode CMakeLists.txt to a single itk_module_impl() call, matching every other in-tree Modules/// module and the FastBilateral / GenericLabelInterpolator / MGHIO / Montage / AnisotropicDiffusionLBR ingest pattern. --- Modules/Filtering/MeshNoise/CMakeLists.txt | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/Modules/Filtering/MeshNoise/CMakeLists.txt b/Modules/Filtering/MeshNoise/CMakeLists.txt index b2a28c59b18..9da2e833596 100644 --- a/Modules/Filtering/MeshNoise/CMakeLists.txt +++ b/Modules/Filtering/MeshNoise/CMakeLists.txt @@ -1,11 +1 @@ -cmake_minimum_required(VERSION 3.16.3) - -project(MeshNoise) - -if(NOT ITK_SOURCE_DIR) - find_package(ITK REQUIRED) - list(APPEND CMAKE_MODULE_PATH ${ITK_CMAKE_DIR}) - include(ITKModuleExternal) -else() - itk_module_impl() -endif() +itk_module_impl() From 0aeb200ce472749638d92f01866e6b6e3fa8d962 Mon Sep 17 00:00:00 2001 From: "Hans J. Johnson" Date: Tue, 28 Apr 2026 11:58:50 -0500 Subject: [PATCH 35/40] COMP: Drop missing README.rst read in ingested MeshNoise Inline the module DESCRIPTION as a literal string and add a Modules/Filtering/MeshNoise/README.md pointer to the archived upstream repository, matching the pattern used for FastBilateral, GenericLabelInterpolator, and MGHIO. --- Modules/Filtering/MeshNoise/README.md | 19 ++++++++++++++++ Modules/Filtering/MeshNoise/itk-module.cmake | 23 ++++++++------------ 2 files changed, 28 insertions(+), 14 deletions(-) create mode 100644 Modules/Filtering/MeshNoise/README.md diff --git a/Modules/Filtering/MeshNoise/README.md b/Modules/Filtering/MeshNoise/README.md new file mode 100644 index 00000000000..4811f5847f2 --- /dev/null +++ b/Modules/Filtering/MeshNoise/README.md @@ -0,0 +1,19 @@ +# MeshNoise + +In-tree ITK module providing additive-noise filters for `itk::Mesh` +and `itk::QuadEdgeMesh` point coordinates. The flagship class is +`itk::AdditiveGaussianNoiseMeshFilter`, which perturbs every mesh +point by an independent Gaussian-distributed offset with +configurable mean and standard deviation. Useful for testing +mesh-based registration, surface reconstruction, and shape-analysis +pipelines under controlled perturbation. + +## Origin + +Ingested from the standalone remote module +[**InsightSoftwareConsortium/ITKMeshNoise**](https://github.com/InsightSoftwareConsortium/ITKMeshNoise) +on 2026-04-28. The upstream repository will be archived read-only +after this PR merges; it remains reachable at the URL above. + +This ingest also resolves the long-open compile error reported in +[InsightSoftwareConsortium/ITK#5174](https://github.com/InsightSoftwareConsortium/ITK/issues/5174). diff --git a/Modules/Filtering/MeshNoise/itk-module.cmake b/Modules/Filtering/MeshNoise/itk-module.cmake index 4bd444bbd48..970dcd92a90 100644 --- a/Modules/Filtering/MeshNoise/itk-module.cmake +++ b/Modules/Filtering/MeshNoise/itk-module.cmake @@ -1,16 +1,12 @@ +set( + DOCUMENTATION + "Apply additive noise (Gaussian, Poisson, etc.) to ITK mesh point coordinates. +Useful for testing mesh-based registration and surface-reconstruction pipelines +with controlled perturbation." +) -# the top-level README is used for describing this module, just -# re-used it for documentation here -get_filename_component(MY_CURRENT_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) -file(READ "${MY_CURRENT_DIR}/README.rst" DOCUMENTATION) - -# itk_module() defines the module dependencies in MeshNoise -# The testing module in MeshNoise depends on ITKTestKernel -# By convention those modules outside of ITK are not prefixed with -# ITK. - -# define the dependencies of the include module and the tests -itk_module(MeshNoise +itk_module( + MeshNoise DEPENDS ITKCommon ITKMesh @@ -19,6 +15,5 @@ itk_module(MeshNoise TEST_DEPENDS ITKTestKernel EXCLUDE_FROM_DEFAULT - DESCRIPTION - "${DOCUMENTATION}" + DESCRIPTION "${DOCUMENTATION}" ) From fbbb93e7065c05c806fa78f62ac39784dc366a4e Mon Sep 17 00:00:00 2001 From: "Hans J. Johnson" Date: Tue, 28 Apr 2026 11:59:06 -0500 Subject: [PATCH 36/40] BUG: Fix MeshNoise test compile error (issue #5174) itk::Vector dropped its single-value implicit-conversion constructor; the test was calling TSphere::VectorType(SPHERE_SCALE) where SPHERE_SCALE is a double literal, which no longer compiles ("no viable conversion from 'const double' to 'VectorType'"). Use the canonical Filled() factory with an explicit float cast. Closes #5174. --- .../MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx | 2 +- .../test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx index 24b043d7b5d..17ea42600ce 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseMeshFilterTest.cxx @@ -53,7 +53,7 @@ itkAdditiveGaussianNoiseMeshFilterTest(int itkNotUsed(argc), char * itkNotUsed(a TSphere::Pointer sphere = TSphere::New(); sphere->SetResolution(SPHERE_RESOLUTION); - sphere->SetScale(TSphere::VectorType(SPHERE_SCALE)); + sphere->SetScale(TSphere::VectorType::Filled(static_cast(SPHERE_SCALE))); TNoise::Pointer noise = TNoise::New(); diff --git a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx index 8f39347daec..9622d094e83 100644 --- a/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx +++ b/Modules/Filtering/MeshNoise/test/itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx @@ -53,7 +53,7 @@ itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest(int itkNotUsed(argc), char * itkN TSphere::Pointer sphere = TSphere::New(); sphere->SetResolution(SPHERE_RESOLUTION); - sphere->SetScale(TSphere::VectorType(SPHERE_SCALE)); + sphere->SetScale(TSphere::VectorType::Filled(static_cast(SPHERE_SCALE))); TNoise::Pointer noise = TNoise::New(); From ef8f3ab560583add57fcbc974b3744e883f379f5 Mon Sep 17 00:00:00 2001 From: "Hans J. Johnson" Date: Tue, 28 Apr 2026 11:59:35 -0500 Subject: [PATCH 37/40] COMP: Remove MeshNoise.remote.cmake; now in-tree The module now lives at Modules/Filtering/MeshNoise/. The configure-time fetch declaration would otherwise clone the (soon-to-be-archived) upstream and double-define the module. --- Modules/Remote/MeshNoise.remote.cmake | 55 --------------------------- 1 file changed, 55 deletions(-) delete mode 100644 Modules/Remote/MeshNoise.remote.cmake diff --git a/Modules/Remote/MeshNoise.remote.cmake b/Modules/Remote/MeshNoise.remote.cmake deleted file mode 100644 index d9c2c2c6913..00000000000 --- a/Modules/Remote/MeshNoise.remote.cmake +++ /dev/null @@ -1,55 +0,0 @@ -#-- # Grading Level Criteria Report -#-- EVALUATION DATE: 2020-03-01 -#-- EVALUATORS: [<>,<>] -#-- -#-- ## Compliance level 5 star (AKA ITK main modules, or remote modules that could become core modules) -#-- - [ ] Widespread community dependance -#-- - [ ] Above 90% code coverage -#-- - [ ] CI dashboards and testing monitored rigorously -#-- - [ ] Key API features are exposed in wrapping interface -#-- - [ ] All requirements of Levels 4,3,2,1 -#-- -#-- ## Compliance Level 4 star (Very high-quality code, perhaps small community dependance) -#-- - [ ] Meets all ITK code style standards -#-- - [ ] No external requirements beyond those needed by ITK proper -#-- - [ ] Builds and passes tests on all supported platforms within 1 month of each core tagged release -#-- - [ ] Windows Shared Library Build with Visual Studio -#-- - [ ] Mac with clang compiller -#-- - [ ] Linux with gcc compiler -#-- - [ ] Active developer community dedicated to maintaining code-base -#-- - [ ] 75% code coverage demonstrated for testing suite -#-- - [ ] Continuous integration testing performed -#-- - [ ] All requirements of Levels 3,2,1 -#-- -#-- ## Compliance Level 3 star (Quality beta code) -#-- - [ ] API | executable interface is considered mostly stable and feature complete -#-- - [ ] 10% C0-code coverage demonstrated for testing suite -#-- - [ ] Some tests exist and pass on at least some platform -#-- - [X] All requirements of Levels 2,1 -#-- -#-- ## Compliance Level 2 star (Alpha code feature API development or niche community/execution environment dependance ) -#-- - [X] Compiles for at least 1 niche set of execution envirionments, and perhaps others -#-- (may depend on specific external tools like a java environment, or specific external libraries to work ) -#-- - [X] All requirements of Levels 1 -#-- -#-- ## Compliance Level 1 star (Pre-alpha features under development and code of unknown quality) -#-- - [X] Code complies on at least 1 platform -#-- -#-- ## Compliance Level 0 star ( Code/Feature of known poor-quality or deprecated status ) -#-- - [ ] Code reviewed and explicitly identified as not recommended for use -#-- -#-- ### Please document here any justification for the criteria above -# Code style enforced by clang-format on 2020-02-19, and clang-tidy modernizations completed - -# Contact: Davis Marc Vigneault -itk_fetch_module( - MeshNoise - "Perturb itk::Mesh and itk::QuadEdgeMesh coordinates with Gaussian noise. - Please see the following Insight Journal article for an introduction to this module: - Vigneault, DM. Perturbing Mesh Vertices with Additive Gaussian Noise. - https://doi.org/10.54294/evr01z - " - MODULE_COMPLIANCE_LEVEL 2 - GIT_REPOSITORY https://github.com/InsightSoftwareConsortium/ITKMeshNoise.git - GIT_TAG 1fc67753923c315d2503ca340834b78fac9370a9 - ) From be38f78319975d049860b4ce1ef007107ac8c723 Mon Sep 17 00:00:00 2001 From: "Hans J. Johnson" Date: Tue, 28 Apr 2026 12:00:40 -0500 Subject: [PATCH 38/40] ENH: Enable MeshNoise in CI via configure-ci Add -DModule_MeshNoise:BOOL=ON to the Pixi-Cxx configure-ci task so the in-tree module is exercised by the default CI matrix. --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 75c5d814973..0192403899b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,6 +55,7 @@ cmd = '''cmake -DModule_AnisotropicDiffusionLBR:BOOL=ON -DModule_Montage:BOOL=ON -DModule_GenericLabelInterpolator:BOOL=ON + -DModule_MeshNoise:BOOL=ON -DModule_MGHIO:BOOL=ON -DITK_COMPUTER_MEMORY_SIZE:STRING=11 -DModule_StructuralSimilarity:BOOL=ON''' From 5c37bfff31677196ce8a53610c2c08d73fa11650 Mon Sep 17 00:00:00 2001 From: "Hans J. Johnson" Date: Tue, 28 Apr 2026 12:33:29 -0500 Subject: [PATCH 39/40] STYLE: Apply gersemi to ingested MeshNoise CMake files Apply ITK's current gersemi configuration to the test/CMakeLists.txt and wrapping/CMakeLists.txt files inherited from upstream. The upstream module pre-dates ITK's gersemi adoption and was authored before this formatting pass existed; running it now lets the in-tree pre-commit gate pass cleanly. Mode A step 6 of the ingestion strategy (Utilities/Maintenance/RemoteModuleIngest/INGESTION_STRATEGY.md). --- .../Filtering/MeshNoise/test/CMakeLists.txt | 21 +++++++++++++------ .../MeshNoise/wrapping/CMakeLists.txt | 8 ++++--- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/Modules/Filtering/MeshNoise/test/CMakeLists.txt b/Modules/Filtering/MeshNoise/test/CMakeLists.txt index 1c45bb34909..0edc054285f 100755 --- a/Modules/Filtering/MeshNoise/test/CMakeLists.txt +++ b/Modules/Filtering/MeshNoise/test/CMakeLists.txt @@ -1,13 +1,22 @@ itk_module_test() -Set(${itk-module}Tests +set( + ${itk-module}Tests itkAdditiveGaussianNoiseMeshFilterTest.cxx itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest.cxx ) -CreateTestDriver(${itk-module} "${${itk-module}-Test_LIBRARIES}" "${${itk-module}Tests}") +createtestdriver(${itk-module} "${${itk-module}-Test_LIBRARIES}" "${${itk-module}Tests}") -itk_add_test(NAME itkAdditiveGaussianNoiseMeshFilterTest - COMMAND ${itk-module}TestDriver itkAdditiveGaussianNoiseMeshFilterTest ) -itk_add_test(NAME itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest - COMMAND ${itk-module}TestDriver itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest ) +itk_add_test( + NAME itkAdditiveGaussianNoiseMeshFilterTest + COMMAND + ${itk-module}TestDriver + itkAdditiveGaussianNoiseMeshFilterTest +) +itk_add_test( + NAME itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest + COMMAND + ${itk-module}TestDriver + itkAdditiveGaussianNoiseQuadEdgeMeshFilterTest +) diff --git a/Modules/Filtering/MeshNoise/wrapping/CMakeLists.txt b/Modules/Filtering/MeshNoise/wrapping/CMakeLists.txt index 9549003ec4f..b4fdc8685bb 100644 --- a/Modules/Filtering/MeshNoise/wrapping/CMakeLists.txt +++ b/Modules/Filtering/MeshNoise/wrapping/CMakeLists.txt @@ -1,8 +1,10 @@ itk_wrap_module(MeshNoise) -set(WRAPPER_SUBMODULE_ORDER - itkAdditiveGaussianNoiseMeshFilter - itkAdditiveGaussianNoiseQuadEdgeMeshFilter) +set( + WRAPPER_SUBMODULE_ORDER + itkAdditiveGaussianNoiseMeshFilter + itkAdditiveGaussianNoiseQuadEdgeMeshFilter +) itk_auto_load_submodules() itk_end_wrap_module() From dfb04eb47d80eacda9a319c89eaa25cb24bb4dfd Mon Sep 17 00:00:00 2001 From: "Hans J. Johnson" Date: Tue, 28 Apr 2026 18:24:36 -0500 Subject: [PATCH 40/40] COMP: Normalize exec bit on ingested test/CMakeLists.txt The upstream remote module shipped test/CMakeLists.txt with mode 100755. Normalize to 100644 in-tree; CMakeLists files are never executed directly and ghostflow flags exec bits on text files. --- Modules/Filtering/MeshNoise/test/CMakeLists.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 Modules/Filtering/MeshNoise/test/CMakeLists.txt diff --git a/Modules/Filtering/MeshNoise/test/CMakeLists.txt b/Modules/Filtering/MeshNoise/test/CMakeLists.txt old mode 100755 new mode 100644