Model point count changing after transformation

It sounds like dependency walker is a red herring.

I agree with @lassoan first step would be to explore fixing the module.

Then we could explore these platform / environment specific issues if they haven’t gone away.

@jcfr is any of the extension developers are on this forum?

It is a trivial change (just skip the cleaning step if corresponding points are used). If you test it locally and send a pull request then we can get it merged quickly. Both @jcfr and @Sam_Horvath seem to have commit rights to the extension.

1 Like

When it does run on Linux and Mac, the output point number is equal to the reduced point number generated by vtkCleanPolyData, not the input mesh, so I suspect it may not actually be generating the point-to-point results.

It is a trivial change (just skip the cleaning step if corresponding points are used).

See ModelToModelDistance: Skip cleaning if corresponding_point_to_point mode is set by jcfr · Pull Request #12 · NIRALUser/3DMetricTools · GitHub

@smrolfe Let me know if that addresses the issue.

Thanks @jcfr it looks like this should fix the issue. I just tried to build the extension to test, but am having a problem with the ITK/VTK builds, which are failing with errors:

2>Performing download step (git clone) for ‘VTK’
2>Cloning into ‘VTK’…
3>Performing download step (git clone) for ‘ITKv4’
3>Cloning into ‘ITKv4’…
3>fatal: repository ‘http://itk.org/ITK.git/’ not found
2>fatal: repository ‘VTK / VTK · GitLab’ not found

This looks like errors I’ve gotten when building Slicer behind our firewall with USE_GIT_PROTOCOL enabled, but I’ve checked that it’s disabled for this extension build.

We can build other extensions, but this seems to fail for us. Can anyone else have this issue?
@lassoan @jcfr @pieper

Since we focus our effort on building the extension against Slicer and not into supporting building the project as a standalone project, I suggest you configure the extension directly passing Slicer_DIR.

After removing the content of the build directory, there are two ways:

  • start cmake-gui, add an entry called Slicer_DIR pointing to the C:/path/to/Slicer-Release/Slicer-build
  • directly from the command-line with cmake -DSlicer_DIR:PATH=C:/path/to/Slicer-Release/Slicer-build -S C:/path/to/3DMetricTools -B C:/path/to/3DMetricTools-Release

If using a single config generator (e.g Unix Makefiles), specify CMAKE_BUILD_TYPE to Release.

Background

Setting reasonable default during the first configuration is the approach we have been using for most extension intended to be build as either a Slicer extension or an independent

This is explained by the following logic:

Thanks @jcfr I’m using the instructions in the extensions documentation which includes adding the Slicer_DIR variable, so this has not resolved the git-related error. Is there anything else that might cause this? I did not get this error when I built Slicer.

I also got the following error on configuring:

CMake Error at C:/Program Files/CMake/share/cmake-3.23/Modules/FindQt4.cmake:1314 (message):
Found unsuitable Qt version “5.9.7” from
C:/Users/srolfe/Anaconda3/Library/bin/qmake.exe, this code requires Qt 4.x
Call Stack (most recent call first):
Common.cmake:28 (find_package)
SuperBuild.cmake:12 (include)
CMakeLists.txt:53 (include)

which I resolved this by getting QT 4.8 and setting the QT_QMAKE_EXECUTABLE. This took care of the error, but I’m wondering if this issue is expected or if using the requested version of Qt might be causing a problem?

To move forward:

  • Make sure you download the source from NIRALUser/3DMetricTools and not from juliettepera/3DMetricTools. See [1]
  • Clear build directory
  • Attempt to configure setting Slicer_DIR first

[1]: To avoid confusion, we have been trying to reach out to the owner of the “root” fork without success. See Re-fork repositories to avoid confusion · Issue #10 · NIRALUser/3DMetricTools · GitHub

I rebuilt from NIRALUser/3DMetricTools, set Slicer_DIR and Qt5_DIR before configuring, and its now building correctly.

@jcfr I tested the fix in ModelToModelDistance: Skip cleaning if corresponding_point_to_point mode is set by jcfr · Pull Request #12 · NIRALUser/3DMetricTools · GitHub and it resolves the issue with the point count changing.

2 Likes

Thanks for testing, changes have been integrated in NIRALUser/3DMetricTools and fixed extension ModelToModelDistance is expected to be published tomorrow for Slicer 5.2 and Preview.

@smrolfe If you need the updated extension to be published before that, let me know and I can manually take care of it.

1 Like

Thanks @jcfr! Tomorrow works for me.