math.geom2d.circulinear
Class CirculinearCurveSet2D<T extends CirculinearCurve2D>

Package class diagram package CirculinearCurveSet2D
java.lang.Object
  extended by math.geom2d.curve.CurveSet2D<T>
      extended by math.geom2d.curve.CurveArray2D<T>
          extended by math.geom2d.circulinear.CirculinearCurveSet2D<T>
All Implemented Interfaces:
Serializable, Cloneable, Iterable<T>, CirculinearCurve2D, CirculinearShape2D, Curve2D, Shape2D

public class CirculinearCurveSet2D<T extends CirculinearCurve2D>
extends CurveArray2D<T>
implements CirculinearCurve2D

An specialisation of CurveSet2D that accepts only instances of CirculinearCurve2D.

Author:
dlegland
See Also:
Serialized Form

Field Summary
 
Fields inherited from class math.geom2d.curve.CurveSet2D
curves
 
Fields inherited from interface math.geom2d.Shape2D
ACCURACY
 
Constructor Summary
CirculinearCurveSet2D()
          Empty constructor.
CirculinearCurveSet2D(Collection<? extends T> curves)
          Constructor from a collection of curves.
CirculinearCurveSet2D(int n)
          Empty constructor.
CirculinearCurveSet2D(T[] curves)
          Constructor from an array of curves.
 
Method Summary
 CirculinearCurveSet2D<? extends CirculinearCurve2D> clip(Box2D box)
          Clips a curve, and return a CurveArray2D.
 CirculinearDomain2D getBuffer(double dist)
          Computes the buffer of the shape, formed by the set of points located at a distance from the shape that is lower or equal to d.
 Collection<? extends CirculinearContinuousCurve2D> getContinuousCurves()
          Returns the collection of continuous curves which constitute this curve.
 double getLength()
           
 double getLength(double pos)
           
 CirculinearCurve2D getParallel(double d)
          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.
 double getPosition(double length)
           
 CirculinearCurveSet2D<? extends CirculinearCurve2D> getReverseCurve()
          Returns the curve with same trace on the plane with parametrization in reverse order.
 CirculinearCurveSet2D<? extends CirculinearCurve2D> getSubCurve(double t0, double t1)
          Return an instance of CurveArray2D.
 CirculinearCurveSet2D<CirculinearCurve2D> transform(CircleInversion2D inv)
          Transforms the shape by a circle inversion.
 
Methods inherited from class math.geom2d.curve.CurveArray2D
addCurve, clearCurves, clone, contains, contains, containsCurve, draw, equals, getAsAWTShape, getBoundingBox, getChildCurve, getCurve, getCurveIndex, getCurveNumber, getCurves, getDistance, getDistance, getFirstCurve, getFirstPoint, getGeneralPath, getGlobalPosition, getIntersections, getLastCurve, getLastPoint, getLocalPosition, getPoint, getPosition, getSingularPoints, getT0, getT1, isBounded, isEmpty, isSingular, iterator, project, removeCurve, transform
 
Methods inherited from class math.geom2d.curve.CurveSet2D
fromUnitSegment, toUnitSegment
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface math.geom2d.curve.Curve2D
clone, draw, getAsAWTShape, getFirstPoint, getIntersections, getLastPoint, getPoint, getPosition, getSingularPoints, getT0, getT1, isSingular, project, transform
 
Methods inherited from interface math.geom2d.Shape2D
contains, contains, getBoundingBox, getDistance, getDistance, isBounded, isEmpty
 

Constructor Detail

CirculinearCurveSet2D

public CirculinearCurveSet2D()
Empty constructor. Initializes an empty array of curves.


CirculinearCurveSet2D

public CirculinearCurveSet2D(int n)
Empty constructor. Initializes an empty array of curves, with a given size for allocating memory.


CirculinearCurveSet2D

public CirculinearCurveSet2D(T[] curves)
Constructor from an array of curves.

Parameters:
curves - the array of curves in the set

CirculinearCurveSet2D

