I’ve been doing more work on the “3D Tool”, which I’m now calling the Transform Widget. I plugged in my picking ray code, and wrote some new code to do line segment\segment intersection testing. That allowed me to do mouse-over tests on the widget axes, and get it translating along its axes via mouse input.
I also added a 2nd dialog box that will be used for selected object properties.
I haven’t posted screens in a while because this stuff isn’t very interesting to see, but I figured I’d post one anyway. Here I have the Transform Widget, but I’m hiding the circles that represent rotation manipulators since they don’t function yet.
So like I said a few posts ago, my first goal with the editor is to get the player-start entity to be editable, and I’m making progress toward that. Once I can do that I think progress should pick up a little bit. All of this back-end work to get one object editable will carry over to most object types.
I’ve spent some time using the editor camera navigation and I’m pretty happy with it. I had made some small tweaks here and there, and I like the way it’s settled out.
What’s next is to draw bounding boxes of editable objects – namely the player start. Then create a selected object, and allow the bbox to be selected, and render it white while selected. Then do a slight refactor of the transform widget so that it can be attached to the selected object. It can already modify any “body”, so once it’s attached to the selected object, the editor is basically functioning since save-load is already up and running.
At some point I’ll also have to add orientation control to the transform widget but I can easily put that off for a while until some other things are out of the way.
I added a couple of more links to other indie projects that I’ve been following: Eldgame, and Paper Sorcerer. Check them out.
I may make another post tonight, if I can get the bbox rendering going. I have to decide if I want the game to register editable objects with a manager – much like how collision detection works – or if all engine objects automatically have editor data attached to them…