+ public long rotateBox(long box) { return rotateBox(Encode.longToFloat1(box), Encode.longToFloat2(box)); }
+ public long rotateBox(float x, float y) {
+ float width =
+ max(max(multiply_px(0, 0), multiply_px(x, y)), max(multiply_px(x, 0), multiply_px(0, y))) -
+ min(min(multiply_px(0, 0), multiply_px(x, y)), min(multiply_px(x, 0), multiply_px(0, y)));
+ float height =
+ max(max(multiply_py(0, 0), multiply_py(x, y)), max(multiply_py(x, 0), multiply_py(0, y))) -
+ min(min(multiply_py(0, 0), multiply_py(x, y)), min(multiply_py(x, 0), multiply_py(0, y)));
+ return Encode.twoFloatsToLong(width, height);
+ }
+
+ static float min(float a, float b) { if (a<b) return a; else return b; }
+ static float max(float a, float b) { if (a>b) return a; else return b; }
+