+ public float sign(float x) { return x >= 0 ? 1 : -1; }
+ public float divide_boundingbox_x(float bx, float by, float aspect) {
+ return (float)Math.min(Math.abs(bx * (sign(a) * sign(c)) / (aspect * a + c)),
+ Math.abs(by * (sign(b) * sign(d)) / (aspect * b + d)));
+ }
+ public float multiply_boundingbox_x(float x, float y) {
+ return (float)Math.max((int)Math.abs(multiply_px(x, y) - multiply_px(0, 0)),
+ (int)Math.abs(multiply_px(x, 0) - multiply_px(0, y))); }
+ public float multiply_boundingbox_y(float x, float y) {
+ return (float)Math.max((int)Math.abs(multiply_py(x, y) - multiply_py(0, 0)),
+ (int)Math.abs(multiply_py(x, 0) - multiply_py(0, y))); }