/**
 * File: 	CirculinearCurve2D.java
 * Project: javaGeom
 * 
 * Distributed under the LGPL License.
 *
 * Created: 11 mai 09
 */
package math.geom2d.circulinear;

import java.util.Collection;

import math.geom2d.Box2D;
import math.geom2d.curve.Curve2D;
import math.geom2d.curve.CurveSet2D;
import math.geom2d.transform.CircleInversion2D;


/**
 * 

* Circulinear curve are composed of linear and/or circular elements. * Linear elements are line segments, straight lines, rays... * Circular elements are circles and circle arcs.

*

* Circulinear curves provide a convenient way to store result of geometric * operation like buffer computation. Moreover, the set of circulinear curves * is stable with respect to circle inversion.

* @author dlegland * */ public interface CirculinearCurve2D extends CirculinearShape2D, Curve2D { /** * @return the length of the curve */ public double length(); /** * @return the length from the beginning to the position given by pos */ public double length(double pos); /** * @return the position located at a given geodesic distance from the * origin */ public double position(double distance); /** * Creates a new curve, formed by the points with parameterization: * p(t) = c(t) + d*n(t)/|n(t)|, with p(t) being a point of * the original curve, n(t) the normal of the curve, and |n| being the * norm of n.
* In the case of a continuous curve formed by several smooth circulinear * elements, the parallels of contiguous elements are joined by a circle * arc. * @param d the distance between the original curve and he parallel curve. * @return the parallel curve */ public CirculinearCurve2D parallel(double d); // =================================================================== // redefines declaration of some parent interfaces public CirculinearCurve2D transform(CircleInversion2D inv); /** * Returns the collection of continuous circulinear curves which * constitute this curve. * * @return a collection of continuous circulinear curves. */ public Collection continuousCurves(); public CurveSet2D clip(Box2D box); public CirculinearCurve2D subCurve(double t0, double t1); public CirculinearCurve2D reverse(); }

Ads help maintain this website.