mirror of
https://github.com/fadden/6502bench.git
synced 2024-12-01 22:50:35 +00:00
b3dacc2613
There's no "standard" coordinate system, so the choice is arbitrary. However, an examination of the Transporter mesh in Elite revealed that the mesh was designed for a left-handed coordinate system. We can compensate for that trivially in the Elite visualizer, but we might as well match what they're doing. (The only change required in the code is a couple of sign changes on the Z coordinate, and an update to the rotation matrix.) This also downsizes Matrix44 to Matrix33, exposes the rotation mode enum, and adds a left-handed ZYX rotation mode. This does mean that meshes that put the front at +Z will show their backsides initially, since we're now oriented as if we're flying the ships rather than facing them. I considered adding a 180-degree Y rotation (with a tweak to the rotation matrix handedness to correct the first rotation axis) to have them facing by default, but figured that might be confusing since +Z is supposed to be away. Anybody who really wants it to be the other way can trivially flip the coordinates in their visualizer (negate xc/zc). The Z coordinates in the visualization test project were flipped so that the design is still facing the viewer at rotation (0,0,0). |
||
---|---|---|
.. | ||
apple2-bitmap-test-AW-RGB.png | ||
apple2-bitmap-test#061000 | ||
apple2-bitmap-test#061000.dis65 | ||
apple2-bitmap-test#061000.S | ||
apple2-screen-img#062000 | ||
apple2-screen-img#062000.dis65 | ||
atari2600-sprite-test | ||
atari2600-sprite-test.dis65 | ||
atari2600-sprite-test.S | ||
c64-sprite-test | ||
c64-sprite-test.dis65 | ||
c64-sprite-test.spd | ||
VisWireframeTest.cs | ||
wireframe-test | ||
wireframe-test.dis65 | ||
wireframe-test.S |