22 __all__ = [
"rotateBBoxBy90"]
30 """Rotate a bounding box by an integer multiple of 90 degrees.
34 bbox : `lsst.geom.Box2I`
35 Bounding box to rotate.
37 Number of quarter rotations to perform
38 dimensions : `tuple` of `int`
39 Dimensions of the parent grid.
43 newBbox : `lsst.geom.Box`
49 document dimensions better; what does it specify?
71 raise ValueError(
"n90 must be an integer")
75 xCorner = numpy.array([(corner.getX() - centerPixel[0])
76 for corner
in bbox.getCorners()])
77 yCorner = numpy.array([(corner.getY() - centerPixel[1])
78 for corner
in bbox.getCorners()])
79 x0 = int((c*xCorner - s*yCorner).
min())
80 y0 = int((s*xCorner + c*yCorner).
min())
81 x1 = int((c*xCorner - s*yCorner).
max())
82 y1 = int((s*xCorner + c*yCorner).
max())
88 if dimensions[0]%2 == 0:
92 if dimensions[0]%2 == 0:
95 if dimensions[1]%2 == 0:
99 if dimensions[1]%2 == 0:
108 dxy0 = centerPixel[0] - centerPixel[1]
109 if n90%2 == 1
and not dxy0 == 0: