public class LineClip extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
private java.awt.Rectangle |
clipBounds |
private java.awt.Point |
p1 |
private java.awt.Point |
p2 |
| Constructor and Description |
|---|
LineClip(java.awt.Point p1,
java.awt.Point p2,
java.awt.Rectangle clipBounds)
Constructs a new
LineClip. |
| Modifier and Type | Method and Description |
|---|---|
private boolean |
cohenSutherland(long x1,
long y1,
long x2,
long y2,
long xmin,
long ymin,
long xmax,
long ymax)
Cohen–Sutherland algorithm.
|
private static int |
computeOutCode(long x,
long y,
long xmin,
long ymin,
long xmax,
long ymax)
The outcode of the point.
|
boolean |
execute()
run the clipping algorithm
|
java.awt.Point |
getP1() |
java.awt.Point |
getP2() |
private java.awt.Point p1
private java.awt.Point p2
private final java.awt.Rectangle clipBounds
public LineClip(java.awt.Point p1, java.awt.Point p2, java.awt.Rectangle clipBounds)
LineClip.p1 - start point of the clipped linep2 - end point of the clipped lineclipBounds - Clip boundspublic boolean execute()
public java.awt.Point getP1()
public java.awt.Point getP2()
private boolean cohenSutherland(long x1, long y1, long x2, long y2, long xmin, long ymin, long xmax, long ymax)
x1 - X coordinate of first pointy1 - Y coordinate of first pointx2 - X coordinate of second pointy2 - Y coordinate of second pointxmin - minimal X coordinateymin - minimal Y coordinatexmax - maximal X coordinateymax - maximal Y coordinateprivate static int computeOutCode(long x, long y, long xmin, long ymin, long xmax, long ymax)
Rectangle.outcode(double, double) since it does not work with long ints.x - X coordinatey - Y coordinatexmin - minimal X coordinateymin - minimal Y coordinatexmax - maximal X coordinateymax - maximal Y coordinate