diff --git a/library/src/main/java/com/google/maps/android/geometry/Bounds.java b/library/src/main/java/com/google/maps/android/geometry/Bounds.java deleted file mode 100755 index dfb06ec8d..000000000 --- a/library/src/main/java/com/google/maps/android/geometry/Bounds.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2013 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.maps.android.geometry; - -/** - * Represents an area in the cartesian plane. - */ -public class Bounds { - public final double minX; - public final double minY; - - public final double maxX; - public final double maxY; - - public final double midX; - public final double midY; - - public Bounds(double minX, double maxX, double minY, double maxY) { - this.minX = minX; - this.minY = minY; - this.maxX = maxX; - this.maxY = maxY; - - midX = (minX + maxX) / 2; - midY = (minY + maxY) / 2; - } - - public boolean contains(double x, double y) { - return minX <= x && x <= maxX && minY <= y && y <= maxY; - } - - public boolean contains(Point point) { - return contains(point.x, point.y); - } - - public boolean intersects(double minX, double maxX, double minY, double maxY) { - return minX < this.maxX && this.minX < maxX && minY < this.maxY && this.minY < maxY; - } - - public boolean intersects(Bounds bounds) { - return intersects(bounds.minX, bounds.maxX, bounds.minY, bounds.maxY); - } - - public boolean contains(Bounds bounds) { - return bounds.minX >= minX && bounds.maxX <= maxX && bounds.minY >= minY && bounds.maxY <= maxY; - } -} diff --git a/library/src/main/java/com/google/maps/android/geometry/Bounds.kt b/library/src/main/java/com/google/maps/android/geometry/Bounds.kt new file mode 100644 index 000000000..6e14d9e32 --- /dev/null +++ b/library/src/main/java/com/google/maps/android/geometry/Bounds.kt @@ -0,0 +1,50 @@ +/* + * Copyright 2025 Google LLC. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.maps.android.geometry + +/** + * Represents an area in the cartesian plane. + */ +data class Bounds( + @JvmField val minX: Double, + @JvmField val maxX: Double, + @JvmField val minY: Double, + @JvmField val maxY: Double +) { + @JvmField val midX: Double = (minX + maxX) / 2 + @JvmField val midY: Double = (minY + maxY) / 2 + + fun contains(x: Double, y: Double): Boolean { + return minX <= x && x <= maxX && minY <= y && y <= maxY + } + + fun contains(point: Point): Boolean { + return contains(point.x, point.y) + } + + fun intersects(minX: Double, maxX: Double, minY: Double, maxY: Double): Boolean { + return minX < this.maxX && this.minX < maxX && minY < this.maxY && this.minY < maxY + } + + fun intersects(bounds: Bounds): Boolean { + return intersects(bounds.minX, bounds.maxX, bounds.minY, bounds.maxY) + } + + fun contains(bounds: Bounds): Boolean { + return bounds.minX >= minX && bounds.maxX <= maxX && bounds.minY >= minY && bounds.maxY <= maxY + } +} \ No newline at end of file diff --git a/library/src/main/java/com/google/maps/android/geometry/Point.java b/library/src/main/java/com/google/maps/android/geometry/Point.kt similarity index 56% rename from library/src/main/java/com/google/maps/android/geometry/Point.java rename to library/src/main/java/com/google/maps/android/geometry/Point.kt index 88a83d731..29e6229c6 100644 --- a/library/src/main/java/com/google/maps/android/geometry/Point.java +++ b/library/src/main/java/com/google/maps/android/geometry/Point.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google Inc. + * Copyright 2023 Google LLC. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,25 +14,6 @@ * limitations under the License. */ -package com.google.maps.android.geometry; +package com.google.maps.android.geometry -import androidx.annotation.NonNull; - -public class Point { - public final double x; - public final double y; - - public Point(double x, double y) { - this.x = x; - this.y = y; - } - - @NonNull - @Override - public String toString() { - return "Point{" + - "x=" + x + - ", y=" + y + - '}'; - } -} +open class Point(@JvmField val x: Double, @JvmField val y: Double)