1 /**
2 * File: CirculinearShape2D.java
3 * Project: javaGeom
4 *
5 * Distributed under the LGPL License.
6 *
7 * Created: 10 mai 09
8 */
9 package math.geom2d.circulinear;
10
11 import math.geom2d.Shape2D;
12 import math.geom2d.transform.CircleInversion2D;
13
14
15 /**
16 * CirculinearShape comprises shapes which can be described from lines (or
17 * linear shapes) and circles (or circle arcs). They allow several operations:
18 * the computation of buffer (set of points located less than a given
19 * distance), and transformation using a circle inversion.
20 * @author dlegland
21 *
22 */
23 public interface CirculinearShape2D extends Shape2D {
24
25 /**
26 * Computes the buffer of the shape, formed by the set of points located
27 * at a distance from the shape that is lower or equal to d.
28 * @param dist the maximal distance between a point of the buffer and the
29 * shape
30 * @return the buffer of the shape
31 */
32 public CirculinearDomain2D getBuffer(double dist);
33
34 /**
35 * Transforms the shape by a circle inversion. The result is still an
36 * instance a CirculinearShape2D.
37 * @param inv the circle inversion
38 * @return the transformed shape
39 */
40 public Shape2D transform(CircleInversion2D inv);
41 }