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