I discover something. When I setRotation() on ISceneNode, then getRotation(), the angle returned will be (0, angle, 0). But when I use IrrNewt, and use setRotation() on ICharacterController, then getRotationBody(), the angle returned will be (180, f(angle), 180) where f(x) is the value of angle after some calculation.
Why they have different representation? Am I using the wrong getRotation method? Any function can convert between them?