math.geom2d.polygon
Class Rectangle2D

Package class diagram package Rectangle2D
java.lang.Object
  extended by math.geom2d.polygon.Rectangle2D
All Implemented Interfaces:
Serializable, CirculinearDomain2D, CirculinearShape2D, Domain2D, Polygon2D, Shape2D

public class Rectangle2D
extends Object
implements Polygon2D

Rectangle2D defines a rectangle rotated around its first corner.

See Also:
Serialized Form

Field Summary
protected  double h
           
protected  double theta
           
protected  double w
           
protected  double x0
           
protected  double y0
           
 
Fields inherited from interface math.geom2d.Shape2D
ACCURACY
 
Constructor Summary
Rectangle2D()
          Empty contructor (size and position zero)
Rectangle2D(double x0, double y0, double w, double h)
          Main constructor
Rectangle2D(double x0, double y0, double w, double h, double theta)
          Main constructor
Rectangle2D(Point2D point, double w, double h)
          Main constructor
Rectangle2D(Point2D point, double w, double h, double theta)
          Main constructor
Rectangle2D(Rectangle2D rect)
          Constructor from awt, to allow easy construction from existing apps.
 
Method Summary
 Domain2D clip(Box2D box)
          Return the clipped polygon.
 Polygon2D complement()
          Returns the complementary polygon.
 boolean contains(double x, double y)
          Checks if the shape contains the planar point defined by (x,y).
 boolean contains(Point2D point)
          This method simply invoke ancestor method.
 void draw(Graphics2D g2)
          Draw the shape on the given graphics.
 boolean equals(Object obj)
          Test if retangles are the same.
 void fill(Graphics2D g)
          Fills the interior of the domain, using the Graphics current Paint.
 CirculinearBoundarySet2D<LinearRing2D> getBoundary()
          Returns the boundary of the set.
 Box2D getBoundingBox()
          Return bounding box of the rectangle.
 CirculinearDomain2D getBuffer(double dist)
          Computes the buffer of the shape, formed by the set of points located at a distance from the shape that is lower or equal to d.
 double getDistance(double x, double y)
          get the distance of the shape to the given point, specified by x and y, or the distance of point to the frontier of the shape in the case of a plain (i.e. fillable) shape.
 double getDistance(Point2D p)
          get the distance of the shape to the given point, or the distance of point to the frontier of the shape in the case of a plain shape.
 int getEdgeNumber()
          Returns the number of edges of the polygon
 Collection<LineSegment2D> getEdges()
          Return the edges as line segments of the polygon
 double getHeight()
           
 Collection<LinearRing2D> getRings()
          Returns the set of rings comprising the boundary of this polygon.
 double getSignedDistance(double x, double y)
          Get the signed distance of the shape to the given point : this distance is positive if the point lies outside the shape, and is negative if the point lies inside the shape.
 double getSignedDistance(Point2D p)
          Get the signed distance of the shape to the given point : this distance is positive if the point lies outside the shape, and is negative if the point lies inside the shape.
 double getTheta()
           
 Point2D getVertex(int i)
          Returns the i-th vertex of the polygon.
 int getVertexNumber()
          Return the number of vertices of the rectangle, which is 4.
 Collection<Point2D> getVertices()
          Returns the vertices of the rectangle as a collection of points.
 double getWidth()
           
 double getX()
           
 double getY()
           
 boolean isBounded()
          Always returns true, because a rectangle is always bounded.
 boolean isEmpty()
          Returns true if the shape does not contain any point.
 void setRectangle(double x, double y, double width, double height, double theta)
          Apply the characteristics of the given Rectangle to this object.
 void setRectangle(Rectangle2D rect)
          Apply the characteristics of the given Rectangle to this object.
 void setRectangle(Rectangle2D rect)
          Apply the characteristics of the given Rectangle to this object.
 SimplePolygon2D transform(AffineTransform2D trans)
          Return the new Polygon created by an affine transform of this polygon.
 CirculinearDomain2D transform(CircleInversion2D inv)
          Transforms the shape by a circle inversion.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

x0

protected double x0

y0

protected double y0

w

protected double w

h

protected double h

theta

protected double theta
Constructor Detail

Rectangle2D

public Rectangle2D(double x0,
                   double y0,
                   double w,
                   double h,
                   double theta)
Main constructor


Rectangle2D

public Rectangle2D()
Empty contructor (size and position zero)


Rectangle2D

public Rectangle2D(Rectangle2D rect)
Constructor from awt, to allow easy construction from existing apps.


Rectangle2D

public Rectangle2D(double x0,
                   double y0,
                   double w,
                   double h)
Main constructor


Rectangle2D

public Rectangle2D(Point2D point,
                   double w,
                   double h,
                   double theta)
Main constructor


Rectangle2D

public Rectangle2D(Point2D point,
                   double w,
                   double h)
Main constructor

Method Detail

getX

public double getX()

getY

public double getY()

getWidth

public double getWidth()

getHeight

public double getHeight()

getTheta

public double getTheta()

setRectangle

public void setRectangle(Rectangle2D rect)
Apply the characteristics of the given Rectangle to this object.


setRectangle

public void setRectangle(Rectangle2D rect)
Apply the characteristics of the given Rectangle to this object.


setRectangle

public void setRectangle(double x,
                         double y,
                         double width,
                         double height,
                         double theta)
Apply the characteristics of the given Rectangle to this object.


getVertices

public Collection<Point2D> getVertices()
Returns the vertices of the rectangle as a collection of points.

Specified by:
getVertices in interface Polygon2D
Returns:
the vertices of the rectangle.

getVertex

public Point2D getVertex(int i)
Returns the i-th vertex of the polygon.

Specified by:
getVertex in interface Polygon2D
Parameters:
i - index of the vertex, between 0 and 3

