Opened 18 months ago

Closed 17 months ago

Last modified 13 months ago

#3002 closed user story (fixed)

Support VTK 8.2

Reported by: fcooper Owned by:
Priority: high Milestone: Future
Component: infrastructure Keywords: VTK 9.0
Cc: GaryM, jmpf@… Estimated pair-hours remaining: 0
Pair-hours expended on ticket: 8 Initial estimate of effort: 1
Editable by public: yes

Description

VTK 8.2 was released at the end of Jan

https://blog.kitware.com/vtk-8-2-0/

It doesn't look as thought it's likely to cause any problems, but there's a warning that VTK 9.0 will bring breaking changes...

https://blog.kitware.com/vtk-8-2-0/

Change History (9)

comment:1 Changed 18 months ago by fcooper

  • Cc jmpf@… added

Looks as though one test is failing:

TestMultiLobeAirwayGenerator

https://chaste.cs.ox.ac.uk/buildbot/builders/Portability%205_Fri/builds/213/steps/test/logs/stdio

No idea on this one...

Last edited 18 months ago by fcooper (previous) (diff)

comment:2 follow-up: Changed 18 months ago by jmpf@…

TestMultiLobeAirwayGenerator

There's a change to a piece of Vtk code which ray-traces to do Point Membership Classification. This means that some points which were deemed on the surface of a "lung lobe" are now outside and vice versa.

From what I read of the changes https://fossies.org/diffs/VTK/8.1.2_vs_8.2.0/Filters/Modeling/vtkSelectEnclosedPoints.cxx-diff.html the problem may only be caused because we have a special case where the object to test is an axis-aligned cuboid which is equivalent to its own bounding box.

comment:3 in reply to: ↑ 2 Changed 17 months ago by jmpf@…

Replying to jmpf@…:

There's a change to a piece of Vtk code which ray-traces to do Point Membership Classification. This means that some points which were deemed on the surface of a "lung lobe" are now outside and vice versa.

After digging around in the airway generator classes I have managed to abstract the core code which is leading to this test fail. Small failing test committed in changeset:c1b2029/git_repo

Todo:

  • See if other VTK version have differences in PMC.
  • Think about how best to deal with this.

comment:4 Changed 17 months ago by jmpf@…

  • Estimated pair-hours remaining changed from 1 to 0
  • Pair-hours expended on ticket changed from 0 to 8
  • Resolution set to fixed
  • Status changed from new to closed

changeset:5a732f5/git_repo shows that VTK's point-membership classification can be made a bit more reliable on the boundaries of objects if we make repeated attempts. Basically we ask several time "is point in mesh" and if it ever succeeds we say yes. If all attempts fail then the point is outside.

changeset:6aa4218/git_repo puts the repeated PMC test into the source code for airway generation. It also deprecates cube-shaped lobes in multilobe generation and instead uses spherical lobes. This is because from previous changeset (changeset:5a732f5/git_repo) it became obvious the VTK 8.2 is still noticeably different when we do PMC on the boundary of a cube.

changeset:db395ad/git_repo "fixes" the test. Even with PMC being reliable across all versions, there's still a difference in the generated trees. I put this down to the filter for duplicate points (which is used when merging the 3 lobe airway trees onto the parent tree) behaving differently, but we are all ready a long way down the rabbit-hole in trying to maintain this code...

comment:6 in reply to: ↑ 5 Changed 17 months ago by jmpf@…

Replying to GaryM:

Is this line supposed to be a doNotTest...()?

https://chaste.cs.ox.ac.uk/trac/browser/git_repo/lung/test/airway_generation/TestMultiLobeAirwayGenerator.hpp?rev=6aa4218228f30d0ceb25d93bbf5ce577b85d59ed#L204

Yes. "This is because from previous changeset (changeset:5a732f5/git_repo) it became obvious the VTK 8.2 is still noticeably different when we do PMC on the boundary of a cube."

comment:7 Changed 17 months ago by jmpf@…

Forgot to allow for the Chaste_USE_VTK=OFF build. See changeset:791bf11/git_repo

comment:8 Changed 13 months ago by GaryM

Is this in testing rotation? Or tested one off? It's still listed as future work on InstallGuides/DependencyVersions but we've closed ticket.

comment:9 Changed 13 months ago by fcooper

Note: See TracTickets for help on using tickets.