Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qtriangulator.cpp File Reference
#include "qtriangulator_p.h"
#include <QtGui/qevent.h>
#include <QtGui/qpainter.h>
#include <QtGui/qpainterpath.h>
#include <QtGui/private/qbezier_p.h>
#include <QtGui/private/qdatabuffer_p.h>
#include <QtCore/qbitarray.h>
#include <QtCore/qvarlengtharray.h>
#include <QtCore/qqueue.h>
#include <QtCore/qglobal.h>
#include <QtCore/qpoint.h>
#include <QtCore/qalgorithms.h>
#include <private/qrbtree_p.h>
+ Include dependency graph for qtriangulator.cpp:

Go to the source code of this file.

Classes

struct  QVertexSet< T >
 
struct  QFraction
 
struct  QPodPoint
 
struct  QIntersectionPoint
 
class  QMaxHeap< T >
 
class  QInt64Set
 
class  QTriangulator< T >
 
class  QTriangulator< T >::ComplexToSimple
 
class  QTriangulator< T >::SimpleToMonotone
 
class  QTriangulator< T >::MonotoneToTriangles
 

Macros

#define Q_FIXED_POINT_SCALE   32
 

Functions

static quint64 gcd (quint64 x, quint64 y)
 
static int compare (quint64 a, quint64 b)
 
static int qCompareFractions (quint64 a, quint64 b, quint64 c, quint64 d)
 
static QFraction qFraction (quint64 n, quint64 d)
 
static qint64 qCross (const QPodPoint &u, const QPodPoint &v)
 
static qint64 qPointDistanceFromLine (const QPodPoint &p, const QPodPoint &v1, const QPodPoint &v2)
 
static bool qPointIsLeftOfLine (const QPodPoint &p, const QPodPoint &v1, const QPodPoint &v2)
 
static QIntersectionPoint qIntersectionPoint (const QPodPoint &point)
 
static QIntersectionPoint qIntersectionPoint (const QPodPoint &u1, const QPodPoint &u2, const QPodPoint &v1, const QPodPoint &v2)
 
static int primeForNumBits (int numBits)
 
static int primeForCount (int count)
 
Q_GUI_EXPORT QTriangleSet qTriangulate (const qreal *polygon, int count, uint hint, const QTransform &matrix, bool allowUintIndices)
 
Q_GUI_EXPORT QTriangleSet qTriangulate (const QVectorPath &path, const QTransform &matrix, qreal lod, bool allowUintIndices)
 
QTriangleSet qTriangulate (const QPainterPath &path, const QTransform &matrix, qreal lod, bool allowUintIndices)
 
QPolylineSet qPolyline (const QVectorPath &path, const QTransform &matrix, qreal lod, bool allowUintIndices)
 
QPolylineSet qPolyline (const QPainterPath &path, const QTransform &matrix, qreal lod, bool allowUintIndices)
 

Variables

static const uchar prime_deltas []
 

Macro Definition Documentation

◆ Q_FIXED_POINT_SCALE

#define Q_FIXED_POINT_SCALE   32

Definition at line 23 of file qtriangulator.cpp.

Function Documentation

◆ compare()

◆ gcd()

static quint64 gcd ( quint64  x,
quint64  y 
)
inlinestatic

Definition at line 58 of file qtriangulator.cpp.

Referenced by qFraction().

+ Here is the caller graph for this function:

◆ primeForCount()

static int primeForCount ( int  count)
inlinestatic

Definition at line 419 of file qtriangulator.cpp.

References i, and primeForNumBits().

Referenced by QInt64Set::QInt64Set(), and QInt64Set::insert().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ primeForNumBits()

static int primeForNumBits ( int  numBits)
inlinestatic

Definition at line 414 of file qtriangulator.cpp.

References prime_deltas.

Referenced by primeForCount().

+ Here is the caller graph for this function:

◆ qCompareFractions()

static int qCompareFractions ( quint64  a,
quint64  b,
quint64  c,
quint64  d 
)
static

Definition at line 76 of file qtriangulator.cpp.

References compare(), d, Q_UINT64_C, and qSwap().

Referenced by QFraction::operator<().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qCross()

static qint64 qCross ( const QPodPoint u,
const QPodPoint v 
)
inlinestatic

Definition at line 156 of file qtriangulator.cpp.

References QPodPoint::x, and QPodPoint::y.

Referenced by qIntersectionPoint(), and qPointDistanceFromLine().

+ Here is the caller graph for this function:

◆ qFraction()

static QFraction qFraction ( quint64  n,
quint64  d 
)
static

Definition at line 105 of file qtriangulator.cpp.

References d, and gcd().

Referenced by QIntersectionPoint::isOnLine(), and qIntersectionPoint().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qIntersectionPoint() [1/2]

