I'm working on subobjects now, it's turning out to be easier than I had thought, especially sense I'm just making it edit only one subobject at a time (the tree will select which one), I'm going to need to make a few more primitive controls, multi-line string editors and int list selectors (combo box you select an option for which gets converted to an int for the moment I'm just useing normal int controls which will get the job done for the moment but allow for illegal values and don't tell you what the valid ones are)
alright, submodels is semi-done pending me making the int list control, which I'll do tomorrow, then I'll get the tree working, which will take a few days, they it will be time to fine tune the interface (most of the controls have some issues with some data sections not standing out as well as they should I need to add some white space to make things flow better).
it will soon be time to start talking about how the UI is going to talk with the render window. the jist of how I'm thinking this should work is a set of functions in the UI base class that will give out several lists of grpoints (a general purpose vector based class for use in the 3d UI would have a position a radius and a normal even if they weren't always used, flags will determine how they are displayed (ie a flag to determine weather or not to draw a normal, if the normal data is junk it shouldn't be displayed)). I'm thinking a vector of vectors of grpoints, and an int to identify the currently selected list and another int to identify the currently selected point in that list, the GL windo gets this, draws it, and if the GL window makes any changes it sends the modified vector of vectors of grpoints back to the UI to do the actual editing, so there would only need to be one set of functions in the GL window for graphically editing 95% of all data in the model, and these set's of functions would be COMPLETLY generic, so they wouldn't have to worry about what data is selected or if any data is selected it would just have to manage this vector of vectors, update the display when it gets a new one, call a function when it makes changes to it.
let's not do anything concrete until I make my commit and the text editor it in good shape though.