After nearly a week of screaming at my monitor, I finally got a new system for rotating and translating Sixi2’s hand.
The old method used…
- mouse LMB for XY translation
- SHIFT+mouse LMB for XY rotation
- ALT+mouse LMB for Z translation AND Z rotation
Which (technically) worked, but was super hard to do well.
The new system is much easier
- Double click the robot you want to move and the translate tool will appear.
- Hover over each handle and it will change color. Click and drag the active handle to drag the robot’s hand. If the robot cannot move the angry joint will turn white, then red.
- Hold shift to replace the translate tool with the rotate tool. Hover over each handle (the colored rings) and they will change color. Click and drag on the handles to rotate the robot’s hand.
In the future I may even remove the need for the shift key so that everything can be done with a mouse or a touch pad or maybe even a sip+puff.
I tried several things that didn’t work out, like using OpenGL’s Select Buffer. I also notice the rotation handles don’t stay inside the grey circle when they are in the far corners of the screen and I don’t have an answer for that yet.
If you want to read the code in the open source project, start in org.marginallyclever.robotOverlord.DragBall
Also much love to https://www.scratchapixel.com/. Their 3D graphics tutorials kept coming up when I searched for things I needed in Robot Overlord. If you want to learn 3D graphics it is a clean, simple, effective resource.