Zoom goes negative on an aggressive scroll-wheel - please note that I repro this on a Microsoft intelli-mouse, with the "chunky" mouse wheel, not some fancy Apple mouse with really fine-grained 2-d scrolling!
The negative-zoom on scroll-wheel bug is due to these two lines of code in the scroll wheel handler (LDrawGLView.m:1957 roughly)
CGFloat magnification = [theEvent deltaY] / 20; // 1 = increase 100%; -1 = decrease 100%
CGFloat zoomChange = 1.0 + magnification;
If the single-scroll delta is <= -20, the zoom change fraction can be <= 0 and we get hosed.
I think correct handling would be to convert magnification from a linear distance to a ratio via a logarithm function.
Anyway, if you have strong feelings about how zoom should 'feel', you should probably poke at this yourself. Or punt it back to me and I can "fix" it. :-)
I changed the magnification function to prevent it from generating negative numbers. The old LDraw renderer code guarded against this bug by disallowing zoom percentages less than 1%. That guard got lost in LDrawCamera, and I would like to have it back if that's possible.
fixed with SVN r648. Tested with mouse, pinch zoom and zoom-out tool in both walk-through and 3-d perspectives.
Last edit: Ben Supnik 2014-02-19