001    package nl.cwi.sen1.gui.plugin.prefusedot;
002    
003    import java.awt.Rectangle;
004    import java.awt.Shape;
005    import java.awt.geom.AffineTransform;
006    import java.awt.geom.PathIterator;
007    import java.awt.geom.Point2D;
008    import java.awt.geom.Rectangle2D;
009    
010    public class DotShape implements Shape {
011            private Shape outer;
012            private Shape inner;
013    
014            public DotShape(Shape inner, Shape outer) {
015                    this.inner = inner;
016                    this.outer = outer;
017            }
018            
019            public Shape getInnerShape() {
020                    return inner;
021            }
022            
023            public Shape getOuterShape() {
024                    return outer;
025            }
026            
027            public boolean contains(double x, double y) {
028                    return outer.contains(x,y);
029            }
030    
031            public boolean contains(double x, double y, double w, double h) {
032                    return outer.contains(x,y,w,h);
033            }
034    
035            public boolean intersects(double x, double y, double w, double h) {
036                    return outer.intersects(x,y,w,h);
037            }
038    
039            public Rectangle getBounds() {
040                    return outer.getBounds();
041            }
042    
043            public boolean contains(Point2D p) {
044                    return outer.contains(p);
045            }
046    
047            public Rectangle2D getBounds2D() {
048                    return outer.getBounds2D();
049            }
050    
051            public boolean contains(Rectangle2D r) {
052                    return outer.contains(r);
053            }
054    
055            public boolean intersects(Rectangle2D r) {
056                    return outer.intersects(r);
057            }
058    
059            public PathIterator getPathIterator(AffineTransform at) {
060                    return outer.getPathIterator(at);
061            }
062    
063            public PathIterator getPathIterator(AffineTransform at, double flatness) {
064                    return outer.getPathIterator(at, flatness);
065            }
066    
067    }