/* * 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 + minY) / 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; } }