View Javadoc

1   /**
2   
3    * File: 	PointSet2D.java
4    * Project: javaGeom
5    * 
6    * Distributed under the LGPL License.
7    *
8    * Created: 4 feb. 09
9    */
10  package math.geom2d.point;
11  
12  import java.util.Collection;
13  
14  import math.geom2d.AffineTransform2D;
15  import math.geom2d.Box2D;
16  import math.geom2d.Point2D;
17  
18  
19  /**
20   * A set of points. All points within the set are instances of Point2D.
21   * The most direct implementation of PointSet2D is PointArray2D.
22   * @author dlegland
23   *
24   */
25  public interface PointSet2D extends PointShape2D, Iterable<Point2D> {
26  
27      /**
28       * Adds a new point to the point set. If point is not an instance of
29       * Point2D, a Point2D with same location is added instead of point.
30       * 
31       * @param point the initial point in the set
32       */
33      public void addPoint(java.awt.geom.Point2D point);
34  
35      /**
36       * Add a series of points
37       * 
38       * @param points an array of points
39       */
40      public void addPoints(Collection<? extends Point2D> points);
41  
42      /**
43       * Returns an iterator on the internal point collection.
44       * 
45       * @return the collection of points
46       */
47      public Collection<Point2D> getPoints();
48  
49      /**
50       * Returns the number of points in the set.
51       * 
52       * @return the number of points
53       */
54      public int getPointNumber();
55      
56      /**
57       * Transforms the point set by returning a new point set containing each 
58       * transformed point.
59       */
60      public abstract PointSet2D transform(AffineTransform2D trans);
61      
62      /**
63       * Returns a new point set containing only points located within the box.
64       */
65      public abstract PointSet2D clip(Box2D box);
66  }