EllipticArcSegment Class

  • EllipticArcSegment
  • class Esri::ArcGISRuntime::EllipticArcSegment

    An elliptic arc segment for use in a multipart geometry. More...

    Header: #include <EllipticArcSegment.h>
    Since: Esri::ArcGISRuntime 100.12
    Inherits: Esri::ArcGISRuntime::Segment

    Public Functions

    EllipticArcSegment()
    EllipticArcSegment(const Esri::ArcGISRuntime::Point &centerPoint, double rotationAngle, double semiMajorAxis, double minorMajorRatio, double startAngle, double centralAngle, const Esri::ArcGISRuntime::SpatialReference &spatialReference)
    EllipticArcSegment(const Esri::ArcGISRuntime::Point &startPoint, const Esri::ArcGISRuntime::Point &endPoint, double rotationAngle, bool isMinor, bool isCounterClockwise, double semiMajorAxis, double minorMajorRatio, const Esri::ArcGISRuntime::SpatialReference &spatialReference)
    EllipticArcSegment(const Esri::ArcGISRuntime::EllipticArcSegment &other)
    EllipticArcSegment(const Esri::ArcGISRuntime::Segment &other)
    EllipticArcSegment(Esri::ArcGISRuntime::EllipticArcSegment &&other)
    ~EllipticArcSegment()
    Esri::ArcGISRuntime::Point centerPoint() const
    double centralAngle() const
    double endAngle() const
    bool isCircular() const
    bool isCounterClockwise() const
    double minorMajorRatio() const
    double rotationAngle() const
    double semiMajorAxis() const
    double semiMinorAxis() const
    double startAngle() const
    Esri::ArcGISRuntime::EllipticArcSegment &operator=(const Esri::ArcGISRuntime::EllipticArcSegment &other)
    Esri::ArcGISRuntime::EllipticArcSegment &operator=(Esri::ArcGISRuntime::EllipticArcSegment &&other)

    Static Public Members

    Esri::ArcGISRuntime::EllipticArcSegment createCircularEllipticArc(const Esri::ArcGISRuntime::Point &centerPoint, double radius, double startAngle, double centralAngle, const Esri::ArcGISRuntime::SpatialReference &spatialReference)
    Esri::ArcGISRuntime::EllipticArcSegment createCircularEllipticArc(const Esri::ArcGISRuntime::Point &startPoint, const Esri::ArcGISRuntime::Point &endPoint, const Esri::ArcGISRuntime::Point &interiorPoint, const Esri::ArcGISRuntime::SpatialReference &spatialReference)

    Detailed Description

    An elliptic arc is the portion of the boundary of a 2D ellipse that connects two points.

    Member Function Documentation

    EllipticArcSegment::EllipticArcSegment()

    Default constructor. Creates an empty EllipticArcSegment.

    See also isEmpty.

    EllipticArcSegment::EllipticArcSegment(const Esri::ArcGISRuntime::Point &centerPoint, double rotationAngle, double semiMajorAxis, double minorMajorRatio, double startAngle, double centralAngle, const Esri::ArcGISRuntime::SpatialReference &spatialReference)

    Creates an elliptic arc based on parameters that define an ellipse and the portion of that ellipse that defines the arc.

    • centerPoint - The center point of the embedded ellipse
    • rotationAngle - The angle in radians by which the major axis of the embedded ellipse is rotated from the x-axis. A positive value corresponds to a counterclockwise rotation from the x-axis. The value is taken in form of the modulo of 2 * PI (360 degrees); for example an input rotation angle of 7.5 radians (430 degrees) would return a segment with a rotation angle of 1.22 radians (70 degrees).
    • semiMajorAxis - The length of the semi-major axis of the embedded ellipse in the units of the spatial reference.
    • minorMajorRatio - The ratio of the length of the semi-minor axis to the length of the semi-major axis of the embedded ellipse
    • startAngle - The parametric angle in radians of the start of the arc relative to the major axis of the embedded ellipse. A positive value corresponds to a counterclockwise rotation from the major axis. The value is taken in form of the modulo of 2 * PI (360 degrees); for example an input rotation angle of 7.5 radians (430 degrees) would return a segment with a rotation angle of 1.22 radians (70 degrees).
    • centralAngle - The parametric angle in radians measuring the span of the arc from startAngle to endAngle. A positive value corresponds to a counterclockwise arc sweep. Values larger than 2 * PI (360 degrees) return a segment with a central angle of exactly 2 * PI (360 degrees), resulting in a full ellipse where the start and end points are identical.
    • spatialReference - A spatial reference to use for the segment if the center point parameter does not have a spatial reference set

    The spatial reference parameter is used if the center point parameter has a nullptr spatial reference. If both spatial references are supplied, they must be equal.

    The z-value and m-value of the center point (if present) are ignored. Use EllipticArcSegment(const Esri::ArcGISRuntime::Point&, const Esri::ArcGISRuntime::Point&, double, bool, bool, double, double, const Esri::ArcGISRuntime::SpatialReference&, QObject*) to create an EllipticArcSegment with end points with z-value and/or m-value.

    EllipticArcSegment::EllipticArcSegment(const Esri::ArcGISRuntime::Point &startPoint, const Esri::ArcGISRuntime::Point &endPoint, double rotationAngle, bool isMinor, bool isCounterClockwise, double semiMajorAxis, double minorMajorRatio, const Esri::ArcGISRuntime::SpatialReference &spatialReference)

    Creates an elliptic arc segment from the given start and end points, and other parameters that define an ellipse.

    • startPoint - The start point of the segment
    • endPoint - The end point of the segment
    • rotationAngle - The angle in radians by which the major axis of the embedded ellipse is rotated from the x-axis
    • isMinor - true if centralAngle of the segment is less than PI
    • isCounterClockwise - true if the direction of the segment, from start point to end point, proceeds in a counterclockwise direction, otherwise false
    • semiMajorAxis - The length of the semi-major axis of the embedded ellipse in the units of the spatial reference.
    • minorMajorRatio - The ratio of the length of the semi-minor axis to the length of the semi-major axis of the embedded ellipse
    • spatialReference - A spatial reference to use for the segment if the points do not have spatial references set

    The z-value and m-value of the start and end points (if present) are used in the EllipticArcSegment.

    To maintain the given startPoint and endPoint in the new segment, the other parameters may be adjusted if required. Such adjustments are made according to the Scalable Vector Graphics 1.1 Specification, Appendix F.6.5. If these cannot be adjusted sufficiently, an arc represented with a straight line is returned.

    EllipticArcSegment::EllipticArcSegment(const Esri::ArcGISRuntime::EllipticArcSegment &other)

    Copy constructor from other EllipticArcSegment.

    [explicit] EllipticArcSegment::EllipticArcSegment(const Esri::ArcGISRuntime::Segment &other)

    Copy constructor from other Segment.

    EllipticArcSegment::EllipticArcSegment(Esri::ArcGISRuntime::EllipticArcSegment &&other)

    Move constructor from other EllipticArcSegment.

    EllipticArcSegment::~EllipticArcSegment()

    Destructor.

    Esri::ArcGISRuntime::Point EllipticArcSegment::centerPoint() const

    Returns the center point of the ellipse that this segment is defined on.

    double EllipticArcSegment::centralAngle() const

    Returns the parametric angle in radians measuring the span of the arc from startAngle to endAngle.

    A positive value corresponds to a counterclockwise arc sweep.

    This value is always between -2*PI and 2*PI, these limits indicating this arc forms a complete ellipse in either clockwise or counterclockwise direction.

    [static] Esri::ArcGISRuntime::EllipticArcSegment EllipticArcSegment::createCircularEllipticArc(const Esri::ArcGISRuntime::Point &centerPoint, double radius, double startAngle, double centralAngle, const Esri::ArcGISRuntime::SpatialReference &spatialReference)

    Returns an EllipticArcSegment that is a partial circle shape from the center point and radius of the embedded circle, and the start and central angle around that circle.

    • centerPoint - The center point of the embedded circle
    • radius - The distance from the center of the embedded circle to its perimeter
    • startAngle - The parametric angle in radians of the start of the arc relative to the major axis of the embedded ellipse ``
    • centralAngle - The parametric angle in radians measuring the span of the arc from startAngle to endAngle
    • spatialReference - The spatial reference of the new segment

    The z-value and m-value of the center point (if present) are ignored. Use createCircularEllipticArc(const Esri::ArcGISRuntime::Point&, const Esri::ArcGISRuntime::Point&, const Esri::ArcGISRuntime::Point&, const Esri::ArcGISRuntime::SpatialReference&, QObject*) to create a circular EllipticArcSegment with end points with z-value and/or m-value.

    [static] Esri::ArcGISRuntime::EllipticArcSegment EllipticArcSegment::createCircularEllipticArc(const Esri::ArcGISRuntime::Point &startPoint, const Esri::ArcGISRuntime::Point &endPoint, const Esri::ArcGISRuntime::Point &interiorPoint, const Esri::ArcGISRuntime::SpatialReference &spatialReference)

    Returns an EllipticArcSegment from start, end, and interior points that is a partial circle shape.

    • startPoint - The start point of the segment
    • endPoint - The end point of the segment
    • interiorPoint - A point along the circular arc, between the start and end points
    • spatialReference - The spatial reference of the new segment

    The z-value and m-value of the start and end points (if present) are used in the circular EllipticArcSegment. The z-value and m-value of the interior point (if present) are ignored.

    double EllipticArcSegment::endAngle() const

    Returns the parametric angle in radians of the end of the arc relative to the major axis of the embedded ellipse.

    A positive value corresponds to a counterclockwise rotation from the major axis.

    bool EllipticArcSegment::isCircular() const

    Returns if this arc is a portion of the boundary of a 2D circle.

    An elliptic arc is circular if the ellipse on which it is based is a circle, meaning the lengths of its major and minor axes are equal.

    Use createCircularEllipticArc(const Esri::ArcGISRuntime::Point&, double, double, double, const Esri::ArcGISRuntime::SpatialReference&, QObject*) and createCircularEllipticArc(const Esri::ArcGISRuntime::Point&, const Esri::ArcGISRuntime::Point&, const Esri::ArcGISRuntime::Point&, const Esri::ArcGISRuntime::SpatialReference&, QObject*) to create circular arcs.

    bool EllipticArcSegment::isCounterClockwise() const

    Returns if the direction of the segment, from start point to end point, proceeds in a counterclockwise direction.

    double EllipticArcSegment::minorMajorRatio() const

    Returns the ratio of the length of the semi-minor axis to the semi-major axis.

    double EllipticArcSegment::rotationAngle() const

    Returns the angle in radians, by which the major axis of the ellipse this segment is based on, is rotated from the x-axis.

    double EllipticArcSegment::semiMajorAxis() const

    Returns the length of the longer of the two axes of the ellipse on which this arc is based.

    The semi-major axis always lies on the line between 0 and PI radians.

    double EllipticArcSegment::semiMinorAxis() const

    Returns the length of the shorter of the two axes of the ellipse on which this arc is based.

    The semi-minor axis always lies on the line between PI/2 and 3*PI/2 radians.

    double EllipticArcSegment::startAngle() const

    Returns the parametric angle in radians of the start of the arc relative to the major axis of the embedded ellipse.

    A positive value corresponds to a counterclockwise rotation from the major axis.

    Esri::ArcGISRuntime::EllipticArcSegment &EllipticArcSegment::operator=(const Esri::ArcGISRuntime::EllipticArcSegment &other)

    Assignment operator from other EllipticArcSegment.

    Esri::ArcGISRuntime::EllipticArcSegment &EllipticArcSegment::operator=(Esri::ArcGISRuntime::EllipticArcSegment &&other)

    Move operator from other EllipticArcSegment.

    Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.