Do you really need to allow both (refframe, point) and (point, refframe) ? I would set it to take these args:

(..., rigidbody)
(..., refframe, particle)
(..., refframe, point)

If you do allow multiple orders for frame, point then you need to test this in your tests.