You don’t get a vector from dividing three euler angles by 180 (it’s a lot less trivial than that). Nor do you need a dummy node. This is the most common way to do it:
Surely providing a NodePath parameter to “getQuat” allows one to get the rotation, and thus the forward vector, relative to the specified NodePath?
Unless you mean that “getQuat” only allows one to get a rotation relative to one of the relevant node’s ancestors (not just its immediate parent node), while “getRelativeVector” works for any pair of NodePaths…?
Of course; both will work with any two nodepaths that are in the same scene graph. Both are just different ways to get the same result - one using quaternions, and the other via transformation matrices.
getRelativeVector is defined as the equivalent of this:
In that sense, I suppose the main advantage of getRelativeVector is that you can pass any vector to it, not just the forward vector.
Since getRelativeVector uses only matrix multiplication, it does seems to be marginally faster, but passing Vec3.forward() to it instead of (0, 1, 0) to make it work when Panda is configured to a different coordinate system makes it slightly slower due to the extra function call to C++.