https://github.com/SuperElastix/elastix

sort by:
Revision Author Date Message Commit Date
c9cc5a4 COMP: Update itkGPUKernelClassMacro call Following: https://github.com/InsightSoftwareConsortium/ITK/commit/518349019984699b8d35a953bf4fc8a4324897fa 19 February 2021, 01:07:07 UTC
09fe2e9 COMP: Define CL_TARGET_OPENCL_VERSION For the official Khronos OpenCL headers: In file included from /home/matt/src/OpenCL-Headers/CL/cl_platform.h:20, from /home/matt/src/elastix/Common/OpenCL/ITKimprovements/itkOpenCL.h:27, from /home/matt/src/elastix/Common/OpenCL/ITKimprovements/itkOpenCLPlatform.h:21, from /home/matt/src/elastix/Common/OpenCL/ITKimprovements/itkOpenCLDevice.h:21, from /home/matt/src/elastix/Common/OpenCL/ITKimprovements/itkOpenCLProgram.h:21, from /home/matt/src/elastix/Common/OpenCL/ITKimprovements/itkOpenCLProgram.cxx:18: /home/matt/src/OpenCL-Headers/CL/cl_version.h:22:104: note: #pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 300 (OpenCL 3.0) 22 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 300 (OpenCL 3.0)") | ^ [42/464] Building CXX object Components/Metrics/AdvancedKappaStatistic/CMa...les/AdvancedKappaStatisticMetric.dir/elxAdvancedKappaStatisticMetric.cxx.o^C https://github.com/KhronosGroup/OpenCL-Headers (fetch) 18 February 2021, 22:28:03 UTC
b65034e CI: Build docker image and push to dockerhub (#415) 17 February 2021, 10:05:12 UTC
ab2e2e9 ENH: Move FillImageRegion to elxCoreMainGTestUtilities.h Aims to support both ITK 5.1 and ITK 5.2, by allowing `ImageRegionRange` to be either in `namespace itk` or in `namespace itk::Experimental`. 17 February 2021, 07:55:01 UTC
7677baf ENH: Add 4D float support (#418) 16 February 2021, 11:56:20 UTC
e0b7281 COMP: Fix GetJacobianOfSpatialHessian warnings on jsh_tmp buffer overrun Solved fifteen Visual C++ warnings from `RecursiveBSplineTransformImplementation::GetJacobianOfSpatialHessian`, which said: > warning C4789: buffer 'jsh_tmp' of size 32 bytes will be overrun; 8 bytes will be written starting at offset 64 Note that the buffer overrun would not occur in practice, as the size of `jsh_tmp` depends on `OutputDimension`, which was checked at runtime. But the compiler still issued those warnings. Which are fixed by this commit. 16 February 2021, 10:25:39 UTC
6fcd903 BUG: Replace dynamic_cast's TransformBase by GetAsCombinationTransform() Replaced 11 `dynamic_cast`'s from the implementation of `elx::TransformBase` by calls to `this->GetAsCombinationTransform()`, which is now pure `virtual`. Did override `TransformBase::GetAsCombinationTransform()` in all of its 17 derived transform classes. Aims to fix MacOS segfaults, mentioned by Matt McCormick, issue https://github.com/SuperElastix/elastix/issues/411, "elastix::TransformBase itk::Object casting". 16 February 2021, 10:24:33 UTC
f5b0e2a COMP: Fix OpenCLResampler ParameterMapType build error Addressed issue https://github.com/SuperElastix/elastix/issues/414 "OpenCLResampler build error: 'ParameterMapType does not name a type'", reported by 1989HD. 16 February 2021, 08:09:03 UTC
b74f6a2 STYLE: Pass parameter map "by reference" to CreateTransformParametersMap Replaced `ParameterMapType *` by `ParameterMapType &` as parameter type, to express that `CreateTransformParametersMap` does not support `nullptr` as argument. Follows C++ Core Guidelines section "Parameter passing expression rules" from https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#S-functions (August 3, 2020) 13 February 2021, 10:47:46 UTC
df2a3ce COMP: Fix template export macro in classes 12 February 2021, 17:56:44 UTC
9d971ef STYLE: Remove xout["WriteHeaders"] logic, simply call WriteHeaders() Dropped "WriteHeaders" as special case for `xout[name]`. Replaced "WriteHeaders" by a direct call to `xoutrow::WriteHeaders()`. Aims to just simplify the code. 09 February 2021, 13:34:10 UTC
ef55738 ENH: No longer add "iteration" as target to xl::xout Eases multi-threading support. 09 February 2021, 10:12:50 UTC
003070d STYLE: Do access IterationInfo via BaseComponentSE and ElastixBase Instead of doing the access via `xl::xout["iteration"]` (which uses a global data structure). 09 February 2021, 10:12:50 UTC
e20adb7 ENH: Ease access to IterationInfo from BaseComponentSE and ElastixBase Added six member functions: - ElastixBase::GetIterationInfo() - ElastixBase::GetIterationInfoAt(name) - ElastixBase::AddTargetCellToIterationInfo(name) - BaseComponentSE::RemoveTargetCellFromIterationInfo(name) - BaseComponentSE::GetIterationInfoAt(name) - BaseComponentSE::AddTargetCellToIterationInfo(name) 09 February 2021, 10:12:50 UTC
b67df96 STYLE: Pass by const-ref (Clang performance-unnecessary-value-param) Passed parameters that are expensive to copy by `const` reference, instead of "by value". Fixed using Clang-Tidy (LLVM 11.0) `performance-unnecessary-value-param`: https://clang.llvm.org/extra/clang-tidy/checks/performance-unnecessary-value-param.html 08 February 2021, 12:59:34 UTC
043e04c COMP: Fix template template parameters, by `template <typename> class` According to https://en.cppreference.com/w/cpp/language/template_parameters > Unlike type template parameter declaration, template template parameter declaration can only use the keyword class and not typename. (until C++17) Issue found by Clang-Tidy (LLVM 11.0.0) 08 February 2021, 12:59:34 UTC
ee6fd5a ENH: No longer add transformationParameterInfo to global `xout` object Passed the `transformationParameterInfo` directly as parameter to the `WriteToFile` member functions of Transform, Resampler, and ResampleInterpolator, instead of via `xout["transpar"]`. This commit aims to ease implementing multi-threading support. 08 February 2021, 09:04:58 UTC
020b184 STYLE: Add TransformBase::WriteDerivedTransformDataToFile() + overrides Made `TransformBase::WriteToFile(const ParametersType &)` non-virtual, and let it call `WriteDerivedTransformDataToFile()`. Replaced the two existing `WriteToFile` overrides by `WriteDerivedTransformDataToFile` overrides. Will make it easier to add an extra parameter to `TransformBase::WriteToFile`. 08 February 2021, 09:04:58 UTC
271c983 STYLE: Remove unused `TransformBase<TElastix>::WriteToFile()` overload It appears that `TransformBase::WriteToFile(void)` is not being used anywhere (whereas the other overload, `TransformBase::WriteToFile(const ParametersType &)`, is called by `ElastixTemplate::CreateTransformParameterFile`). While preparing to add an extra parameter to the other overload, it appears easiest to simply remove this one. 08 February 2021, 09:04:58 UTC
3700590 BUG: Use OutputPixelType for ReadParameter call to get DefaultPixelValue Removed unchecked (unsafe) cast from `double` to `OutputPixelType`, in `ResamplerBase::BeforeRegistrationBase`. 05 February 2021, 11:04:03 UTC
1d9f7a1 STYLE: Use "0" instead of "0.0" as DefaultParameterMap DefaultPixelValue The pixel type may not be a floating point. ("0" is also correctly supported for both floating point and integer types.) 05 February 2021, 11:04:03 UTC
3b5df81 BUG: Restore (signed/unsigned) char support of ReadParameter<T> Support for (signed/unsigned) char pixel types was removed by commit ea7a1f78a15d8a5a8cf73022e4dd5c145dba2729 "STYLE: Avoid conversions between (signed/unsigned) char and string" (2 February 2021) This commit restores support for those pixel types, as it still appears useful for the `DefaultPixelValue` parameter. It is now implemented by a new `StringCastToCharType<TChar>` member function, which is more "type safe" than the original (elastix 5.0.1) approach (as it does not have the original cast in `StringCast<T>` anymore). 05 February 2021, 11:04:03 UTC
17cf3f3 BUG: Restore (signed/unsigned) char support for pixel types When CMake variable `ELASTIX_IMAGE_2D_PIXELTYPES` of `ELASTIX_IMAGE_3D_PIXELTYPES` would have (signed/unsigned) char types, a `static_assert` would fail inside `Conversion::ToString`, saying: > elastix\Core\Install\elxConversion.h(102,36): error C2338: ToString does not support (signed/unsigned) char! > elastix\Core\ComponentBaseClasses\elxResamplerBase.hxx(715): message : see reference to function template instantiation 'std::string elastix::Conversion::ToString<char>(const TInteger)' being compiled When trying to compile `Conversion::ToString(this->GetAsITKBaseType()->GetDefaultPixelValue())`. Fixed by this commit, which removes the `static_assert` and extends the `Conversion.ToString` GTest unit test, to also test char types. 05 February 2021, 11:04:03 UTC
a06e232 BUG: ParameterMapInterface::StringCast workaround Clang denormal bug Implemented a workaround to ensure that ParameterMapInterface::ReadParameter may properly retrieve denormal floating point values, even while having that Clang denormal bug: LLVM Bug 39012, "ostream writes a double that istream can't read", reported by Daniel Cooke, 2018-09-20. https://bugs.llvm.org/show_bug.cgi?id=39012 05 February 2021, 11:04:03 UTC
cba9d81 STYLE: Declare parameterValue parameters as (const) reference Some `parameterValue` function parameters were accidentally declared as "by value", instead of "by (const) reference". Fixed by running Clang-Tidy (LLVM 11.0) `performance-unnecessary-value-param`: https://clang.llvm.org/extra/clang-tidy/checks/performance-unnecessary-value-param.html 05 February 2021, 11:04:03 UTC
b96cbab BUG: Work around Clang denorm_min Conversion round trip test failure Skipped the denorm_min round trip tests for Clang, as they appear to trigger an exception from `ParameterMapInterface::ReadParameter`. The exception appears to be caused (indirectly) by LLVM Bug 39012, "ostream writes a double that istream can't read", reported by Daniel Cooke, 2018-09-20. https://bugs.llvm.org/show_bug.cgi?id=39012 03 February 2021, 18:57:33 UTC
1f1d33d ENH: Support "Infinity", "-Infinity", and "NaN" values in parameter map 03 February 2021, 18:57:33 UTC
954d4c9 ENH: Add Conversion.LosslessRoundTripOfParameterValue GTest unit test 03 February 2021, 18:57:33 UTC
08fc58c STYLE: ParameterMapInterface con/destructor default, StringCast static Small style improvements of `ParameterMapInterface`implementation: - Declared the private `StringCast` member function `static` - Defined default-constructor and destructor "default" (C++11) - Initialized `m_PrintErrorMessages` inside the class definition (C++11) 03 February 2021, 18:57:33 UTC
ea7a1f7 STYLE: Avoid conversions between (signed/unsigned) char and string So far, it appears unnecessary to support 8-bits (signed or unsigned) `char` as type of a parameter values. Moreover, conversion between `char` and `std::string` appears rather tricky, as it may not always be obvious whether to use the character value or the integer value represented by the bits of a `char`. Simplified `ParameterMapInterface::StringCast` by removing the `char` specific `NumericTraits<T>::AccumulateType` workaround. 03 February 2021, 18:57:33 UTC
f5ebf6e ENH: use IO meta-packages 01 February 2021, 21:08:36 UTC
0890e5a ENH: Complete required ITK components in CMakeLists.txt 01 February 2021, 21:08:36 UTC
a3f1e88 ENH: specify required ITK components explicitly This avoids circular dependency when building ITKElastix as part of ITK 01 February 2021, 21:08:36 UTC
71e52b4 ENH: Add DeformationFieldFileName from two transforms to ParameterMap Adds "DeformationFieldFileName" to the parameter maps of both `DeformationFieldTransform` and `BSplineTransformWithDiffusion`. Reduced code duplication by adding a helper function, `TransformIO::MakeDeformationFieldFileName`. Adjusted GTest `CreateTransformParametersMap` unit tests by expecting the added parameter for those two transform types. 31 January 2021, 17:26:06 UTC
0318c61 STYLE: Remove floating point output format flags from xout["transpar"] Floating point values are no longer directly inserted into `xout["transpar"]`. Instead, conversion from float to string is now performed via `itk::NumberToString`. 31 January 2021, 08:23:09 UTC
ebaad19 ENH: Sync Resamplers, ResampleInterpolators WriteToFile w/ ParameterMap Follow-up to "Sync Transform WriteToFile with CreateTransformParametersMap" pull request https://github.com/SuperElastix/elastix/pull/385 commit af382ee4b598ac79fcbb7724bfad7bbcfe492fd6 Making use of the new `ParameterMapToString` function from pull request https://github.com/SuperElastix/elastix/pull/394 commit 1a317327ad1d5e890ad607db4fabe445aee7a313 Adjusted Resamplers and ResampleInterpolators CreateTransformParametersMap unit tests accordingly. 31 January 2021, 08:23:09 UTC
7745c27 ENH: Test Resampler, ResampleInterpolator CreateTransformParametersMap Added two GoogleTest unit tests: - Resampler.CreateTransformParametersMapForDefaultResampler - ResampleInterpolator.CreateTransformParametersMapForDefaultInterpolator Moved common code of Resampler, ResampleInterpolator, and Transform unit tests to "elxGTestUtilities.h" 30 January 2021, 20:36:24 UTC
8f2f71c COMP: Add `xl::` to `xout` macro call by OpenCLResampler::WriteToFile() This `xl::` was accidentally removed on 26 January 2021, by: "STYLE: Move static BaseComponent member functions to Conversion class" Pull request https://github.com/SuperElastix/elastix/pull/399 Commit 306d15616b5d9b58c4c3821fa50674471944e4f6 30 January 2021, 20:36:24 UTC
d0af976 STYLE: Remove template arguments charT, traits from xout classes It does not appear necessary to support template arguments (charT and traits) for the xout classes, as elastix always only uses 8-bits `char` as character type of output streams. Removing those template arguments significantly reduces compilation time (especially when adjusting the implementation of xout) and code complexity. Discussed at our internal SuperElastix/elastix slack channel. 28 January 2021, 21:12:21 UTC
306d156 STYLE: Move static BaseComponent member functions to Conversion class 27 January 2021, 15:09:28 UTC
5aa42e0 STYLE: Remove `using namespace xl` (which is no longer necessary) Entities from the xout library are (or should be) referred to with `xl::` prefix anyway. Did some code fixes, just to keep it compiling. 26 January 2021, 10:10:18 UTC
3fa9f04 STYLE: Consistently use the `xl` alias for the `xoutlibrary` namespace 26 January 2021, 10:10:18 UTC
3dd658b STYLE: For consistency, add `xl::` to all `xout` macro calls Before this commit, the majority of those macro calls already had `xl::` specified: " xout[" was encountered 241 times. " xl::xout[" was encountered 378 times. 26 January 2021, 10:10:18 UTC
8270aac STYLE: Remove `using namespace std` from global scope, in a header file Following "C++ Core Guidelines", August 3, 2020 "Don't write `using namespace` at global scope in a header file" https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rs-using-directive 26 January 2021, 10:10:18 UTC
aa32e1f STYLE: Make xoutbase abstract and add xoutmain type for xout singleton Made `xoutbase<char>` an abstract base class (as was already documented), by declaring its destructor pure (`= 0`) virtual, and its default-constructor `protected`. Derived an `xoutmain` class as the new type of the xout singleton. Aims to clarify the design of the xout library, by distinguishing clearly between base and leaf classes. See also Scott Meyers's book "More Effective C++", Item 33: "Make non-leaf classes abstract". 26 January 2021, 06:00:01 UTC
e2ec816 STYLE: No longer disable old MSVC "truncated name" warnings C4786, C4503 The Microsoft documentation page "Compiler Warning (level 1) C4503" (05/14/2018) at https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4503?view=msvc-160 says: > 'identifier' : decorated name length exceeded, name was truncated ... > This compiler warning is obsolete and is not generated in Visual Studio 2017 and later compilers. Warning C4786 is now listed with "Compiler warnings that are off by default" (05/14/2018) at https://docs.microsoft.com/en-us/cpp/preprocessor/compiler-warnings-that-are-off-by-default?view=msvc-160 > C4786 (level 3) 'symbol' : object name was truncated to 'number' characters in the debug information 24 January 2021, 12:15:44 UTC
efbf563 STYLE: Make xoutbase::SendToTargets `private` (instead of `protected`) 24 January 2021, 12:15:44 UTC
b1334de STYLE: xoutcell should not flush its m_InternalBuffer There is no need to flush `xoutcell::m_InternalBuffer`, which is an `std::ostringstream`. As explained by Cubbi (Sergey Zubkov), http://www.cplusplus.com/forum/general/84962 November 15, 2012: > flushing has no meaning for stringstream, as there is no external device that it sends data to Also removed an unnecessary `using namespace` directive and an unnecessary `std::string::c_str()` call. 24 January 2021, 12:15:44 UTC
f8e2e57 STYLE: xoutbase::SelectXCell(name) should only search for the cell once Replaced two searches for a key in the map (`map.count(key)` and `map[key]`) by one: `map.find(key)`. Might slightly improve the performance. 24 January 2021, 12:15:44 UTC
1a31732 ENH: Add BaseComponent::ParameterMapToString(map) + unit test Aims to improve performance and thread-safety of `TransformBase::WriteToFile`. Intended to be reused by `WriteToFile` member functions of other classes from "Core/ComponentBaseClasses". 23 January 2021, 09:51:27 UTC
37cab8f ENH: Add ElastixMain.GetComponentDatabaseAndCreatorInParallel unit test 21 January 2021, 16:44:49 UTC
e5b3658 ENH: Make ElastixMain database creation + loading components thread safe Ensures that only one thread may load the components into the ComponentDatabase, using using C++11 "magic statics". `ElastixMain::GetComponentDatabase()` now returns a "const reference" instead of a non-const pointer, to prevent one thread from modifying the database while another is reading from the database. Aims to fix issue https://github.com/SuperElastix/elastix/issues/174 "elastix 4.9 static libary version not thread safe" reported by jiangliMED, August 16, 2019 With help from Konstantinos Ntatsis 21 January 2021, 16:44:49 UTC
97d1718 STYLE: Remove UnloadComponents() from ElastixMain and ComponentLoader Removed the two `UnloadComponents()` member functions (from both `ElastixMain` and `ComponentLoader`), as they appear not useful anymore. Paves the way to making access to the ComponentDatabase thread-safe. 21 January 2021, 16:44:49 UTC
af382ee ENH: Sync Transform WriteToFile with CreateTransformParametersMap Adjusted `TransformBase::WriteToFile` by using the parameter map created by `CreateTransformParametersMap`. Removed 14 out of 16 `WriteToFile` overrides. Ensured that the transform parameter txt file is kept in sync with the corresponding the parameter map. Thereby also adjusted the floating point format for values written to file, as discussed at issue #383, "Reconsider string representation of floating points for parameter files and parameter maps", https://github.com/SuperElastix/elastix/issues/383 Addresses issue #217 'the "Origin" precision in TransformParameters is not high enough', reported by GouZi2019, January 5, 2020: https://github.com/SuperElastix/elastix/issues/217 14 January 2021, 22:04:26 UTC
e8a1751 ENH: Add IsNumber(const std::string &) to BaseComponent Added a utility function, which is intended to estimate whether a transform parameter value should be "double quoted", when elastix `Transform::WriteToFile` writes such a value to a TransformParameters .txt file. (A numeric parameter value should not be double quoted.) 14 January 2021, 22:04:26 UTC
e1f5dae ENH: Implemented ToString(double) by itk::NumberToString (issue #383) Synchronized the string representation of double floating point values of transform parameter maps (produced by elastix `CreateTransformParametersMap`) with ITK's .tfm file format (as written by `itk::TransformFileWriter`). Increased the floating point precision from 6 to 16. ITK's `itk::NumberToString` uses a lossless floating point conversion from the Google double-conversion library, https://github.com/google/double-conversion Part of issue #383 "Reconsider string representation of floating points for parameter files and parameter maps" 14 January 2021, 22:04:26 UTC
57dcf37 ENH: Add MultiBSplineTransformWithNormalLabels to parameter map Added "MultiBSplineTransformWithNormalLabels" to the transform parameter map of `MultiBSplineTransformWithNormal`, addressing a "TODO" comment. Anticipating pull request https://github.com/SuperElastix/elastix/pull/385 "Sync Transform WriteToFile with CreateTransformParametersMap". Also improved the `Test_CreateTransformParametersMap_for_default_transform()` unit test function for `MultiBSplineTransformWithNormal`. Note that this change is not yet completely unit tested, because `MultiBSplineTransformWithNormal::BeforeAll()` throws an exception, saying "ERROR: Missing -labels argument!". 14 January 2021, 16:47:52 UTC
31af828 CI:ClangFormat_output 14 January 2021, 09:54:54 UTC
9b37f88 STYLE:Add_Git_pre_commit_hook 14 January 2021, 09:54:54 UTC
ae9c0fd ENH: Add SubTransforms to WeightedCombinationTransform parameter map Anticipating pull request https://github.com/SuperElastix/elastix/pull/385 "Sync Transform WriteToFile with CreateTransformParametersMap". 13 January 2021, 19:36:07 UTC
e2d2970 ENH: DeformationFieldFileName when "TransformParameters." is not found When the current transform parameter filename would not have "TransformParameters." as a substring, the creation of the "lastpart" of a `DeformationFieldFileName` would go wrong (typically causing an `std::out_of_range` exception). However, it still appears useful to make a `DeformationFieldFileName` in that case. Especially when trying to write a default-constructed transform, for test purposes. This commit makes the "lastpart" empty, in that case. Discussed with Marius at the weekly internal elastix sprint. 13 January 2021, 18:04:37 UTC
91204bc STYLE: Rerun clang-format after pull request #363 Reran: find . -regex '.*\.\(hxx\|h\|cxx\)' -exec '/c/Program Files/LLVM/8.0.1-ITK/clang-format.exe' -style=file -i {} \; After merge of pull request #363 from ntatsisk/automaticScalesEstimationStackTransform, commit b6467ba7d6648d343582d57d55b8eec317ebea75 by Stefan Klein, 11 January 2021. 13 January 2021, 08:22:40 UTC
b6467ba Merge pull request #363 from ntatsisk/automaticScalesEstimationStackTransform ENH: Fix Interface discrepancy with parameter AutomaticScalesEstimationStackTransform (issue #260) 11 January 2021, 11:14:17 UTC
8582478 STYLE: Clean up code TransformBase ReadInitialTransform implementation Used `nullptr` when checking or initializing a pointer. Removed some unnecessary local variable. Declared other local variables `const`, according to Scott Meyers, Effective C++, "Use const whenever possible". Followed the Clang-Tidy recommendation to use `auto`, "when a variable is declared and initialized with a cast": https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-auto.html 10 January 2021, 09:54:39 UTC
fa6397b STYLE: Share code between TransformBase::ReadInitialTransform functions Shared duplicate code between `TransformBase<TElastix>` member functions `ReadInitialTransformFromVector` and `ReadInitialTransformFromFile`, by introducing a private helper member function, `ReadInitialTransformFromConfiguration`. 10 January 2021, 09:54:39 UTC
b60640f BUG: Add missing parameters to transform parameter maps of 11 transforms Added `CreateDerivedTransformParametersMap` overrides, which add missing parameters to: - AffineDTITransformElastix - AffineLogStackTransform - AffineLogTransformElastix - BSplineTransformWithDiffusion - DeformationFieldTransform - EulerStackTransform - MultiBSplineTransformWithNormal - SimilarityTransformElastix - SplineKernelTransform - TranslationStackTransform - WeightedCombinationTransformElastix Addresses the following issues: ITKElastix issue 93: "2D similarity transform parameter map doesn't keep "CenterOfRotationPoint" parameter", by Heath Patterson, 16 December, 2020. https://github.com/InsightSoftwareConsortium/ITKElastix/issues/93 SuperElastix/elastix issue 366: "AffineDTITransform does not return the CenterOfRotationPoint", by dyliu2016, 27 November, 2020 https://github.com/SuperElastix/elastix/issues/366 Declared `TransformBase::CreateDerivedTransformParametersMap()` pure virtual (`= 0`). Added an empty override to `TranslationTransformElastix`, just to keep allowing the transform to be instantiated. Extended `CreateTransformParametersMapForDefaultTransform` GoogleTest unit test. Note: Some of the overrides may still be incomplete, as indicated by comments, saying "TODO If necessary, add possibly missing parameters". 05 January 2021, 19:35:09 UTC
752938c ENH: Add ConcatenateVectors(vector1, vector2) function to BaseComponent 05 January 2021, 19:35:09 UTC
0caf5c2 STYLE: Make CreateTransformParametersMap non-virtual (small redesign) Made `TransformBase::CreateTransformParametersMap` non-virtual. Added transform type specific parameters by overriding the added virtual `CreateDerivedTransformParametersMap` member function, which is called by `CreateTransformParametersMap`. Reduced the amount of code duplication, by using the new `BaseComponent::ToVectorOfStrings` and `BaseComponent::ToVectorOfStrings` convenience functions. Replaced `std::map::insert` calls by `std::map::operator[]` and C++11 list initialization (using curly braces). 05 January 2021, 19:35:09 UTC
0350515 ENH: BaseComponent GetNumberOfElements, ToString, and ToVectorOfStrings Added three overload sets of static member functions to `BaseComponent`: size_t GetNumberOfElements(container) string ToString(value) vector<string> ToVectorOfStrings(container) Including four GoogleTest unit tests. 05 January 2021, 19:35:09 UTC
5811583 'CI:Logs_ctest_to_cdash' 05 January 2021, 16:24:05 UTC
e8c161b BUG: Transform UseAddition should affect CreateTransformParametersMap After calling `elxTransform.SetUseAddition(true)`, a call to `CreateTransformParametersMap` should yield a map with parameterMap["HowToCombineTransforms"] returning "Add", and not "Compose". Just like `TransformBase::WriteToFile` writes "(HowToCombineTransforms Add)", in that case. This commit aims to fix this bug, and includes a GoogleTest unit test. Discussed with Marius at our internal weekly elastix sprint. 05 January 2021, 09:40:00 UTC
bff2250 ENH: Add two CreateTransformParametersMap GoogleTest unit tests Checks the content of parameter map of a "default" transform object. Checks the floating point precision of the string representation of a `double` value. The precision is currently 6 digits. 30 December 2020, 15:22:36 UTC
98aaaf7 ENH: Use ITK v5.1.2. 22 December 2020, 13:59:37 UTC
3acd58e STYLE: Remove MetricWithFeatures member m_FeatureInterpolatorsAreBSpline `ImageToImageMetricWithFeatures::m_FeatureInterpolatorsAreBSpline` was unused, and it was not useful as it was always only set to `true` (not to `false`). 21 December 2020, 14:07:16 UTC
8dee7b8 STYLE: Remove bitwise AND assignment `b &= true` (which have no effect) For a `bool` variable `b`, the statement `b &= true` has no effect at all. 21 December 2020, 14:07:16 UTC
b21d0c4 STYLE: Replace bitwise AND assignment `b &= false` by copy-assignment For a `bool` variable `b`, the following two statements are equivalent: b &= false; b = false; Replaced the first form by the second, which appears easier to read. 21 December 2020, 14:07:16 UTC
7cf45f1 STYLE: Fix clang-format errors #358 (TransformOutputFileNameExtensions) Did rerun clang-format as follows: find . -regex '.*\.\(hxx\|h\|cxx\)' -exec /c/Users/Niels_Dekker/AppData/Roaming/ClangPowerTools/LLVM/LLVM8.0.1/bin/clang-format.exe -style=file -i {} \; Formatting errors were introduced by merging pull request #358 ("ENH: Add parameter file support for TransformOutputFileNameExtensions") 20 December 2020, 22:39:59 UTC
b8cf9dd ENH: Add parameter file support for TransformOutputFileNameExtensions Allows specifying output file types for transform files by their file name extension, for example: (TransformOutputFileNameExtensions ".h5" ".mat" ".tfm") Experimental feature, under construction. 20 December 2020, 22:09:40 UTC
8d08cfa ENH: Configuration GetValuesOfParameter, ParameterMapInterface GetValues Added `Configuration::GetValuesOfParameter(parameterName)` and `ParameterMapInterface::GetValues(parameterName)`. Both return a vector of the values of the specified parameter. 20 December 2020, 22:09:40 UTC
8ac0413 STYLE: add clang format check 15 December 2020, 19:36:35 UTC
84723c5 STYLE: Revert workaround GCC4 error xoutManager "use of deleted func..." This reverts commit c106327239f2d2a0ef6962f00f86f8ae41e8781f "COMP: Avoid GCC4 error xoutManager "use of deleted function", issue #331" Matt McCormick informed us that GCC 4 no longer needs to be supported, as ITKElastix is upgraded to manylinux2014, which allows using GCC 9 instead. 11 December 2020, 16:05:12 UTC
94942b9 Merge pull request #371 from SuperElastix/Rerun-clang-format STYLE: Run clang-format again 11 December 2020, 09:39:28 UTC
7040f38 'STYLE:Removing_unnecessary_symbols_clang_format' 10 December 2020, 15:35:16 UTC
3871d2d STYLE: Run clang-format again Did rerun clang format as follows: find . -regex '.*\.\(hxx\|h\|cxx\)' -exec /c/Users/Niels_Dekker/AppData/Roaming/ClangPowerTools/LLVM/LLVM8.0.1/bin/clang-format.exe -style=file -i {} \; 10 December 2020, 13:57:24 UTC
a68fb59 COMP: Remove itk::InvalidImageMomentsError from Calculator hxx file The class `itk::InvalidImageMomentsError` appears unused, while it has been defined twice: - https://github.com/InsightSoftwareConsortium/ITK/blob/v5.1.1/Modules/Filtering/ImageStatistics/include/itkImageMomentsCalculator.hxx#L28 - https://github.com/SuperElastix/elastix/blob/5.0.1/Common/Transforms/itkAdvancedImageMomentsCalculator.hxx#L29 Which caused compilation errors like: > ITK511\Modules\Filtering\ImageStatistics\include\itkImageMomentsCalculator.hxx(28,32): error C2011: 'itk::InvalidImageMomentsError': 'class' type redefinition > elx\elastix\Common\Transforms\itkAdvancedImageMomentsCalculator.hxx(29): message : see declaration of 'itk::InvalidImageMomentsError' When doing: #include "AdvancedAffineTransform/elxAdvancedAffineTransform.h" #include "EulerTransform/elxEulerTransform.h" Note that hxx files are meant for implementation only. A class defined within an hxx file should not be not be part of the interface (API), otherwise it should be defined in the h file instead. 04 December 2020, 12:03:28 UTC
b87674d COMP: cmake-build-type to Release 30 November 2020, 13:30:45 UTC
7104a37 DOC: Update copyright notices regarding ITK and ANN Updated notices according to: - https://github.com/InsightSoftwareConsortium/ITK/blob/v5.1.1/NOTICE - https://github.com/SuperElastix/elastix/blob/5.0.1/Components/Metrics/KNNGraphAlphaMutualInformation/KNN/ann_1.1/Copyright.txt - https://github.com/SuperElastix/elastix/blob/5.0.1/Components/Metrics/KNNGraphAlphaMutualInformation/KNN/ann_1.1/License.txt 30 November 2020, 12:35:06 UTC
a133a51 STYLE: Remove space between class and member names in C++ source files It appears that clang-format has in some cases introduced a space character between `ClassName` and `::MemberName`. This typically seems to have happened when there originally was a line break between the class name and the member name. This commit fixes the formatting by removing those spaces, as follows: find . \( -iname *.cxx \) -exec perl -pi -w -e 's/([A-Z][a-z]+) \:\:([A-Z][a-z])/$1::$2/g;' {} \; Follows ITK: - pull request https://github.com/InsightSoftwareConsortium/ITK/pull/2096 - commit: https://github.com/InsightSoftwareConsortium/ITK/commit/734d6f84d728b343baae5ef66643a5568a5a30c7 30 November 2020, 11:46:25 UTC
43fa10b Merge pull request #364 from SuperElastix/Rename-GitHubActions STYLE: Rename GitHub Actions yml file and change GitHub Actions name 26 November 2020, 16:23:52 UTC
919be71 Update README.md 25 November 2020, 13:33:58 UTC
38065e5 STYLE: Rename GitHub Actions yml file and change GitHub Actions name 24 November 2020, 14:31:30 UTC
1b28f34 Merge pull request #362 from ViktorvdValk/develop Github Actions to replace Azure Pipelines 24 November 2020, 11:56:22 UTC
b345e9c GitHub Actions .yml file 24 November 2020, 09:49:42 UTC
e86cd54 ENH: Change AutomaticScalesEstimationStatckTransform parameter to AutomaticScalesEstimation 23 November 2020, 15:28:21 UTC
4b3ca0b STYLE: Make protected AdvancedCombinationTransform data members private It appears that the 13 data members that are made `private` with this commit are not accessed directly by any derived class, so they do not need to be `protected` anymore. Following C++ Core Guidelines (August 3, 2020), "C.133: Avoid protected data", https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rh-protected 18 November 2020, 10:36:24 UTC
d24a6ad STYLE: Make 11 AdvancedCombinationTransform member functions non-virtual The `virtual` keyword should only be used for member functions that are meant to be overridden in a derived class. See also C++ Core Guidelines (August 3, 2020), "C.132: Don't make a function virtual without reason", https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rh-virtual 18 November 2020, 10:36:24 UTC
a57bacd ENH: Add BoolToString to BaseComponent and use it in TransformBase 13 November 2020, 13:07:58 UTC
e2617a8 STYLE: Remove FixedImage types TransformBase, use `const auto` instead Removed some redundant local typedefs of `FixedImageType` types, and increased const-correctness by using `const auto` instead of those typedefs. 13 November 2020, 13:07:58 UTC
a46a8d0 STYLE: Replace xout["transpar"] calls in TransformBase by local variable It appears sufficient to just call `get_xout()["transpar"]` once, in `TransformBase::WriteToFile`, and then refer to the output by a local variable (`transparOutput`). 13 November 2020, 13:07:58 UTC
d2eba73 STYLE: Simplify construction of file streams in TransformBase For binary file streams, just pass `std::ios_base::binary`, as it is not necessary to specify `in` or `out`. Directly pass the file name as `std::string`, no need to call `std::string::c_str()` anymore, with C++11. 13 November 2020, 13:07:58 UTC
back to top