Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qtessellator.cpp File Reference
#include "qtessellator_p.h"
#include <QRect>
#include <QList>
#include <QMap>
#include <QDebug>
#include <qmath.h>
#include <limits.h>
#include <algorithm>
+ Include dependency graph for qtessellator.cpp:

Go to the source code of this file.

Classes

class  QTessellatorPrivate
 
struct  QTessellatorPrivate::Vertex
 
struct  QTessellatorPrivate::Intersection
 
struct  QTessellatorPrivate::IntersectionLink
 
struct  QTessellatorPrivate::Edge
 
class  QTessellatorPrivate::EdgeSorter
 
class  QTessellatorPrivate::Scanline
 
struct  QTessellatorPrivate::Vertices
 
struct  QCoincidingEdge
 

Macros

#define QDEBUG   if (1){} else qDebug
 

Enumerations

enum  VertexFlags {
  LineBeforeStarts = 0x1 , LineBeforeEnds = 0x2 , LineBeforeHorizontal = 0x4 , LineAfterStarts = 0x8 ,
  LineAfterEnds = 0x10 , LineAfterHorizontal = 0x20
}
 

Functions

static bool sameSign (qint64 a, qint64 b)
 
static bool compareVertex (const QTessellatorPrivate::Vertex *p1, const QTessellatorPrivate::Vertex *p2)
 
static void fillTrapezoid (Q27Dot5 y1, Q27Dot5 y2, int left, int right, const QTessellatorPrivate::Vertices &vertices, QTessellator::Trapezoid *trap)
 
static void cancelEdges (QCoincidingEdge &e1, QCoincidingEdge &e2)
 

Variables

static const bool emit_clever = true
 
static const bool mark_clever = false
 

Macro Definition Documentation

◆ QDEBUG

#define QDEBUG   if (1){} else qDebug

Definition at line 21 of file qtessellator.cpp.

Enumeration Type Documentation

◆ VertexFlags

Enumerator
LineBeforeStarts 
LineBeforeEnds 
LineBeforeHorizontal 
LineAfterStarts 
LineAfterEnds 
LineAfterHorizontal 

Definition at line 27 of file qtessellator.cpp.

Function Documentation

◆ cancelEdges()

static void cancelEdges ( QCoincidingEdge e1,
QCoincidingEdge e2 
)
static

Definition at line 670 of file qtessellator.cpp.

References QCoincidingEdge::before, QCoincidingEdge::end, QTessellatorPrivate::Vertex::flags, LineAfterEnds, LineAfterHorizontal, LineAfterStarts, LineBeforeEnds, LineBeforeHorizontal, LineBeforeStarts, QCoincidingEdge::start, and QCoincidingEdge::used.

Referenced by QTessellatorPrivate::cancelCoincidingEdges().

+ Here is the caller graph for this function:

◆ compareVertex()

static bool compareVertex ( const QTessellatorPrivate::Vertex p1,
const QTessellatorPrivate::Vertex p2 
)
inlinestatic

Definition at line 332 of file qtessellator.cpp.

References p1, and p2.

Referenced by QTessellatorPrivate::collectAndSortVertices().

+ Here is the caller graph for this function:

◆ fillTrapezoid()

static void fillTrapezoid ( Q27Dot5  y1,
Q27Dot5  y2,
int  left,
int  right,
const QTessellatorPrivate::Vertices vertices,
QTessellator::Trapezoid trap 
)
inlinestatic

Definition at line 552 of file qtessellator.cpp.

References QTessellator::Trapezoid::bottom, QTessellator::Trapezoid::bottomLeft, QTessellator::Trapezoid::bottomRight, QTessellatorPrivate::Vertices::next(), qSwap(), QTessellator::Trapezoid::top, QTessellator::Trapezoid::topLeft, QTessellator::Trapezoid::topRight, QTessellatorPrivate::vertices, and QTessellator::Vertex::y.

Referenced by QTessellatorPrivate::emitEdges().

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

◆ sameSign()

static bool sameSign ( qint64  a,
qint64  b 
)
inlinestatic

Definition at line 244 of file qtessellator.cpp.

Referenced by QTessellatorPrivate::Edge::intersect().

+ Here is the caller graph for this function:

Variable Documentation

◆ emit_clever

const bool emit_clever = true
static

Definition at line 24 of file qtessellator.cpp.

Referenced by QTessellatorPrivate::emitEdges().

◆ mark_clever

const bool mark_clever = false
static

Definition at line 25 of file qtessellator.cpp.

Referenced by QTessellatorPrivate::addEdges().