1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-11-29 10:50:28 +00:00
6502bench/PluginCommon
Andy McFadden b3dacc2613 Switch to left-handed coordinate system
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).
2020-03-14 13:59:08 -07:00
..
AddressTranslate.cs Switch to left-handed coordinate system 2020-03-14 13:59:08 -07:00
Interfaces.cs Switch to left-handed coordinate system 2020-03-14 13:59:08 -07:00
Matrix33.cs Switch to left-handed coordinate system 2020-03-14 13:59:08 -07:00
PlSymbol.cs
PluginCommon.csproj
PluginException.cs
PluginManager.cs Add VisParamDescr default value type check 2020-01-21 11:02:36 -08:00
Util.cs
Vector3.cs Tweak Vector3 and VisWireframe 2020-03-10 20:59:45 -07:00
VisBitmap8.cs Various minor tweaks 2019-12-07 11:42:26 -08:00
VisWireframe.cs Fix edge-face validation check 2020-03-13 18:39:11 -07:00