A library for 2d shapes and collisions

In java, we have Shape interface which defines a bunch of shapes and handles collisions. But I dont think these are strong enough. The collision methods dont take the rotation of the shape into consideration, for exmaple.

So I am looking for something more powerful. Something that at least support the following shapes:

  • Rectangles
  • Circles
  • Polygons