UI update to include configuring flyers on front window.
This MR includes an initial UI that allows you to view the stairwell and configure the location of flyers on the front window. It does not support the stairwell (inner or outer) or ceiling yet.
It renders the flyers as their geometry, but does not handle wing rotation yet.
It requires a few changes to the data model abstraction, to allow you to get all of the data that you need.
It fixes configuration saving, so changes made in the GUI are reflected in the file.
There is one major bug, which is that the window to configure geometry doesn't render right: it is in shadow and is illuminated by the actual picture. Mark pointed out that what we're doing to initialize the GUI is totally wrong -- it's based on a very old version of LXStudio that SQUARED uses. So my major to do items are:
- Fix GUI initialization and setup so that the window renders correctly. -Contacted Mark
Updated to use modern/correct GUI initialization APIs.- Properly rotate wings.
- Add ability to configure flyers for ceiling and stairwell. For the ceiling, I'll look up where the pipes are. For the stairwell, I'll look at the architectural drawings to get the geometry. My plan is to implement the stairwell as a series of 3D line segments (startX, startY, startZ, delta X, delta Y, delta Z), with an associated calculated length. If you want to place a flyer at X feet along the spiral, you just walk the segment lengths until you reach the one which X lies within. Then you set the attachment point to be the faction along, rotate it based on the delta vector, and be done.