static QIntersectionPoint qIntersectionPoint ( const QPodPoint point)
inlinestatic

Definition at line 204 of file qtriangulator.cpp.

References QPodPoint::x, and QPodPoint::y.

◆ qIntersectionPoint() [2/2]

static QIntersectionPoint qIntersectionPoint ( const QPodPoint u1,
const QPodPoint u2,
const QPodPoint v1,
const QPodPoint v2 
)
static

Definition at line 211 of file qtriangulator.cpp.

References d1, d2, Q_ASSERT, qCross(), qFraction(), and v1.

+ Here is the call graph for this function:

◆ qPointDistanceFromLine()

static qint64 qPointDistanceFromLine ( const QPodPoint p,
const QPodPoint v1,
const QPodPoint v2 
)
inlinestatic

Definition at line 172 of file qtriangulator.cpp.

References qCross().

Referenced by qPointIsLeftOfLine().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qPointIsLeftOfLine()

static bool qPointIsLeftOfLine ( const QPodPoint p,
const QPodPoint v1,
const QPodPoint v2 
)
inlinestatic

Definition at line 177 of file qtriangulator.cpp.

References qPointDistanceFromLine(), QT_PREPEND_NAMESPACE(), and v1.

+ Here is the call graph for this function:

◆ qPolyline() [1/2]

QPolylineSet qPolyline ( const QPainterPath path,
const QTransform matrix,
qreal  lod,
bool  allowUintIndices 
)

Definition at line 2303 of file qtriangulator.cpp.

References QVertexSet< T >::indices, QPolylineSet::indices, QTriangulator< T >::initialize(), QTriangulator< T >::polyline(), QVertexIndexVector::setDataUint(), QVertexIndexVector::setDataUshort(), QVertexSet< T >::vertices, and QPolylineSet::vertices.

+ Here is the call graph for this function:

◆ qPolyline() [2/2]

QPolylineSet qPolyline ( const QVectorPath path,
const QTransform matrix,
qreal  lod,
bool  allowUintIndices 
)

Definition at line 2283 of file qtriangulator.cpp.

References QVertexSet< T >::indices, QPolylineSet::indices, QTriangulator< T >::initialize(), QTriangulator< T >::polyline(), QVertexIndexVector::setDataUint(), QVertexIndexVector::setDataUshort(), QVertexSet< T >::vertices, and QPolylineSet::vertices.

+ Here is the call graph for this function:

◆ qTriangulate() [1/3]

QTriangleSet qTriangulate ( const QPainterPath path,
const QTransform matrix,
qreal  lod,
bool  allowUintIndices 
)

Definition at line 2263 of file qtriangulator.cpp.

References QVertexSet< T >::indices, QTriangleSet::indices, QTriangulator< T >::initialize(), QVertexIndexVector::setDataUint(), QVertexIndexVector::setDataUshort(), QTriangulator< T >::triangulate(), QVertexSet< T >::vertices, and QTriangleSet::vertices.

+ Here is the call graph for this function:

◆ qTriangulate() [2/3]

Q_GUI_EXPORT QTriangleSet qTriangulate ( const qreal polygon,
int  count,
uint  hint,
const QTransform matrix,
bool  allowUintIndices 
)

Definition at line 2218 of file qtriangulator.cpp.

References hint(), QVertexSet< T >::indices, QTriangleSet::indices, QTriangulator< T >::initialize(), QVertexIndexVector::setDataUint(), QVertexIndexVector::setDataUshort(), QTriangulator< T >::triangulate(), QVertexSet< T >::vertices, and QTriangleSet::vertices.

Referenced by QOpenGL2PaintEngineExPrivate::fill(), and QQuickShapeGenericRenderer::triangulateFill().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qTriangulate() [3/3]

Q_GUI_EXPORT QTriangleSet qTriangulate ( const QVectorPath path,
const QTransform matrix,
qreal  lod,
bool  allowUintIndices 
)

Definition at line 2240 of file qtriangulator.cpp.

References QVertexSet< T >::indices, QTriangleSet::indices, QTriangulator< T >::initialize(), QVertexIndexVector::setDataUint(), QVertexIndexVector::setDataUshort(), QTriangulator< T >::triangulate(), QVertexSet< T >::vertices, and QTriangleSet::vertices.

+ Here is the call graph for this function:

Variable Documentation

◆ prime_deltas

const uchar prime_deltas[]
static
Initial value:
= {
0, 0, 1, 3, 1, 5, 3, 3, 1, 9, 7, 5, 3, 17, 27, 3,
1, 29, 3, 21, 7, 17, 15, 9, 43, 35, 15, 0, 0, 0, 0, 0
}

Definition at line 408 of file qtriangulator.cpp.

Referenced by primeForNumBits(), and qPrimeForNumBits().