C
PathData Class
class Qul::PlatformInterface::PathDataThis class represents vector path data. More...
Header: | #include <platforminterface/pathdata.h> |
Since: | Qt Quick Ultralite (Platform) 1.8 |
Public Types
enum | SegmentType { CloseSegment, MoveSegment, LineSegment, QuadraticBezierSegment, CubicBezierSegment, …, PathSeparatorSegment } |
Public Functions
PathData(const Qul::PlatformInterface::PathData::SegmentType *segments, std::size_t segmentCount, const float *controlElements, std::size_t controlElementCount, Qul::PlatformInterface::PathOptimizationHints optimizationHints = PathOptimizationHints_None) | |
PathData() | |
std::size_t | controlElementCount() const |
const float * | controlElements() const |
Qul::PlatformInterface::PathData::SegmentType | segmentAt(std::size_t segmentIndex) const |
std::size_t | segmentCount() const |
const Qul::PlatformInterface::PathData::SegmentType * | segments() const |
Static Public Members
int | controlElementCountForSegmentType(Qul::PlatformInterface::PathData::SegmentType type) |
Detailed Description
This class represents vector path data that can be used for drawing vector graphics together with the Qul::PlatformInterface::DrawingEngine API.
The path data is a list of segments, represented by an array of segment types and a separate array of control elements for each segment.
Different segment types might have different number of control elements. Use controlElementCountForSegmentType() to query the number of control elements associated with a certain segment type.
For more convenient traversal of the segments, use the Qul::PlatformInterface::PathDataIterator class.
See also PathDataIterator.
Member Type Documentation
[since Qt Quick Ultralite (Platform) 1.8]
enum PathData::SegmentType
This enum type specifies the different segment types of a path.
Constant | Value | Description |
---|---|---|
Qul::PlatformInterface::PathData::CloseSegment | 0 | Explicitly closes the current sub-path by adding a line to the starting point. There are no corresponding control elements. |
Qul::PlatformInterface::PathData::MoveSegment | 1 | Sets the current position of the path to a given position, implicitly closing any current sub-path. There are two corresponding control elements, defining the x and y coordinates of the target position. |
Qul::PlatformInterface::PathData::LineSegment | 2 | Adds to the path a line from the current position to the given position. There are two corresponding control elements, defining the x and y coordinates of the target position. |
Qul::PlatformInterface::PathData::QuadraticBezierSegment | 3 | Adds to the path a quadratic bezier curve from the current position to the target position based on an intermediate bezier control point. There are four corresponding control elements, the first two being the x and y coordinates of the bezier control point, and the next two being the x and y coordinates of the target position. |
Qul::PlatformInterface::PathData::CubicBezierSegment | 4 | Adds to the path a cubic bezier curve from the current position to the target position based on two intermediate bezier control points. There are six corresponding control elements, the first two being the x and y coordinates of the first bezier control point, the following two being the x and y coordinates of the second bezier control point, and the final two being the x and y coordinates of the target position. |
Qul::PlatformInterface::PathData::SmallCounterClockWiseArcSegment | 5 | Adds to the path the small counterclockwise arc of an ellipse that intersects the current position and the target positions, with the ellipse having the given x-radius, y-radius and rotation angle. There are five corresponding control elements, the first three being the x-radius, y-radius and the rotation angle in degrees of the ellipse, and the final two being the x and y coordinates of the target position. |
Qul::PlatformInterface::PathData::SmallClockWiseArcSegment | 6 | Adds to the path the small clockwise arc of an ellipse that intersects the current position and the target positions, with the ellipse having the given x-radius, y-radius and rotation angle. There are five corresponding control elements, the first three being the x-radius, y-radius and the rotation angle in degrees of the ellipse, and the final two being the x and y coordinates of the target position. |
Qul::PlatformInterface::PathData::LargeCounterClockWiseArcSegment | 7 | Adds to the path the large counterclockwise arc of an ellipse that intersects the current position and the target positions, with the ellipse having the given x-radius, y-radius and rotation angle. There are five corresponding control elements, the first three being the x-radius, y-radius and the rotation angle in degrees of the ellipse, and the final two being the x and y coordinates of the target position. |
Qul::PlatformInterface::PathData::LargeClockWiseArcSegment | 8 | Adds to the path the large clockwise arc of an ellipse that intersects the current position and the target positions, with the ellipse having the given x-radius, y-radius and rotation angle. There are five corresponding control elements, the first three being the x-radius, y-radius and the rotation angle in degrees of the ellipse, and the final two being the x and y coordinates of the target position. |
Qul::PlatformInterface::PathData::PathSeparatorSegment | 9 | Separates independent sub-parts of a path. The sub-parts can be blended independently without any visual difference, on implementations where it's more optimal to do so. It is safe for an implementation to ignore this path segment. |
This enum was introduced or modified in Qt Quick Ultralite (Platform) 1.8.
Member Function Documentation
PathData::PathData(const Qul::PlatformInterface::PathData::SegmentType *segments, std::size_t segmentCount, const float *controlElements, std::size_t controlElementCount, Qul::PlatformInterface::PathOptimizationHints optimizationHints = PathOptimizationHints_None)
Constructs a path data object.
Constructs a path data object with the given segments, segmentCount, controlElements, controlElementCount and optimizationHints
Note: PathData does not take ownership of the given segment and control element data.
PathData::PathData()
Constructs an empty path data object.
std::size_t PathData::controlElementCount() const
Returns the number of control elements in the path.
See also controlElements().
[static]
int PathData::controlElementCountForSegmentType(Qul::PlatformInterface::PathData::SegmentType type)
Returns the number of control elements corresponding to a given segment type.
Note: Instead of traversing the control elements manually it's recommended to use the convenience Qul::PlatformInterface::PathDataIterator class.
See also segments() and controlElements().
const float *PathData::controlElements() const
Returns a pointer to an array of control elements.
The number of elements in the array can be queried with controlElementCount().
Each segment in the array returned by segments() has a corresponding number of control elements which can be queried with the controlElementCountForSegmentType() function.
See also segments() and controlElementCountForSegmentType().
Qul::PlatformInterface::PathData::SegmentType PathData::segmentAt(std::size_t segmentIndex) const
Returns the segment type at a given index given by segmentIndex.
See also segmentCount().
std::size_t PathData::segmentCount() const
Returns the number of segments in the path.
See also segments().
const Qul::PlatformInterface::PathData::SegmentType *PathData::segments() const
Returns a pointer to an array of path segment types.
The number of elements in the array can be queried with segmentCount().
Available under certain Qt licenses.
Find out more.