Pusher collisions are messy behind the scenes, but cleaned up for the final render. If one calls getPos() on an object that is being positioned using pusher collisions, the reported positions reflect the behind-the-scenes noise, and not the cleaned up render position.
I need that clean and screen accurate position, but do not see any way to acquire it. I have checked the Panda3D source code, and it looks like one could grab that cleaned up position at the end up collisionHandlerPusher.cxx, in line 254 where net_shove is applied as a position.
Is there some reason that Panda lacks the ability to acquire the screen-accurate position in this situation? Would adding a hook to expose that position somehow break pusher collision? Is there some reason not to make this available to the user, as .getFinalPusherPos or whatever you like?
If not, I would suggest that this information be exposed to the user. Please, please, please.
Alternately, I suppose it is possible that the Panda cognoscenti have some double-secret procedure for wheedling and wrangling this information from the engine. If there is a known approach for this, some method for screening out the noise to reveal the cleaned-up final position, can it be publicly revealed? Although such a method would sort of be doing it the silly way, working around a limitation instead of removing it.
While I welcome responses, I don’t seem to be very good at the forum back-and-forth these days. I do apologize for that. I post this now only after much hesitation, because I know how I am.