Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/apache/batik/ext/awt/geom/ShapeExtender.java


1   /*
2   
3      Copyright 1999-2003  The Apache Software Foundation 
4   
5      Licensed under the Apache License, Version 2.0 (the "License");
6      you may not use this file except in compliance with the License.
7      You may obtain a copy of the License at
8   
9          http://www.apache.org/licenses/LICENSE-2.0
10  
11     Unless required by applicable law or agreed to in writing, software
12     distributed under the License is distributed on an "AS IS" BASIS,
13     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14     See the License for the specific language governing permissions and
15     limitations under the License.
16  
17  */
18  
19  package org.apache.batik.ext.awt.geom;
20  
21  import java.awt.Rectangle;
22  import java.awt.Shape;
23  import java.awt.geom.AffineTransform;
24  import java.awt.geom.PathIterator;
25  import java.awt.geom.Point2D;
26  import java.awt.geom.Rectangle2D;
27  
28  /**
29   * This class wraps a normal path into an extended path.
30   * @author <a href="mailto:deweese@apache.org">Thomas DeWeese</a>
31   * @version $Id: ShapeExtender.java,v 1.5 2004/10/30 18:38:05 deweese Exp $
32   */
33  public class ShapeExtender implements ExtendedShape {
34      Shape shape;
35  
36      public ShapeExtender(Shape shape) {
37          this.shape = shape;
38      }
39  
40      public boolean contains(double x, double y) {
41          return shape.contains(x, y);
42      }
43      public boolean contains(double x, double y, double w, double h) {
44          return shape.contains(x, y, w, h);
45      }
46  
47      public boolean contains(Point2D p) {
48          return shape.contains(p);
49      }
50  
51      public boolean contains(Rectangle2D r) {
52          return shape.contains(r);
53      }
54  
55      public Rectangle getBounds() {
56          return shape.getBounds();
57      }
58  
59      public Rectangle2D getBounds2D() {
60          return shape.getBounds2D();
61      }
62  
63      public PathIterator getPathIterator(AffineTransform at) {
64          return shape.getPathIterator(at);
65      }
66  
67      public PathIterator getPathIterator(AffineTransform at, double flatness) {
68          return shape.getPathIterator(at, flatness);
69      }
70  
71      public ExtendedPathIterator getExtendedPathIterator() {
72          return new EPIWrap(shape.getPathIterator(null));
73      }
74  
75      public boolean intersects(double x, double y, double w, double h) {
76          return shape.intersects(x, y, w, h);
77      }
78  
79      public boolean intersects(Rectangle2D r) {
80          return shape.intersects(r);
81      }
82  
83  
84      public static class EPIWrap implements ExtendedPathIterator {
85          PathIterator pi = null;
86          public EPIWrap(PathIterator pi) {
87              this.pi = pi;
88          }
89  
90          public int currentSegment(double[] coords) { 
91              return pi.currentSegment(coords); }
92  
93          public int currentSegment(float[] coords) {
94              return pi.currentSegment(coords); }
95  
96          public int getWindingRule() {
97              return pi.getWindingRule();
98          }
99  
100         public boolean isDone() {
101             return pi.isDone(); }
102 
103         public void next() {
104             pi.next();
105         }
106     }
107 }