1 /* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
2 * This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 package org
.mozilla
.gecko
.gfx
;
8 import android
.graphics
.Point
;
9 import android
.graphics
.PointF
;
11 import org
.json
.JSONException
;
12 import org
.json
.JSONObject
;
14 public final class PointUtils
{
15 public static PointF
add(PointF one
, PointF two
) {
16 return new PointF(one
.x
+ two
.x
, one
.y
+ two
.y
);
19 public static PointF
subtract(PointF one
, PointF two
) {
20 return new PointF(one
.x
- two
.x
, one
.y
- two
.y
);
23 public static PointF
scale(PointF point
, float factor
) {
24 return new PointF(point
.x
* factor
, point
.y
* factor
);
27 public static Point
round(PointF point
) {
28 return new Point(Math
.round(point
.x
), Math
.round(point
.y
));
31 /* Computes the magnitude of the given vector. */
32 public static float distance(PointF point
) {
33 return (float)Math
.sqrt(point
.x
* point
.x
+ point
.y
* point
.y
);
36 /** Computes the scalar distance between two points. */
37 public static float distance(PointF one
, PointF two
) {
38 return PointF
.length(one
.x
- two
.x
, one
.y
- two
.y
);
41 public static JSONObject
toJSON(PointF point
) throws JSONException
{
42 // Ensure we put ints, not longs, because Gecko message handlers call getInt().
43 int x
= Math
.round(point
.x
);
44 int y
= Math
.round(point
.y
);
45 JSONObject json
= new JSONObject();