acm.graphics
Class GRectangle

java.lang.Object
  extended by acm.graphics.GRectangle
All Implemented Interfaces:
Serializable

public class GRectangle
extends Object
implements Serializable

This class is a double-precision version of the Rectangle class in java.awt.

See Also:
Serialized Form

Constructor Summary
GRectangle()
          Constructs a new empty GRectangle.
GRectangle(double width, double height)
          Constructs a GRectangle at the origin with the specified width and height.
GRectangle(double x, double y, double width, double height)
          Constructs a new GRectangle with the specified coordinates and size.
GRectangle(GDimension size)
          Constructs a new GRectangle at the origin with the specified size.
GRectangle(GPoint pt)
          Constructs a new empty GRectangle at the specified location.
GRectangle(GPoint pt, GDimension size)
          Constructs a new GRectangle with the specified location and size.
GRectangle(GRectangle r)
          Constructs a new GRectangle from an existing one.
 
Method Summary
 void add(double x, double y)
          Adds the specified point to the rectangle.
 void add(GRectangle r)
          Adjusts the bounds of the current GRectangle so that it contains the rectangle represented by the argument.
 boolean contains(double x, double y)
          Returns true if the GRectangle contains the specified point.
 boolean contains(GPoint pt)
          Returns true if the GRectangle contains the specified point.
 boolean equals(Object obj)
          Tests whether two GRectangle objects are equal.
 GRectangle getBounds()
          Returns a new GRectangle whose bounds are the same as this one.
 double getHeight()
          Returns the height of this GDimension.
 GPoint getLocation()
          Returns a new GPoint with the location of the rectangle.
 GDimension getSize()
          Returns a new GDimension object with the size of the GRectangle.
 double getWidth()
          Returns the width of this GDimension.
 double getX()
          Returns the x coordinate of this GRectangle.
 double getY()
          Returns the y coordinate of this GRectangle.
 void grow(double dx, double dy)
          Adjusts the edges of a rectangle by the specified dx and dy offsets along each of its borders.
 int hashCode()
          Returns an integer hash code for the rectangle.
 GRectangle intersection(GRectangle r2)
          Returns the largest rectangle that is contained in both r1 and r2.
 boolean intersects(GRectangle r2)
          Returns true if r1 and r2 have a nonempty intersection.
 boolean isEmpty()
          Returns true if the rectangle is empty.
 void setBounds(double x, double y, double width, double height)
          Sets the components of a GRectangle from the specified values.
 void setBounds(GPoint pt, GDimension size)
          Sets the components of a GRectangle from the specified location and size.
 void setBounds(GRectangle bounds)
          Sets the bounds of one GRectangle equal to that of another.
 void setLocation(double x, double y)
          Sets the location of the GRectangle to the specified x and y values.
 void setLocation(GPoint pt)
          Sets the location of the GRectangle to the specified point.
 void setSize(double width, double height)
          Sets the size of the GRectangle to the specified values.
 void setSize(GDimension size)
          Sets the size of the GRectangle to the specified dimension.
 Rectangle toRectangle()
          Converts this GRectangle to the nearest integer-based Rectangle.
 String toString()
          Converts this GRectangle to its string representation.
 void translate(double dx, double dy)
          Adjusts the coordinates of a rectangle by the specified dx and dy offsets.
 GRectangle union(GRectangle r2)
          Returns the smallest rectangle that contains both r1 and r2.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

GRectangle

public GRectangle()
Constructs a new empty GRectangle.


GRectangle

public GRectangle(double width,
                  double height)
Constructs a GRectangle at the origin with the specified width and height.

Parameters:
width - The width of the rectangle
height - The height of the rectangle

GRectangle

public GRectangle(double x,
                  double y,
                  double width,
                  double height)
Constructs a new GRectangle with the specified coordinates and size.

Parameters:
x - The x-coordinate of the rectangle
y - The y-coordinate of the rectangle
width - The width of the rectangle
height - The height of the rectangle

GRectangle

public GRectangle(GDimension size)
Constructs a new GRectangle at the origin with the specified size.

Parameters:
size - The dimensions of the rectangle

GRectangle

public GRectangle(GPoint pt)
Constructs a new empty GRectangle at the specified location.

Parameters:
pt - The location of the upper left corner of the rectangle

GRectangle

public GRectangle(GPoint pt,
                  GDimension size)
Constructs a new GRectangle with the specified location and size.

Parameters:
pt - The location of the upper left corner of the rectangle
size - The dimensions of the rectangle

GRectangle

public GRectangle(GRectangle r)
Constructs a new GRectangle from an existing one.

Parameters:
r - The original rectangle
Method Detail

add

public void add(double x,
                double y)
Adds the specified point to the rectangle.

Parameters:
x - The x coordinate of the new point
y - The y coordinate of the new point

add

public void add(GRectangle r)
Adjusts the bounds of the current GRectangle so that it contains the rectangle represented by the argument.

