New incubator app--PeriodicTable3D
I think that my app is complete enough for an "official announcement". :-) If you grab a recent CVS checkout, the application is under Demos -> Early Prototypes.
First off, I'd like to explain what I was trying to accomplish with this program. Grab a copy of the periodic table of the elements (either launch my app or do a Google image search for "periodic table"--it doesn't matter). Below the main body of the periodic table, you'll see two rows of elements that aren't connected to the others--the inner transition elements.
The inner transition metals are supposed to go right after Lanthanum and Actinium (La and Ac in the lower left-hand corner of the main body of the periodic table). However, if we stretch out the periodic table to make room for them, the periodic table becomes too long and unwieldy.
This is where the 3D interface comes in. Double-click on the PeriodicTable3D window, and it will enter "3D mode". The inner transition elements will slide into place after La and Ac, but along the Z axis instead of the X axis. The inner transition elements are in the right place, and the periodic table isn't stretched out unreadably!
In order to read the inner transition elements in 3D mode, you'll have to rotate the application by clicking and dragging on it with the right mouse button. (If your copy of the code is from earlier this week, the key combination is ctrl+LMB click and drag.)
The 3D periodic table isn't intended as a solution to all of chemistry's problems :-) so much as an example of leveraging the third dimension to display information. I could certainly take this farther--I've already seen textbook authors use 3D representations to display additional information about the elements in the periodic table:
Limits on my free time do not allow me to pursue these ideas in Looking Glass, though. :-(
Anyway, it's yet another little demo for the incubator, and I hope that it gets some ideas churning in someone else's head.
Full usage for PeriodicTable3D:
* LMB click and drag to move.
* LMB double-click to toggle 3D mode.
* MMB click to park at the edge of the screen.
* RMB click to minimize.
* RMB click and drag to rotate.
* Mousewheel zooms the application.
"Easter egg" little touches:
* Mousing over the application causes the task tray icon to move up and down.
* Docking the application causes it to rotate to the default position (to make it fit better); undocking it causes it to return to the previous angle (most of the time).
* PeriodicTable3D is designed to play will with multible instances of itself, and share certain resources when the instances are in the same VM. So, you can populate your desktop with a dozen 3D periodic tables in different modes. :-)
* For some reason, when PeriodicTable3D is undocked, the autorotate sometimes only goes halfway back to the previous angle when undocked; I have no idea if the problem is in my code or in LG3D.
* The main body of PeriodicTable3D is a single ImagePanel with a transparent png; moving the mouse across the transparent parts of the png results in a mouseover event.
* Parts of the code are still a little messy. :-)
(Happy that his app finally works the way he wanted it to!)