getVertexNumber

public int getVertexNumber()
Return the number of vertices of the rectangle, which is 4.

Specified by:
getVertexNumber in interface Polygon2D
Since:
0.6.3

getEdges

public Collection<LineSegment2D> getEdges()
Description copied from interface: Polygon2D
Return the edges as line segments of the polygon

Specified by:
getEdges in interface Polygon2D

getEdgeNumber

public int getEdgeNumber()
Description copied from interface: Polygon2D
Returns the number of edges of the polygon

Specified by:
getEdgeNumber in interface Polygon2D

getRings

public Collection<LinearRing2D> getRings()
Description copied from interface: Polygon2D
Returns the set of rings comprising the boundary of this polygon.

Specified by:
getRings in interface Polygon2D
Returns:
the set of boundary rings.

transform

public CirculinearDomain2D transform(CircleInversion2D inv)
Description copied from interface: CirculinearShape2D
Transforms the shape by a circle inversion. The result is still an instance a CirculinearShape2D.

Specified by:
transform in interface CirculinearDomain2D
Specified by:
transform in interface CirculinearShape2D
Parameters:
inv - the circle inversion
Returns:
the transformed shape

getBuffer

public CirculinearDomain2D getBuffer(double dist)
Description copied from interface: CirculinearShape2D
Computes the buffer of the shape, formed by the set of points located at a distance from the shape that is lower or equal to d.

Specified by:
getBuffer in interface CirculinearShape2D
Parameters:
dist - the maximal distance between a point of the buffer and the shape
Returns:
the buffer of the shape

getBoundary

public CirculinearBoundarySet2D<LinearRing2D> getBoundary()
Description copied from interface: Domain2D
Returns the boundary of the set. This boundary is either a continuous non intersecting curve (connected domain), or a set of non intersecting continuous curve (one continuous non-intersection for each connected part of the domain).

The returned curve is oriented, with an interior and an exterior.

Specified by:
getBoundary in interface CirculinearDomain2D
Specified by:
getBoundary in interface Domain2D
Specified by:
getBoundary in interface Polygon2D
Returns:
the boundary of the domain

complement

public Polygon2D complement()
Description copied from interface: Polygon2D
Returns the complementary polygon.

Specified by:
complement in interface Domain2D
Specified by:
complement in interface Polygon2D
Returns:
the polygon complementary to this

isBounded

public boolean isBounded()
Always returns true, because a rectangle is always bounded.

Specified by:
isBounded in interface Shape2D

isEmpty

public boolean isEmpty()
Description copied from interface: Shape2D
Returns true if the shape does not contain any point. This is the case for example for PointSet2D without any point.

Specified by:
isEmpty in interface Shape2D
Returns:
true if the shape does not contain any point.

getDistance

public double getDistance(Point2D p)
Description copied from interface: Shape2D
get the distance of the shape to the given point, or the distance of point to the frontier of the shape in the case of a plain shape.

Specified by:
getDistance in interface Shape2D

getDistance

public double getDistance(double x,
                          double y)
Description copied from interface: Shape2D
get the distance of the shape to the given point, specified by x and y, or the distance of point to the frontier of the shape in the case of a plain (i.e. fillable) shape.

Specified by:
getDistance in interface Shape2D

getSignedDistance

public double getSignedDistance(Point2D p)
Get the signed distance of the shape to the given point : this distance is positive if the point lies outside the shape, and is negative if the point lies inside the shape. In this case, absolute value of distance is equals to the distance to the border of the shape.


getSignedDistance

public double getSignedDistance(double x,
                                double y)
Get the signed distance of the shape to the given point : this distance is positive if the point lies outside the shape, and is negative if the point lies inside the shape. In this case, absolute value of distance is equals to the distance to the border of the shape.


clip

public Domain2D clip(Box2D box)
Return the clipped polygon.

Specified by:
clip in interface Domain2D
Specified by:
clip in interface Shape2D
Parameters:
box - the clipping box
Returns:
the clipped shape

getBoundingBox

public Box2D getBoundingBox()
Return bounding box of the rectangle.

Specified by:
getBoundingBox in interface Shape2D
Returns:
the bounding box of the shape.

transform

public SimplePolygon2D transform(AffineTransform2D trans)
Return the new Polygon created by an affine transform of this polygon.

Specified by:
transform in interface Domain2D
Specified by:
transform in interface Polygon2D
Specified by:
transform in interface Shape2D
Parameters:
trans - an affine transform
Returns:
the transformed shape

contains

public boolean contains(Point2D point)
This method simply invoke ancestor method. It is redefined to avoid ambiguity with contains(Shape2D).

Specified by:
contains in interface Shape2D

contains

public boolean contains(double x,
                        double y)
Description copied from interface: Shape2D
Checks if the shape contains the planar point defined by (x,y).

Specified by:
contains in interface Shape2D

draw

public void draw(Graphics2D g2)
Description copied from interface: Shape2D
Draw the shape on the given graphics. If the shape is empty, nothing is drawn. If the shape is unbounded, an exception is thrown.

Specified by:
draw in interface Domain2D
Specified by:
draw in interface Shape2D
Parameters:
g2 - the Graphics to draw on

fill

public void fill(Graphics2D g)
Description copied from interface: Domain2D
Fills the interior of the domain, using the Graphics current Paint.

Specified by:
fill in interface Domain2D
Parameters:
g - the Graphics to fill on

equals

public boolean equals(Object obj)
Test if retangles are the same. We consider two rectangles are equals if their corners are the same. Then, we can have different origin and different angles, but equal rectangles.

Overrides:
equals in class Object


Copyright © 2012 AMIS research group, Faculty of Mathematics and Physics, Charles University in Prague, Czech Republic. All Rights Reserved.