1 /** 2 * File: PointShape2D.java 3 * Project: javaGeom 4 * 5 * Distributed under the LGPL License. 6 * 7 * Created: 6 feb. 09 8 */ 9 package math.geom2d.point; 10 11 import java.util.Collection; 12 13 import math.geom2d.AffineTransform2D; 14 import math.geom2d.Box2D; 15 import math.geom2d.Point2D; 16 import math.geom2d.circulinear.CirculinearShape2D; 17 18 19 /** 20 * Interface for shapes composed of a finite set of points. Single points 21 * should also implements this interface. Implementations of this interface 22 * can contains duplicate points. 23 * @author dlegland 24 * 25 */ 26 public interface PointShape2D extends CirculinearShape2D, Iterable<Point2D> { 27 28 /** 29 * Returns the points in the shape as a collection. 30 * 31 * @return the collection of points 32 */ 33 public Collection<Point2D> getPoints(); 34 35 /** 36 * Returns the number of points in the set. 37 * 38 * @return the number of points 39 */ 40 public int getPointNumber(); 41 42 /** 43 * Transforms the point shape by an affine transform. 44 * The result is an instance of PointShape2D. 45 */ 46 public abstract PointShape2D transform(AffineTransform2D trans); 47 48 /** 49 * When a PointShape2D is clipped, the result is still a PointShape2D. 50 */ 51 public abstract PointShape2D clip(Box2D box); 52 }