If you can get the 'depth' as a value, can't you just change the sign and use it as a positive z component? The SetPos would be in three stages - SetPos to new [x,y,0] coordinates; calculate depth z from GetPos; SetPos to new [x,y,-z].
I think the logic's right...