-
Notifications
You must be signed in to change notification settings - Fork 128
COMP: Use ITK 5.1.0 strongly typed enums in elxTransformBase #245
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
COMP: Use ITK 5.1.0 strongly typed enums in elxTransformBase #245
Conversation
N-Dekker
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you, Matt. I'm sorry to say this pull request cannot be merged right now, as we we would still like to remain compatible with ITK 5.0.1 for now.
|
@thewtex Did you build ITK with |
|
@N-Dekker ok, this could wait until elastix requires ITK 5.1.0.
Yes, this is for the ITKElastix remote module / Python package, which requires the lastest and greatest ITK :-). |
@thewtex Thanks for explaining, Matt. Unfortunately we do not have enough resources for elastix to actively support two different versions of ITK. As I just discussed with Marius @mstaring and Stefan @stefanklein However, once ITK 5.1 (final) is officially released, we intend to quickly upgrade the develop branch of elastix from ITK 5.0.1 to ITK 5.1. Can you please give us an estimation of when ITK 5.1 is officially released? |
|
@N-Dekker makes sense. The Git tag for ITK |
|
@thewtex Could you possibly still amend your commit (and force-push) just to adjust the following line of code in Testing/CI/Azure/ci.yml to the latest ITK version tag? elastix/Testing/CI/Azure/ci.yml Line 2 in 56c2ebe
It would be great to see your pull request going from red to green 😃 |
|
@N-Dekker yes, done :-) 💚 |
56c2ebe to
0cc710e
Compare
|
Thanks for adjusting the ITK tag to v5.1.0 in the Elastix yml file, Matt! Unfortunately it appears that there are still some more compilation errors left now, at the Azure CI, including:
...
|
|
@N-Dekker do you possibly have time to follow-up on this? |
|
@thewtex I think I finally have some time today! Unfortunately your PR still fails on the CI. I'll have a look. Do you happen to have a fix for the remaining errors at the CI? Like this one:
|
|
@N-Dekker awesome, thanks!
This is now |
0cc710e to
e7d6ccf
Compare
|
@thewtex Sorry for letting you wait, I'm just back from vacation (heatwave)! Thank you very much for moving the commit from PR #247 to this one, PR #245. Are these two commits together sufficient for you to build elastix + ITK 5.1 + ITK_LEGACY_REMOVE? I just tried your PR branch (elxTransformBase-strongly-typed-enum), and I still get many compilation errors, like:
So it seems to me that there are still some errors to be fixed before this PR can be merged. Right? If so, do you still have time to make this PR ready? Or what is your suggestion? |
|
@thewtex I guess we see many more legacy-remove errors on the CI than the ones you already fixed, because the CI includes Elastix CMake options |
ITK's `TransformBaseTemplate::TransformCategoryType` was removed with commit InsightSoftwareConsortium/ITK@33daf94 "ENH: Consistent use of typed enums, naming", by Matt McCormick, Dec 6, 2019. It was then defined "legacy" with commit InsightSoftwareConsortium/ITK@0775d4a "COMP: expose TransformCategoryType under LEGACY", by Dženan Zukić, Jan 7, 2020. This commit aims to pave the way for `ITK_LEGACY_REMOVE`, as in pull request #245 by Matt McCormick.
e7d6ccf to
1c8e3ca
Compare
|
FYI, I just did a |
bc23908 to
4f3a089
Compare
Uses LoggerBaseEnums::TimeStampFormat, to address:
> elastix/Common/OpenCL/ITKimprovements/itkOpenCLLogger.cxx:114:15:
> error: no type named 'TimeStampFormatType' in 'itk::LoggerBase';
> did you mean 'TimeStampFormatEnum'?
Uses ITK 5.1.0 strongly typed enums in elxTransformBase, to address:
In file included from _deps/elastix_fetch-src/Core/ComponentBaseClasses/elxTransformBase.h:384:0,
from _deps/elastix_fetch-src/Core/Kernel/elxElastixTemplate.h:39,
from _deps/elastix_fetch-src/Core/Install/elxIncludes.h:39,
from _deps/elastix_fetch-src/Components/FixedImagePyramids/FixedRecursivePyramid/elxFixedRecursivePyramid.h:21,
from _deps/elastix_fetch-src/Components/FixedImagePyramids/FixedRecursivePyramid/elxFixedRecursivePyramid.cxx:19:
_deps/elastix_fetch-src/Core/ComponentBaseClasses/elxTransformBase.hxx: In member function ‘void itk::PixelTypeChangeCommand<T>::Execute(itk::Object*, const itk::EventObject&)’:
_deps/elastix_fetch-src/Core/ComponentBaseClasses/elxTransformBase.hxx:75:55: error: ‘VECTOR’ is not a member of ‘itk::ImageIOBase’
castcaller->GetModifiableImageIO()->SetPixelType( ImageIOBase::VECTOR );
^
_deps/elastix_fetch-src/Core/ComponentBaseClasses/elxTransformBase.hxx: In member function ‘void itk::PixelTypeChangeCommand<T>::Execute(const itk::Object*, const itk::EventObject&)’:
_deps/elastix_fetch-src/Core/ComponentBaseClasses/elxTransformBase.hxx:83:55: error: ‘VECTOR’ is not a member of ‘itk::ImageIOBase’
castcaller->GetModifiableImageIO()->SetPixelType( ImageIOBase::VECTOR );
Replaced legacy TransformCategoryType, fixed use of StopConditionType, to address (from VS2017):
[elastix-source]\Common\Transforms\itkAdvancedBSplineDeformableTransformBase.h(78,32): error C2039: 'TransformCategoryType': is not a member of 'itk::AdvancedTransform<double,2,2>'
At https://dev.azure.com/kaspermarstal/Elastix/_build/results?buildId=829&view=logs&j=34a65711-f108-577e-6707-abb292f048dd&t=b76e394f-4286-5ca5-0a60-2e5c8021c924&l=143
and:
> elxSimultaneousPerturbation.h(113): error C3646: 'StopConditionType': unknown override specifier
At https://dev.azure.com/kaspermarstal/Elastix/_build/results?buildId=875&view=logs&j=34a65711-f108-577e-6707-abb292f048dd&t=b76e394f-4286-5ca5-0a60-2e5c8021c924&l=397
4f3a089 to
5e0c541
Compare
|
@thewtex Hi Matt, I just combined your two commits and mine into a single commit, that I would like to merge to the develop branch. Can you please check if it's still OK to you? I would like to merge tomorrow morning 😃 |
|
Thank you very much for your contribution @thewtex I'll merge now, I hope it will allow you to get ITKElastix back in sync with SuperElastix/elastix 😃 |
To address:
In file included from _deps/elastix_fetch-src/Core/ComponentBaseClasses/elxTransformBase.h:384:0,
from _deps/elastix_fetch-src/Core/Kernel/elxElastixTemplate.h:39,
from _deps/elastix_fetch-src/Core/Install/elxIncludes.h:39,
from _deps/elastix_fetch-src/Components/FixedImagePyramids/FixedRecursivePyramid/elxFixedRecursivePyramid.h:21,
from _deps/elastix_fetch-src/Components/FixedImagePyramids/FixedRecursivePyramid/elxFixedRecursivePyramid.cxx:19:
_deps/elastix_fetch-src/Core/ComponentBaseClasses/elxTransformBase.hxx: In member function ‘void itk::PixelTypeChangeCommand::Execute(itk::Object*, const itk::EventObject&)’:
_deps/elastix_fetch-src/Core/ComponentBaseClasses/elxTransformBase.hxx:75:55: error: ‘VECTOR’ is not a member of ‘itk::ImageIOBase’
castcaller->GetModifiableImageIO()->SetPixelType( ImageIOBase::VECTOR );
^
_deps/elastix_fetch-src/Core/ComponentBaseClasses/elxTransformBase.hxx: In member function ‘void itk::PixelTypeChangeCommand::Execute(const itk::Object*, const itk::EventObject&)’:
_deps/elastix_fetch-src/Core/ComponentBaseClasses/elxTransformBase.hxx:83:55: error: ‘VECTOR’ is not a member of ‘itk::ImageIOBase’
castcaller->GetModifiableImageIO()->SetPixelType( ImageIOBase::VECTOR );