Thanks. It hands me events separately for horizontal and vertical movement, and I can compute the angle from those.
The events, as far as I can tell, only trigger when a stick position changes. The right stick gets labeled by LWGLJ as “X Rotation” and “Y Rotation”, depending on which direction you push it. If you push it straight to the right, for example, it triggers an X Rotation event with a value of 1.0. All the way to the left is -1.0. If you were to push it, say, to the right and a little bit down, it would give a pair of events, something like X Rotation 1.0 and Y Rotation 0.4253412. And, if you let go of the stick, it fires an event for each axis with values of 0.0. So, on this controller at least, 0.0 is centered. You can set a dead zone where it’s not supposed to notice little changes, if I understand correctly.
The weird thing is that, for any other stick movements, it only fires the event once each time you move. It doesn’t keep creating events if you hold it still. Yet, the “X Rotation” axis (left-right on the right stick) keeps firing a 0.0 event. It looks as if the computer thinks that the stick keeps getting moved to the center from somewhere else, over and over again, instead of just staying there.