public CirculinearCurveSet2D(Collection<? extends T> curves)
Constructor from a collection of curves. The curves are added to the inner collection of curves.

Parameters:
curves - the collection of curves to add to the set
Method Detail

getLength

public double getLength()
Specified by:
getLength in interface CirculinearCurve2D
Returns:
the length of the curve

getLength

public double getLength(double pos)
Specified by:
getLength in interface CirculinearCurve2D
Returns:
the length from the beginning to the position given by pos

getPosition

public double getPosition(double length)
Specified by:
getPosition in interface CirculinearCurve2D
Returns:
the position located at distance 'length' from the origin

getBuffer

public CirculinearDomain2D getBuffer(double dist)
Description copied from interface: CirculinearShape2D
Computes the buffer of the shape, formed by the set of points located at a distance from the shape that is lower or equal to d.

Specified by:
getBuffer in interface CirculinearShape2D
Parameters:
dist - the maximal distance between a point of the buffer and the shape
Returns:
the buffer of the shape

getParallel

public CirculinearCurve2D getParallel(double d)
Description copied from interface: CirculinearCurve2D
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.

Specified by:
getParallel in interface CirculinearCurve2D
Parameters:
d - the distance between the original curve and he parallel curve.
Returns:
the parallel curve

transform

public CirculinearCurveSet2D<CirculinearCurve2D> transform(CircleInversion2D inv)
Description copied from interface: CirculinearShape2D
Transforms the shape by a circle inversion. The result is still an instance a CirculinearShape2D.

Specified by:
transform in interface CirculinearCurve2D
Specified by:
transform in interface CirculinearShape2D
Parameters:
inv - the circle inversion
Returns:
the transformed shape

getContinuousCurves

public Collection<? extends CirculinearContinuousCurve2D> getContinuousCurves()
Description copied from interface: Curve2D
Returns the collection of continuous curves which constitute this curve.

Specified by:
getContinuousCurves in interface CirculinearCurve2D
Specified by:
getContinuousCurves in interface Curve2D
Overrides:
getContinuousCurves in class CurveArray2D<T extends CirculinearCurve2D>
Returns:
a collection of continuous curves.

clip

public CirculinearCurveSet2D<? extends CirculinearCurve2D> clip(Box2D box)
Description copied from class: CurveArray2D
Clips a curve, and return a CurveArray2D. If the curve is totally outside the box, return a CurveArray2D with 0 curves inside. If the curve is totally inside the box, return a CurveArray2D with only one curve, which is the original curve.

Specified by:
clip in interface CirculinearCurve2D
Specified by:
clip in interface Curve2D
Specified by:
clip in interface Shape2D
Overrides:
clip in class CurveArray2D<T extends CirculinearCurve2D>
Parameters:
box - the clipping box
Returns:
the clipped shape

getSubCurve

public CirculinearCurveSet2D<? extends CirculinearCurve2D> getSubCurve(double t0,
                                                                       double t1)
Description copied from class: CurveArray2D
Return an instance of CurveArray2D.

Specified by:
getSubCurve in interface CirculinearCurve2D
Specified by:
getSubCurve in interface Curve2D
Overrides:
getSubCurve in class CurveArray2D<T extends CirculinearCurve2D>
Parameters:
t0 - position of the start of the sub-curve
t1 - position of the end of the sub-curve
Returns:
the portion of original curve comprised between t0 and t1.

getReverseCurve

public CirculinearCurveSet2D<? extends CirculinearCurve2D> getReverseCurve()
Description copied from interface: Curve2D
Returns the curve with same trace on the plane with parametrization in reverse order.

Specified by:
getReverseCurve in interface CirculinearCurve2D
Specified by:
getReverseCurve in interface Curve2D
Overrides:
getReverseCurve in class CurveArray2D<T extends CirculinearCurve2D>


Copyright © 2012 AMIS research group, Faculty of Mathematics and Physics, Charles University in Prague, Czech Republic. All Rights Reserved.