HyperCuber 2.0 by Greg Ferrar HyperCuber is a program which displays and rotates higher-dimensional objects (like four-dimensional "hypercubes"). It requires a 68020 processor or better, a math coprocessor, and System 7 or better. Complete documentation for the program is contained in the HyperCuber Manual file, which is a stand-alone document created with DocMaker. Comments, suggestions, and error reports to Greg Ferrar by email at gregt@math.ohio-state.edu or by snail mail at Greg Ferrar 2300 N High Street Columbus OH 43202-2902 Enjoy! ================================ To Do List ============================== Here are some plans for the future. I don't promise that any of them will ever get done, but if you think of something that should be on here that isn't, or see something here that should not be, let me know! ¥ Solid polygon modelling (as opposed to wire frame). If I do this, I will probably try to make it work arbitrary dimensions (i.e. hidden solid removal in 4-space), so this isn't an easy one. ¥ Eliminate floating point math ¥ Command to change window to standard screen sizes (useful for making startup screens) ¥ "predefined" rotations; user would set parameters of rotation (bounds, increment) and HyperCuber would rotating the object continuously. ¥ Other options for creating object (perhaps create new object based on mathematical functions). ================================ Version History ============================== Version 2.0 (released May 3, 1994) ----------- ¥ Changed manual format from Word to DocMaker. ¥ Added user-defined objects (using object file). ¥ Added support for objects of arbitrary dimension. This was the biggie, and much of the code had to be rewritten. A lot of the other changes were a direct result of this one. ¥ Added support for viewing multiple objects simultaneously. ¥ Totally changed and improved Keyboard Controls... window ¥ Totally changed and improved Mouse Controls... window ¥ Added "Create N-Cube" command ¥ Split controls into multiple windows, one dimension per window ¥ Changed the way the Perspective works ¥ Lost the ability to display axes (sigh...I'll try to add it back later). ¥ Improved Copy command so it copies object-oriented pictures if antialiasing is turned off, and copies bitmap pictures if antialiasing is turned on. ¥ Lots of other minor changes Version 1.2 (limited release) ----------- ¥ Removed support for non-Color QuickDraw machines (it never worked very well anyway...). Removed support for 68000 machines, since they don't have Color QuickDraw. ¥ Added fast antialiasing of line segments. ¥ Added an offscreen bitmap for fast window updating ¥ Slightly changed default left eye color so it won't cancel itself out. ¥ Added "click and drag"-style control of the viewpoint (like MacMolecule). Added Mouse Controls... menu item for customizing this. ¥ Made scroll bars "live," so the images changes dynamically while the bars are dragged. Along the same lines, improved the "dynamicness" of the number to the left of each scroll bar. Basically, whatever you do, the number, the scroll bar, and the image will agree at all times. ¥ Made scroll bars wrap around, so that an attempt to go beyond the range of the scroll bar will wind up at the other end. Shortened range of scroll bars to eliminate redundant angles (necessary before in order to allow long rotations; wraparound bars allow infinitely long rotations, if desired). ¥ Added Keyboard Controls... menu item for customizing keyboard rotation control. ¥ Gamma-corrected the antialiasing table-- yields MUCH better looking lines, with no affect on speed. ¥ Added menu item to make windows full-screen ¥ Added menu item to hide or show the menubar. Version 1.1.2 (never released) ------------- ¥ Added support for non-Color QuickDraw machines. ¥ Added a different version for machines without a 68000 or FPU. ¥ Added a Default button to the Colors window, to reset colors to their default values. ¥ Merged this HyperCuber Version History file and the README file. ¥ Limited values of delta and rho to a smaller interval, to prevent arithmetic overflow when drawing. Version 1.1.1 (released August 21, 1993) ------------- ¥ Added checking for Color QuickDraw, and added code to exit gracefully if Color QuickDraw is not present. I'm not sure why it requires Color QuickDraw (or if it does) but the folks at UMich have a 68030-accelerated Mac SE which crashes. This change shouldn't affect many people, since there are few non-Color QuickDraw machines which have 68020s or better. Version 1.1 (released August 19, 1993) ----------- ¥ Added keyboard control of all the scroll bars. ¥ Colored the hypercube based on x coordinated, to improve perception of what's going on. ¥ Moved the options (check boxes and radio buttons) to the Options menu. ¥ Moved the scroll bars to a separate Controls window, which can be hidden. Also rearranged scroll bars to make them as compact as possible. This makes it much easier to use HyperCuber on small-screen Macs. ¥ Changed name of window from "HyperCuber Window" to "HyperCube". ¥ Massively rehauled the internal class structure. This makes no difference at present, but the program is now more easily extendable to multiple windows, multiple views, and multiple documents (objects). ¥ Implemented Save As PICT File option. Version 1.0.1 (released August 14, 1993) ------------- ¥ Introduced code to determine processor type, existence of FPU, existence of System 7.0 or later, etc., and to abort if HyperCuber could not run in the environment under which it had been launched. ¥ Improved window placement routines so windows can not be placed off-screen, and so they will would automatically fill the screen if no preference file exists or if the preferred location of the window is off-screen. ¥ Added version number to About... window. ¥ Added two cases for About... window: when there is plenty of memory, the nifty (but memory-intensive) bitmap picture is drawn. When memory is limited, the slightly-less-nifty object-PICT is drawn instead. This lowered memory requirement from 450K to 300K (anything below 450K loses the bitmap About... picture). ¥ Fixed (hopefully) a bug which could cause crashes on some machines when changing preferences. I was not able to reproduce this bug, but I revamped some questionable sections of the preferences code to make them safer. Version 1.0 (released August 11, 1993) ----------- First released version