/*
 * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

package javafx.geometry;

The base class for objects that are used to describe the bounds of a node or other scene graph object. One interesting characteristic of a Bounds object is that it may have a negative width, height, or depth. A negative value for any of these indicates that the Bounds are "empty".
Since:JavaFX 2.0
/** * The base class for objects that are used to describe the bounds of a node or * other scene graph object. One interesting characteristic of a Bounds object * is that it may have a negative width, height, or depth. A negative value * for any of these indicates that the Bounds are "empty". * * @since JavaFX 2.0 */
public abstract class Bounds {
The x coordinate of the upper-left corner of this Bounds.
Returns:the x coordinate of the upper-left corner
@defaultValue0.0
/** * The x coordinate of the upper-left corner of this {@code Bounds}. * * @return the x coordinate of the upper-left corner * @defaultValue 0.0 */
public final double getMinX() { return minX; } private double minX;
The y coordinate of the upper-left corner of this Bounds.
Returns:the y coordinate of the upper-left corner
@defaultValue0.0
/** * The y coordinate of the upper-left corner of this {@code Bounds}. * * @return the y coordinate of the upper-left corner * @defaultValue 0.0 */
public final double getMinY() { return minY; } private double minY;
The minimum z coordinate of this Bounds.
Returns:the minimum z coordinate
@defaultValue0.0
/** * The minimum z coordinate of this {@code Bounds}. * * @return the minimum z coordinate * @defaultValue 0.0 */
public final double getMinZ() { return minZ; } private double minZ;
The width of this Bounds.
Returns:the width
@defaultValue0.0
/** * The width of this {@code Bounds}. * * @return the width * @defaultValue 0.0 */
public final double getWidth() { return width; } private double width;
The height of this Bounds.
Returns:the height
@defaultValue0.0
/** * The height of this {@code Bounds}. * * @return the height * @defaultValue 0.0 */
public final double getHeight() { return height; } private double height;
The depth of this Bounds.
Returns:the depth
@defaultValue0.0
/** * The depth of this {@code Bounds}. * * @return the depth * @defaultValue 0.0 */
public final double getDepth() { return depth; } private double depth;
The x coordinate of the lower-right corner of this Bounds.
Returns:the x coordinate of the lower-right corner
@defaultValueminX + width
/** * The x coordinate of the lower-right corner of this {@code Bounds}. * * @return the x coordinate of the lower-right corner * @defaultValue {@code minX + width} */
public final double getMaxX() { return maxX; } private double maxX;
The y coordinate of the lower-right corner of this Bounds.
Returns:the y coordinate of the lower-right corner
@defaultValueminY + height
/** * The y coordinate of the lower-right corner of this {@code Bounds}. * * @return the y coordinate of the lower-right corner * @defaultValue {@code minY + height} */
public final double getMaxY() { return maxY; } private double maxY;
The maximum z coordinate of this Bounds.
Returns:the maximum z coordinate
@defaultValueminZ + depth
/** * The maximum z coordinate of this {@code Bounds}. * * @return the maximum z coordinate * @defaultValue {@code minZ + depth} */
public final double getMaxZ() { return maxZ; } private double maxZ;
The central x coordinate of this Bounds.
Returns:the central x coordinate
Implementation Requirements:This call is equivalent to (getMaxX() + getMinX())/2.0.
Since:11
/** * The central x coordinate of this {@code Bounds}. * * @return the central x coordinate * @implSpec This call is equivalent to {@code (getMaxX() + getMinX())/2.0}. * @since 11 */
public final double getCenterX() { return (getMaxX() + getMinX()) * 0.5; }
The central y coordinate of this Bounds.
Returns:the central y coordinate
Implementation Requirements:This call is equivalent to (getMaxY() + getMinY())/2.0.
Since:11
/** * The central y coordinate of this {@code Bounds}. * * @return the central y coordinate * @implSpec This call is equivalent to {@code (getMaxY() + getMinY())/2.0}. * @since 11 */
public final double getCenterY() { return (getMaxY() + getMinY()) * 0.5; }
The central z coordinate of this Bounds.
Returns:the central z coordinate
Implementation Requirements:This call is equivalent to (getMaxZ() + getMinZ())/2.0.
Since:11
/** * The central z coordinate of this {@code Bounds}. * * @return the central z coordinate * @implSpec This call is equivalent to {@code (getMaxZ() + getMinZ())/2.0}. * @since 11 */
public final double getCenterZ() { return (getMaxZ() + getMinZ()) * 0.5; }
Indicates whether any of the dimensions(width, height or depth) of this bounds is less than zero.
Returns:true if any of the dimensions(width, height or depth) of this bounds is less than zero
/** * Indicates whether any of the dimensions(width, height or depth) of this bounds * is less than zero. * @return true if any of the dimensions(width, height or depth) of this bounds * is less than zero */
public abstract boolean isEmpty();
Tests if the specified point is inside the boundary of Bounds.
Params:
  • p – the specified point to be tested
Returns:true if the specified point is inside the boundary of this Bounds; false otherwise
/** * Tests if the specified point is inside the boundary of {@code Bounds}. * * @param p the specified point to be tested * @return true if the specified point is inside the boundary of this * {@code Bounds}; false otherwise */
public abstract boolean contains(Point2D p);
Tests if the specified point is inside the boundary of Bounds.
Params:
  • p – the specified 3D point to be tested
Returns:true if the specified point is inside the boundary of this Bounds; false otherwise
/** * Tests if the specified point is inside the boundary of {@code Bounds}. * * @param p the specified 3D point to be tested * @return true if the specified point is inside the boundary of this * {@code Bounds}; false otherwise */
public abstract boolean contains(Point3D p);
Tests if the specified (x, y) coordinates are inside the boundary of Bounds.
Params:
  • x – the specified x coordinate to be tested
  • y – the specified y coordinate to be tested
Returns:true if the specified (x, y) coordinates are inside the boundary of this Bounds; false otherwise
/** * Tests if the specified {@code (x, y)} coordinates are inside the boundary * of {@code Bounds}. * * @param x the specified x coordinate to be tested * @param y the specified y coordinate to be tested * @return true if the specified {@code (x, y)} coordinates are inside the * boundary of this {@code Bounds}; false otherwise */
public abstract boolean contains(double x, double y);
Tests if the specified (x, y, z) coordinates are inside the boundary of Bounds.
Params:
  • x – the specified x coordinate to be tested
  • y – the specified y coordinate to be tested
  • z – the specified z coordinate to be tested
Returns:true if the specified (x, y) coordinates are inside the boundary of this Bounds; false otherwise
/** * Tests if the specified {@code (x, y, z)} coordinates are inside the boundary * of {@code Bounds}. * * @param x the specified x coordinate to be tested * @param y the specified y coordinate to be tested * @param z the specified z coordinate to be tested * @return true if the specified {@code (x, y)} coordinates are inside the * boundary of this {@code Bounds}; false otherwise */
public abstract boolean contains(double x, double y, double z);
Tests if the interior of this Bounds entirely contains the specified Bounds, b.
Params:
  • b – The specified Bounds
Returns:true if the specified Bounds, b, is inside the boundary of this Bounds; false otherwise
/** * Tests if the interior of this {@code Bounds} entirely contains the * specified Bounds, {@code b}. * * @param b The specified Bounds * @return true if the specified Bounds, {@code b}, is inside the * boundary of this {@code Bounds}; false otherwise */
public abstract boolean contains(Bounds b);
Tests if the interior of this Bounds entirely contains the specified rectangular area.
Params:
  • x – the x coordinate of the upper-left corner of the specified rectangular area
  • y – the y coordinate of the upper-left corner of the specified rectangular area
  • w – the width of the specified rectangular area
  • h – the height of the specified rectangular area
Returns:true if the interior of this Bounds entirely contains the specified rectangular area; false otherwise
/** * Tests if the interior of this {@code Bounds} entirely contains the * specified rectangular area. * * @param x the x coordinate of the upper-left corner of the specified * rectangular area * @param y the y coordinate of the upper-left corner of the specified * rectangular area * @param w the width of the specified rectangular area * @param h the height of the specified rectangular area * @return true if the interior of this {@code Bounds} entirely contains * the specified rectangular area; false otherwise */
public abstract boolean contains(double x, double y, double w, double h);
Tests if the interior of this Bounds entirely contains the specified rectangular area.
Params:
  • x – the x coordinate of the upper-left corner of the specified rectangular volume
  • y – the y coordinate of the upper-left corner of the specified rectangular volume
  • z – the z coordinate of the upper-left corner of the specified rectangular volume
  • w – the width of the specified rectangular volume
  • h – the height of the specified rectangular volume
  • d – the depth of the specified rectangular volume
Returns:true if the interior of this Bounds entirely contains the specified rectangular area; false otherwise
/** * Tests if the interior of this {@code Bounds} entirely contains the * specified rectangular area. * * @param x the x coordinate of the upper-left corner of the specified * rectangular volume * @param y the y coordinate of the upper-left corner of the specified * rectangular volume * @param z the z coordinate of the upper-left corner of the specified * rectangular volume * @param w the width of the specified rectangular volume * @param h the height of the specified rectangular volume * @param d the depth of the specified rectangular volume * @return true if the interior of this {@code Bounds} entirely contains * the specified rectangular area; false otherwise */
public abstract boolean contains(double x, double y, double z, double w, double h, double d);
Tests if the interior of this Bounds intersects the interior of a specified Bounds, b.
Params:
  • b – The specified Bounds
Returns:true if the interior of this Bounds and the interior of the specified Bounds, b, intersect
/** * Tests if the interior of this {@code Bounds} intersects the interior * of a specified Bounds, {@code b}. * * @param b The specified Bounds * @return true if the interior of this {@code Bounds} and the interior * of the specified Bounds, {@code b}, intersect */
public abstract boolean intersects(Bounds b);
Tests if the interior of this Bounds intersects the interior of a specified rectangular area.
Params:
  • x – the x coordinate of the upper-left corner of the specified rectangular area
  • y – the y coordinate of the upper-left corner of the specified rectangular area
  • w – the width of the specified rectangular area
  • h – the height of the specified rectangular area
Returns:true if the interior of this Bounds and the interior of the rectangular area intersect
/** * Tests if the interior of this {@code Bounds} intersects the interior * of a specified rectangular area. * * @param x the x coordinate of the upper-left corner of the specified * rectangular area * @param y the y coordinate of the upper-left corner of the specified * rectangular area * @param w the width of the specified rectangular area * @param h the height of the specified rectangular area * @return true if the interior of this {@code Bounds} and the interior * of the rectangular area intersect */
public abstract boolean intersects(double x, double y, double w, double h);
Tests if the interior of this Bounds intersects the interior of a specified rectangular area.
Params:
  • x – the x coordinate of the upper-left corner of the specified rectangular volume
  • y – the y coordinate of the upper-left corner of the specified rectangular volume
  • z – the z coordinate of the upper-left corner of the specified rectangular volume
  • w – the width of the specified rectangular volume
  • h – the height of the specified rectangular volume
  • d – the depth of the specified rectangular volume
Returns:true if the interior of this Bounds and the interior of the rectangular area intersect
/** * Tests if the interior of this {@code Bounds} intersects the interior * of a specified rectangular area. * * @param x the x coordinate of the upper-left corner of the specified * rectangular volume * @param y the y coordinate of the upper-left corner of the specified * rectangular volume * @param z the z coordinate of the upper-left corner of the specified * rectangular volume * @param w the width of the specified rectangular volume * @param h the height of the specified rectangular volume * @param d the depth of the specified rectangular volume * @return true if the interior of this {@code Bounds} and the interior * of the rectangular area intersect */
public abstract boolean intersects(double x, double y, double z, double w, double h, double d);
Creates a new instance of Bounds class.
Params:
  • minX – the X coordinate of the upper-left corner
  • minY – the Y coordinate of the upper-left corner
  • minZ – the minimum z coordinate of the Bounds
  • width – the width of the Bounds
  • height – the height of the Bounds
  • depth – the depth of the Bounds
/** * Creates a new instance of {@code Bounds} class. * @param minX the X coordinate of the upper-left corner * @param minY the Y coordinate of the upper-left corner * @param minZ the minimum z coordinate of the {@code Bounds} * @param width the width of the {@code Bounds} * @param height the height of the {@code Bounds} * @param depth the depth of the {@code Bounds} */
protected Bounds(double minX, double minY, double minZ, double width, double height, double depth) { this.minX = minX; this.minY = minY; this.minZ = minZ; this.width = width; this.height = height; this.depth = depth; this.maxX = minX + width; this.maxY = minY + height; this.maxZ = minZ + depth; } }