Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qtriangulator.cpp File Reference

(34519d44ffd0327a676f6af41f63191912b583e6)

#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, gcd(), and QFraction::numerator.

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(), 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 QPolylineSet::vertices.

◆ qPolyline() [2/2]

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

Definition at line 2283 of file qtriangulator.cpp.

References QPolylineSet::vertices.

◆ qTriangulate() [1/3]

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

Definition at line 2263 of file qtriangulator.cpp.

References QTriangleSet::vertices.

◆ 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(), and QTriangleSet::vertices.

Referenced by QOpenGL2PaintEngineExPrivate::fill(), QSGCurveProcessor::processFill(), 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 QTriangleSet::vertices.

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().