I'm working on a prototype application for viewing embryology slides (and having HUGE flashbacks from when I took the course back when the earth was young).
As a result, I get to play around in DirectorMX again, and am rather amazed at how quickly my Mad Lingo Skillz are coming back. Imaging Lingo rocks. 3D Lingo rocks.
I'm building 2 versions of the app. The first used Imaging Lingo to do a zoom/pan over a high resolution image. That worked well, but took a good chunk of CPU power to do the manipulations. The second version is using 3D Lingo to power an OpenGL image viewer, with a high resolution bitmap used as a texture on a plane, which is then moved in front of a camera to generate smooth panning and zooming (ala MacOSX Quartz). Very cool. Now, to play around with controlling the movement of the plane.
There are 2 challenges remaining: How to keep the images of various sections of an embryo registered appropriately to prevent pixel shifting as the student moves from slide to slide (they are all slightly different image sizes, and they are not perfectly centered on each slide...) Then, I get to figure out how to overlay text and graphic labels on top of the plane. That should be fun...
I've got it working quite well for panning/zooming and moving through slices of a sample, using a 3D plane with the slide scanned in as a bitmap texture. Perfomance absolutely ROCKS on my TiBook (and, as an aside, I just tried it on a Dell laptop, where performance sucked complete ass. It's so nice finally being on the right side of the performance curve...) I'm using the camera's Z position in the 3D world to work the zoom function, and the plane can be physically dragged around to work the panning function. Dragging the image pans it, moving the slider zooms in and out. Very cool.
The next big challenge is keying the registration points of each slide image so moving between slides isn't jumpy (i.e., if you're zoomed way in on the notochord, you should stay on the same structure as you move to the next/previous slide).