davideberly / GeometricTools

A collection of source code for computing in the fields of mathematics, geometry, graphics, image analysis and physics.
Boost Software License 1.0
1.14k stars 214 forks source link

MinimumVolumeBox3 is broken. #9

Closed davideberly closed 3 years ago

davideberly commented 3 years ago

The minimum-volume box sample application shows that MinimumVolumeBox3 is broken. The MVB3 code was modified late last year and unit tested, but I need to investigate.

davideberly commented 3 years ago

The sample MinimumVolumeBox3D was broken in that the displayed box no longer contained the convex polyhedron. I traced this back to GTE 5.4 where I replaced the std::set and std::map objects by std::unordered_set and std::unordered_map objects. For a reason that I am unable to understand, the sample runs correctly when using std::map for VETManifoldMesh::VMap, but it does not run correctly when using std::unordered_map for VETManifoldMesh::VMap. The key type in either case is the native type int32_t}. For now, I restored VMap to use std::map. (The different behavior occurs whether running on MS Windows or Linux.)