|
From: <HBB...@t-...> - 2007-10-28 21:09:29
|
Ethan A Merritt wrote: > On Saturday 27 October 2007 13:07, Hans-Bernhard Bröker wrote: >> The problem itself is an internal constraint violation in the hidden3d >> algorithm. Something broke the code designed to ensure that >> out-of-range data points don't make it to that point of the algorithm. > 2005-12-06 Hans-Bernhard Broeker <br...@ph...> > > * src/hidden3d.c (COORD_TO_TREECELL, COORD_TO_BITMASK): Avoid > overflow by undoing effect of surface_scale before mapping to > integers. > (store_polygon): Add assert()s to internal macros GET_MIN, > GET_MAX, to catch problems not handled by above changes. The overflows that this was designed to avoid would be those wrap-arounds mentioned elsewhere in this thread. Ultimately, the 'undefined <n>' option to hidden3d may have become unviable due to this change. At level 3 it is already documented as "use at your own risk". The simplest option would be to extend that warning to all settings other than the default of 1.0. > So it's your change. Do you want to have a look at it? I'll try to find some time to do that. > So I there are two separate issues here: > > 1) We changed the default 4.2 configuration to --enable-h3d-quadtree But only for ./configure builds. The config/makefile.* and config/config.* files weren't all updated. > 2) The non-quadtree version was subsequently broken by the patch from 1.53 -> 1.54 IIRC, the quadtree variant does its own implicit limit testing elsewhere, so it doesn't really need those assert()s. |