diff --git a/src/com/annimon/graphics/GraphicsExt.java b/src/com/annimon/graphics/GraphicsExt.java index 3842551..29c3e36 100644 --- a/src/com/annimon/graphics/GraphicsExt.java +++ b/src/com/annimon/graphics/GraphicsExt.java @@ -32,6 +32,10 @@ public class GraphicsExt { clip = null; } + public void setClip(Clip clip) { + this.clip = clip; + } + public void clip(double x, double y, double width, double height) { if (clip != null) clip.setClip(x, y, width, height); else clip = new Clip(x, y, width, height); @@ -80,7 +84,12 @@ public class GraphicsExt { public void line(Point from, Point to) { double[] p1 = transformMatrix.applyTransform(from.getVector3()); double[] p2 = transformMatrix.applyTransform(to.getVector3()); - g.drawLine(convertX(p1[0]), convertY(p1[1]), convertX(p2[0]), convertY(p2[1])); + if (clip != null) { + double[] coords = clip.clip(p1[0], p1[1], p2[0], p2[1]); + g.drawLine(convertX(coords[0]), convertY(coords[1]), convertX(coords[2]), convertY(coords[3])); + } else { + g.drawLine(convertX(p1[0]), convertY(p1[1]), convertX(p2[0]), convertY(p2[1])); + } } private int convertX(double x) {