• 3 Posts
  • 20 Comments
Joined 1 year ago
cake
Cake day: August 22nd, 2023

help-circle

  • I worked on software at one point that had at it’s core a number of “modes” that it switched between. It was, at the time, in the process of migrating from enums and switch/case trees to an inheritance based system.

    In practice this meant there was a single instance of “Mode” for each mode which used pointer equality to switch/case on modes like an enum.

    To add a new mode (that did nothing) I think I had to change about 6 different places.




















  • There’s a video introduction that talks a little about it and shows a bit of usage.

    The canonical proprietary version of this is the SpaceMouse.

    These are used in concert with a traditional mouse, with the 3d mouse being used for navigation of the 3d space. They have six degrees of freedom (as in, you can rotate in any axis or you can push it in any axis) so you can rotate and you can pan any which way with full control.

    If you’ve ever gotten frustrated in a 3d program trying to figure out the correct sequence of rotations to get to your preferred view, that’s the use case the 3d mouse addresses.