Parameters:
r - A new rectangle to include in this one

contains

public boolean contains(double x,
                        double y)
Returns true if the GRectangle contains the specified point.

Parameters:
x - The x-coordinate of the point being tested
y - The y-coordinate of the point being tested
Returns:
true if the rectangle contains (xy), and false otherwise

contains

public boolean contains(GPoint pt)
Returns true if the GRectangle contains the specified point.

Parameters:
pt - The point being tested
Returns:
true if the rectangle contains pt, and false otherwise

equals

public boolean equals(Object obj)
Tests whether two GRectangle objects are equal. Because floating-point values are inexact, this method checks for equality by comparing the float values (rather than the double values) of the coordinates.

Overrides:
equals in class Object
Parameters:
obj - Any object
Returns:
true if the obj is a GRectangle equal to this one, and false otherwise

getBounds

public GRectangle getBounds()
Returns a new GRectangle whose bounds are the same as this one.

Returns:
A new rectangle with the same bounds

getHeight

public double getHeight()
Returns the height of this GDimension.

Returns:
The height of this GDimension

getLocation

public GPoint getLocation()
Returns a new GPoint with the location of the rectangle.

Returns:
The location of the rectangle as a GPoint

getSize

public GDimension getSize()
Returns a new GDimension object with the size of the GRectangle.

Returns:
The size of the rectangle as a GDimension

getWidth

public double getWidth()
Returns the width of this GDimension.

Returns:
The width of this GDimension

getX

public double getX()
Returns the x coordinate of this GRectangle.

Returns:
The x coordinate of this GRectangle

getY

public double getY()
Returns the y coordinate of this GRectangle.

Returns:
The y coordinate of this GRectangle

grow

public void grow(double dx,
                 double dy)
Adjusts the edges of a rectangle by the specified dx and dy offsets along each of its borders.

Parameters:
dx - The offset to extend each of the left and right borders
dy - The offset to extend each of the top and bottom borders

hashCode

public int hashCode()
Returns an integer hash code for the rectangle. The hash code for a GRectangle is constructed from the hash codes from the float values of the coordinates, which are the ones used in the equals method.

Overrides:
hashCode in class Object
Returns:
The hash code for this rectangle

intersection

public GRectangle intersection(GRectangle r2)
Returns the largest rectangle that is contained in both r1 and r2.

Parameters:
r2 - A second rectangle
Returns:
The intersection of this rectangle and r2

intersects

public boolean intersects(GRectangle r2)
Returns true if r1 and r2 have a nonempty intersection.

Parameters:
r2 - A second rectangle
Returns:
true if the two rectangles intersect, and false otherwise

isEmpty

public boolean isEmpty()
Returns true if the rectangle is empty.

Returns:
true if the rectangle is empty, and false otherwise

setBounds

public void setBounds(double x,
                      double y,
                      double width,
                      double height)
Sets the components of a GRectangle from the specified values.

Parameters:
x - The x-coordinate of the rectangle
y - The y-coordinate of the rectangle
width - The width of the rectangle
height - The height of the rectangle

setBounds

public void setBounds(GPoint pt,
                      GDimension size)
Sets the components of a GRectangle from the specified location and size.

Parameters:
pt - The location of the upper left corner of the rectangle
size - The dimensions of the rectangle

setBounds

public void setBounds(GRectangle bounds)
Sets the bounds of one GRectangle equal to that of another.

Parameters:
bounds - A GRectangle specifying the new bounds

setLocation

public void setLocation(double x,
                        double y)
Sets the location of the GRectangle to the specified x and y values.

Parameters:
x - The new x-coordinate for the rectangle
y - The new y-coordinate for the rectangle

setLocation

public void setLocation(GPoint pt)
Sets the location of the GRectangle to the specified point.

Parameters:
pt - The new location for the rectangle

setSize

public void setSize(double width,
                    double height)
Sets the size of the GRectangle to the specified values.

Parameters:
width - The new width of the rectangle
height - The new height of the rectangle

setSize

public void setSize(GDimension size)
Sets the size of the GRectangle to the specified dimension.

Parameters:
size - The new dimensions of the rectangle

toRectangle

public Rectangle toRectangle()
Converts this GRectangle to the nearest integer-based Rectangle.

Returns:
The closest integer-based Rectangle

toString

public String toString()
Converts this GRectangle to its string representation.

Overrides:
toString in class Object
Returns:
A string representation of this rectangle

translate

public void translate(double dx,
                      double dy)
Adjusts the coordinates of a rectangle by the specified dx and dy offsets.

Parameters:
dx - The change in the x direction (positive is rightward)
dy - The change in the y direction (positive is downward)

union

public GRectangle union(GRectangle r2)
Returns the smallest rectangle that contains both r1 and r2.

Parameters:
r2 - A second rectangle
Returns:
The union of this rectangle and r2