4#ifndef QPAINTERPATH_P_H
5#define QPAINTERPATH_P_H
18#include <QtGui/private/qtguiglobal_p.h>
19#include "QtGui/qpainterpath.h"
20#include "QtGui/qregion.h"
21#include "QtCore/qlist.h"
22#include "QtCore/qshareddata.h"
23#include "QtCore/qvarlengtharray.h"
27#include <private/qvectorpath_p.h>
28#include <private/qstroker_p.h>
56 for (
int i=0;
i<
path.size(); ++
i) {
105#ifndef QT_NO_DATASTREAM
113 fillRule(
Qt::OddEvenFill),
114 require_moveTo(
false),
116 dirtyControlBounds(
false),
118 pathConverter(
nullptr)
125 cStart(
other.cStart),
126 fillRule(
other.fillRule),
127 bounds(
other.bounds),
128 controlBounds(
other.controlBounds),
129 require_moveTo(
false),
130 dirtyBounds(
other.dirtyBounds),
131 dirtyControlBounds(
other.dirtyControlBounds),
132 convex(
other.convex),
133 pathConverter(
nullptr)
148 return pathConverter->path;
160 uint require_moveTo : 1;
161 uint dirtyBounds : 1;
162 uint dirtyControlBounds : 1;
165 std::unique_ptr<QVectorPathConverter> pathConverter;
189 data->elements[0].type = m_elements[0];
190 for (
int i=1;
i<m_count; ++
i) {
192 element.
x = m_points[
index++];
193 element.
y = m_points[
index++];
194 element.
type = m_elements[
i];
195 data->elements << element;
199 for (
int i=1;
i<m_count; ++
i) {
201 element.
x = m_points[
index++];
202 element.
y = m_points[
index++];
204 data->elements << element;
228 require_moveTo =
true;
244 if (require_moveTo) {
248 require_moveTo =
false;
262 require_moveTo =
false;
264 dirtyControlBounds =
false;
267 pathConverter.reset();
269#define KAPPA qreal(0.5522847498)
\inmodule QtCore\reentrant
const_reference at(qsizetype i) const noexcept
void reserve(qsizetype size)
void append(parameter_type t)
friend struct QPainterPathPrivateDeleter
friend Q_GUI_EXPORT QDataStream & operator<<(QDataStream &, const QPainterPath &)
QPainterPathPrivate(const QPainterPathPrivate &other) noexcept
QPainterPathPrivate & operator=(const QPainterPathPrivate &)=delete
const QVectorPath & vectorPath()
friend Q_GUI_EXPORT QDataStream & operator>>(QDataStream &, QPainterPath &)
~QPainterPathPrivate()=default
QPainterPathPrivate() noexcept
QPainterPathStrokerPrivate()
QList< qfixed > dashPattern
The QPainterPathStroker class is used to generate fillable outlines for a given painter path.
ElementType
This enum describes the types of elements used to connect vertices in subpaths.
\inmodule QtCore\reentrant
The QPolygonF class provides a list of points using floating point precision.
\inmodule QtCore\reentrant
QSharedData() noexcept
Constructs a QSharedData object with a reference count of 0.
QVectorPathConverter(const QList< QPainterPath::Element > &path, uint fillRule, bool convex)
const QVectorPath & vectorPath()
const QPainterPath convertToPainterPath() const
Combined button and popup list for selecting options.
bool qFuzzyCompare(qfloat16 p1, qfloat16 p2) noexcept
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLenum GLuint GLenum GLsizei length
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLfixed GLfixed GLint GLint GLfixed points
GLsizei const GLchar *const * path
void Q_GUI_EXPORT qt_find_ellipse_coords(const QRectF &r, qreal angle, qreal length, QPointF *startPoint, QPointF *endPoint)
static const QTextHtmlElement elements[Html_NumElements]
QVectorPathData(const QList< QPainterPath::Element > &path, uint fillRule, bool convex)
QVarLengthArray< QPainterPath::ElementType > elements
QVarLengthArray< qreal > points