CornerRounding


public final class CornerRounding


CornerRounding defines the amount and quality around a given vertex of a shape. radius defines the radius of the circle which forms the basis of the rounding for the vertex. smoothing defines the amount by which the curve is extended from the circular arc around the corner to the edge between vertices.

Each corner of a shape can be thought of as either:

  • unrounded (with a corner radius of 0 and no smoothing)
  • rounded with only a circular arc (with smoothing of 0). In this case, the rounding around the corner follows an approximated circular arc between the edges to adjacent vertices.
  • rounded with three curves: There is an inner circular arc and two symmetric flanking curves. The flanking curves determine the curvature from the inner curve to the edges, with a value of 0 (no smoothing) meaning that it is purely a circular curve and a value of 1 meaning that the flanking curves are maximized between the inner curve and the edges.

    Summary

    Public fields

    static final @NonNull CornerRounding

    Unrounded has a rounding radius of zero, producing a sharp corner at a vertex.

    Public constructors

    CornerRounding(
        @FloatRange(from = 0.0) float radius,
        @FloatRange(from = 0.0, to = 1.0) float smoothing
    )

    Public methods

    final float

    a value of 0 or greater, representing the radius of the circle which defines the inner rounding arc of the corner.

    final float

    the amount by which the arc is "smoothed" by extending the curve from the inner circular arc to the edge between vertices.

    Public fields

    Unrounded

    public static final @NonNull CornerRounding Unrounded

    Unrounded has a rounding radius of zero, producing a sharp corner at a vertex.

    Public constructors

    CornerRounding

    Added in 1.0.1
    public CornerRounding(
        @FloatRange(from = 0.0) float radius,
        @FloatRange(from = 0.0, to = 1.0) float smoothing
    )
    Parameters
    @FloatRange(from = 0.0) float radius

    a value of 0 or greater, representing the radius of the circle which defines the inner rounding arc of the corner. A value of 0 indicates that the corner is sharp, or completely unrounded. A positive value is the requested size of the radius. Note that this radius is an absolute size that should relate to the overall size of its shape. Thus if the shape is in screen coordinate size, the radius should be sized appropriately. If the shape is in some canonical form (bounds of (-1,-1) to (1,1), for example, which is the default when creating a RoundedPolygon from a number of vertices), then the radius should be relative to that size. The radius will be scaled if the shape itself is transformed, since it will produce curves which round the corner and thus get transformed along with the overall shape.

    @FloatRange(from = 0.0, to = 1.0) float smoothing

    the amount by which the arc is "smoothed" by extending the curve from the inner circular arc to the edge between vertices. A value of 0 (no smoothing) indicates that the corner is rounded by only a circular arc; there are no flanking curves. A value of 1 indicates that there is no circular arc in the center; the flanking curves on either side meet at the middle.

    Public methods

    getRadius

    Added in 1.0.1
    public final float getRadius()

    a value of 0 or greater, representing the radius of the circle which defines the inner rounding arc of the corner. A value of 0 indicates that the corner is sharp, or completely unrounded. A positive value is the requested size of the radius. Note that this radius is an absolute size that should relate to the overall size of its shape. Thus if the shape is in screen coordinate size, the radius should be sized appropriately. If the shape is in some canonical form (bounds of (-1,-1) to (1,1), for example, which is the default when creating a RoundedPolygon from a number of vertices), then the radius should be relative to that size. The radius will be scaled if the shape itself is transformed, since it will produce curves which round the corner and thus get transformed along with the overall shape.

    getSmoothing

    Added in 1.0.1
    public final float getSmoothing()

    the amount by which the arc is "smoothed" by extending the curve from the inner circular arc to the edge between vertices. A value of 0 (no smoothing) indicates that the corner is rounded by only a circular arc; there are no flanking curves. A value of 1 indicates that there is no circular arc in the center; the flanking curves on either side meet at the middle.