math.geom2d.circulinear
Class BoundaryPolyCirculinearCurve2D<T extends CirculinearContinuousCurve2D>
- java.lang.Object
-
- math.geom2d.curve.CurveArray2D<T>
-
- math.geom2d.curve.PolyCurve2D<T>
-
- math.geom2d.domain.PolyOrientedCurve2D<T>
-
- math.geom2d.circulinear.PolyCirculinearCurve2D<T>
-
- math.geom2d.circulinear.BoundaryPolyCirculinearCurve2D<T>
-
- All Implemented Interfaces:
- java.lang.Cloneable, java.lang.Iterable<T>, CirculinearBoundary2D, CirculinearContinuousCurve2D, CirculinearContour2D, CirculinearCurve2D, CirculinearShape2D, ContinuousCurve2D, Curve2D, CurveSet2D<T>, Boundary2D, ContinuousOrientedCurve2D, Contour2D, OrientedCurve2D, GeometricObject2D, Shape2D, ShapeSet2D<T>
public class BoundaryPolyCirculinearCurve2D<T extends CirculinearContinuousCurve2D> extends PolyCirculinearCurve2D<T> implements CirculinearContinuousCurve2D, CirculinearContour2D
A continuous boundary which is composed of several continuous circulinear curves. Instances of this class can be circulinear rings (composed of several continuous and finite circulinear curves that form a loop), or an open curve with two infinite circulinear curve at each extremity.
-
-
Constructor Summary
Constructors Constructor and Description BoundaryPolyCirculinearCurve2D()BoundaryPolyCirculinearCurve2D(java.util.Collection<? extends T> curves)BoundaryPolyCirculinearCurve2D(java.util.Collection<? extends T> curves, boolean closed)BoundaryPolyCirculinearCurve2D(int size)BoundaryPolyCirculinearCurve2D(T[] curves)BoundaryPolyCirculinearCurve2D(T[] curves, boolean closed)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and Description CirculinearCurveSet2D<? extends CirculinearContinuousCurve2D>clip(Box2D box)Clips the PolyCurve2D by a box.java.util.Collection<? extends BoundaryPolyCirculinearCurve2D<?>>continuousCurves()Returns a collection of PolyCurve2D that contains only this instance.static <T extends CirculinearContinuousCurve2D>
BoundaryPolyCirculinearCurve2D<T>create(T... curves)Static factory for creating a new BoundaryPolyCirculinearCurve2D from an array of curves.static <T extends CirculinearContinuousCurve2D>
BoundaryPolyCirculinearCurve2D<T>create(T[] curves, boolean closed)Static factory for creating a new BoundaryPolyCirculinearCurve2D from an array of curves.static <T extends CirculinearContinuousCurve2D>
BoundaryPolyCirculinearCurve2D<T>createClosed(T... curves)Static factory for creating a new BoundaryPolyCirculinearCurve2D from an array of curves.CirculinearDomain2Ddomain()Returns the domain delimited by this boundary.voidfill(java.awt.Graphics2D g2)Fills the interior of the boundary, using the Graphics current Paint.doublelength()doublelength(double pos)CirculinearRing2Dparallel(double dist)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.doubleposition(double length)BoundaryPolyCirculinearCurve2D<? extends CirculinearContinuousCurve2D>reverse()Returns the reverse curve of this PolyCurve2D.java.util.Collection<? extends CirculinearElement2D>smoothPieces()Returns a collection containing only instances of SmoothCurve2D.PolyCirculinearCurve2D<? extends CirculinearContinuousCurve2D>subCurve(double t0, double t1)Returns a portion of this curve as an instance of PolyOrientedCurve2D.BoundaryPolyCurve2D<? extends ContinuousOrientedCurve2D>transform(AffineTransform2D trans)Transforms each smooth piece in this PolyCurve2D and returns a new instance of PolyCurve2D.BoundaryPolyCirculinearCurve2D<? extends CirculinearContinuousCurve2D>transform(CircleInversion2D inv)Transforms the shape by a circle inversion.-
Methods inherited from class math.geom2d.circulinear.PolyCirculinearCurve2D
buffer
-
Methods inherited from class math.geom2d.domain.PolyOrientedCurve2D
equals, isInside, signedDistance, signedDistance, windingAngle
-
Methods inherited from class math.geom2d.curve.PolyCurve2D
appendPath, asPolyline, create, curvature, draw, getGeneralPath, isClosed, leftTangent, rightTangent, setClosed
-
Methods inherited from class math.geom2d.curve.CurveArray2D
add, add, almostEquals, asAwtShape, boundingBox, childCurve, clear, clone, contains, contains, contains, create, curveIndex, curves, distance, distance, firstCurve, firstPoint, get, getT0, getT1, globalPosition, indexOf, intersections, isBounded, isEmpty, isSingular, iterator, lastCurve, lastPoint, localPosition, point, position, project, remove, remove, singularPoints, size, t0, t1, vertices
-
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface math.geom2d.curve.ContinuousCurve2D
appendPath, asPolyline, curvature, isClosed, leftTangent, rightTangent
-
Methods inherited from interface math.geom2d.circulinear.CirculinearShape2D
buffer
-
Methods inherited from interface math.geom2d.domain.Boundary2D
isInside
-
Methods inherited from interface math.geom2d.domain.OrientedCurve2D
signedDistance, signedDistance, windingAngle
-
-
-
-
Constructor Detail
-
BoundaryPolyCirculinearCurve2D
public BoundaryPolyCirculinearCurve2D()
-
BoundaryPolyCirculinearCurve2D
public BoundaryPolyCirculinearCurve2D(int size)
-
BoundaryPolyCirculinearCurve2D
public BoundaryPolyCirculinearCurve2D(T[] curves)
-
BoundaryPolyCirculinearCurve2D
public BoundaryPolyCirculinearCurve2D(T[] curves, boolean closed)
-
BoundaryPolyCirculinearCurve2D
public BoundaryPolyCirculinearCurve2D(java.util.Collection<? extends T> curves)
-
BoundaryPolyCirculinearCurve2D
public BoundaryPolyCirculinearCurve2D(java.util.Collection<? extends T> curves, boolean closed)
-
-
Method Detail
-
create
public static <T extends CirculinearContinuousCurve2D> BoundaryPolyCirculinearCurve2D<T> create(T... curves)
Static factory for creating a new BoundaryPolyCirculinearCurve2D from an array of curves.- Since:
- 0.8.1
-
create
public static <T extends CirculinearContinuousCurve2D> BoundaryPolyCirculinearCurve2D<T> create(T[] curves, boolean closed)
Static factory for creating a new BoundaryPolyCirculinearCurve2D from an array of curves.- Since:
- 0.8.1
-
createClosed
public static <T extends CirculinearContinuousCurve2D> BoundaryPolyCirculinearCurve2D<T> createClosed(T... curves)
Static factory for creating a new BoundaryPolyCirculinearCurve2D from an array of curves.- Since:
- 0.8.1
-
length
public double length()
- Specified by:
lengthin interfaceCirculinearCurve2D- Overrides:
lengthin classPolyCirculinearCurve2D<T extends CirculinearContinuousCurve2D>- Returns:
- the length of the curve
-
length
public double length(double pos)
- Specified by:
lengthin interfaceCirculinearCurve2D- Overrides:
lengthin classPolyCirculinearCurve2D<T extends CirculinearContinuousCurve2D>- Returns:
- the length from the beginning to the position given by pos
-
position
public double position(double length)
- Specified by:
positionin interfaceCirculinearCurve2D- Overrides:
positionin classPolyCirculinearCurve2D<T extends CirculinearContinuousCurve2D>- Returns:
- the position located at a given geodesic distance from the origin
-
parallel
public CirculinearRing2D parallel(double dist)
Description copied from interface:CirculinearCurve2DCreates 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:
parallelin interfaceCirculinearBoundary2D- Specified by:
parallelin interfaceCirculinearContinuousCurve2D- Specified by:
parallelin interfaceCirculinearContour2D- Specified by:
parallelin interfaceCirculinearCurve2D- Overrides:
parallelin classPolyCirculinearCurve2D<T extends CirculinearContinuousCurve2D>- Parameters:
dist- the distance between the original curve and he parallel curve.- Returns:
- the parallel curve
-
transform
public BoundaryPolyCirculinearCurve2D<? extends CirculinearContinuousCurve2D> transform(CircleInversion2D inv)
Description copied from interface:CirculinearShape2DTransforms the shape by a circle inversion. The result is still an instance a CirculinearShape2D.- Specified by:
transformin interfaceCirculinearBoundary2D- Specified by:
transformin interfaceCirculinearContinuousCurve2D- Specified by:
transformin interfaceCirculinearContour2D- Specified by:
transformin interfaceCirculinearCurve2D- Specified by:
transformin interfaceCirculinearShape2D- Overrides:
transformin classPolyCirculinearCurve2D<T extends CirculinearContinuousCurve2D>- Parameters:
inv- the circle inversion- Returns:
- the transformed shape
-
fill
public void fill(java.awt.Graphics2D g2)
Description copied from interface:Boundary2DFills the interior of the boundary, using the Graphics current Paint.- Specified by:
fillin interfaceBoundary2D- Parameters:
g2- the Graphics to fill on
-
domain
public CirculinearDomain2D domain()
Description copied from interface:Boundary2DReturns the domain delimited by this boundary.- Specified by:
domainin interfaceCirculinearBoundary2D- Specified by:
domainin interfaceBoundary2D- Returns:
- the domain delimited by this boundary
-
smoothPieces
public java.util.Collection<? extends CirculinearElement2D> smoothPieces()
Description copied from class:PolyCurve2DReturns a collection containing only instances of SmoothCurve2D.- Specified by:
smoothPiecesin interfaceCirculinearContinuousCurve2D- Specified by:
smoothPiecesin interfaceContinuousCurve2D- Overrides:
smoothPiecesin classPolyCirculinearCurve2D<T extends CirculinearContinuousCurve2D>- Returns:
- a collection of SmoothCurve2D
-
continuousCurves
public java.util.Collection<? extends BoundaryPolyCirculinearCurve2D<?>> continuousCurves()
Description copied from class:PolyCurve2DReturns a collection of PolyCurve2D that contains only this instance.- Specified by:
continuousCurvesin interfaceCirculinearBoundary2D- Specified by:
continuousCurvesin interfaceCirculinearCurve2D- Specified by:
continuousCurvesin interfaceCurve2D- Specified by:
continuousCurvesin interfaceBoundary2D- Overrides:
continuousCurvesin classPolyCirculinearCurve2D<T extends CirculinearContinuousCurve2D>- Returns:
- a collection of continuous curves.
-
reverse
public BoundaryPolyCirculinearCurve2D<? extends CirculinearContinuousCurve2D> reverse()
Description copied from class:PolyCurve2DReturns the reverse curve of this PolyCurve2D.- Specified by:
reversein interfaceCirculinearBoundary2D- Specified by:
reversein interfaceCirculinearContinuousCurve2D- Specified by:
reversein interfaceCirculinearContour2D- Specified by:
reversein interfaceCirculinearCurve2D- Specified by:
reversein interfaceContinuousCurve2D- Specified by:
reversein interfaceCurve2D- Specified by:
reversein interfaceBoundary2D- Specified by:
reversein interfaceContinuousOrientedCurve2D- Specified by:
reversein interfaceContour2D- Specified by:
reversein interfaceOrientedCurve2D- Overrides:
reversein classPolyCirculinearCurve2D<T extends CirculinearContinuousCurve2D>
-
subCurve
public PolyCirculinearCurve2D<? extends CirculinearContinuousCurve2D> subCurve(double t0, double t1)
Description copied from class:PolyOrientedCurve2DReturns a portion of this curve as an instance of PolyOrientedCurve2D.- Specified by:
subCurvein interfaceCirculinearContinuousCurve2D- Specified by:
subCurvein interfaceCirculinearCurve2D- Specified by:
subCurvein interfaceContinuousCurve2D- Specified by:
subCurvein interfaceCurve2D- Specified by:
subCurvein interfaceContinuousOrientedCurve2D- Overrides:
subCurvein classPolyCirculinearCurve2D<T extends CirculinearContinuousCurve2D>- Parameters:
t0- position of the start of the sub-curvet1- position of the end of the sub-curve- Returns:
- the portion of original curve comprised between t0 and t1.
-
clip
public CirculinearCurveSet2D<? extends CirculinearContinuousCurve2D> clip(Box2D box)
Description copied from class:PolyOrientedCurve2DClips the PolyCurve2D by a box. The result is an instance of CurveSet2D, which contains only instances of ContinuousOrientedCurve2D. If the PolyCurve2D is not clipped, the result is an instance of CurveSet2D which contains 0 curves.- Specified by:
clipin interfaceCirculinearBoundary2D- Specified by:
clipin interfaceCirculinearContinuousCurve2D- Specified by:
clipin interfaceCirculinearCurve2D- Specified by:
clipin interfaceContinuousCurve2D- Specified by:
clipin interfaceCurve2D- Specified by:
clipin interfaceContinuousOrientedCurve2D- Specified by:
clipin interfaceOrientedCurve2D- Specified by:
clipin interfaceShape2D- Overrides:
clipin classPolyCirculinearCurve2D<T extends CirculinearContinuousCurve2D>- Parameters:
box- the clipping box- Returns:
- the clipped shape
-
transform
public BoundaryPolyCurve2D<? extends ContinuousOrientedCurve2D> transform(AffineTransform2D trans)
Description copied from class:PolyCurve2DTransforms each smooth piece in this PolyCurve2D and returns a new instance of PolyCurve2D.- Specified by:
transformin interfaceContinuousCurve2D- Specified by:
transformin interfaceCurve2D- Specified by:
transformin interfaceCurveSet2D<T extends CirculinearContinuousCurve2D>- Specified by:
transformin interfaceBoundary2D- Specified by:
transformin interfaceContinuousOrientedCurve2D- Specified by:
transformin interfaceContour2D- Specified by:
transformin interfaceOrientedCurve2D- Specified by:
transformin interfaceShape2D- Overrides:
transformin classPolyOrientedCurve2D<T extends CirculinearContinuousCurve2D>- Parameters:
trans- an affine transform- Returns:
- the transformed shape
-
-
DMelt 3.0 © DataMelt by jWork.ORG