Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qtessellator.cpp File Reference

(02de77535f2a94cbeb7e0ea01895ba4e556e165c)

#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::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 , LineBeforeStarts = 0x1 , LineBeforeEnds = 0x2 ,
  LineBeforeHorizontal = 0x4 , LineAfterStarts = 0x8 , LineAfterEnds = 0x10 , LineAfterHorizontal = 0x20
}
enum  VertexFlags {
  LineBeforeStarts = 0x1 , LineBeforeEnds = 0x2 , LineBeforeHorizontal = 0x4 , LineAfterStarts = 0x8 ,
  LineAfterEnds = 0x10 , LineAfterHorizontal = 0x20 , 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 22 of file qtessellator.cpp.

Enumeration Type Documentation

◆ VertexFlags [1/2]

Enumerator
LineBeforeStarts 
LineBeforeEnds 
LineBeforeHorizontal 
LineAfterStarts 
LineAfterEnds 
LineAfterHorizontal 
LineBeforeStarts 
LineBeforeEnds 
LineBeforeHorizontal 
LineAfterStarts 
LineAfterEnds 
LineAfterHorizontal 

Definition at line 28 of file qtessellator.cpp.

◆ VertexFlags [2/2]

Enumerator
LineBeforeStarts 
LineBeforeEnds 
LineBeforeHorizontal 
LineAfterStarts 
LineAfterEnds 
LineAfterHorizontal 
LineBeforeStarts 
LineBeforeEnds 
LineBeforeHorizontal 
LineAfterStarts 
LineAfterEnds 
LineAfterHorizontal 

Definition at line 28 of file qtessellator.cpp.

Function Documentation

◆ cancelEdges()

◆ compareVertex()

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

Definition at line 333 of file qtessellator.cpp.

References QTessellator::Vertex::x, and QTessellator::Vertex::y.

Referenced by QTessellatorPrivate::collectAndSortVertices().

Here is the caller graph for this function:

◆ fillTrapezoid()

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

Definition at line 553 of file qtessellator.cpp.

References QTessellator::Trapezoid::bottom, QTessellator::Trapezoid::bottomLeft, QTessellator::Trapezoid::bottomRight, QTessellatorPrivate::Vertices::next(), QTessellatorPrivate::Vertices::operator[](), QTessellator::Trapezoid::top, QTessellator::Trapezoid::topLeft, QTessellator::Trapezoid::topRight, 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()

bool sameSign ( qint64 a,
qint64 b )
inlinestatic

Definition at line 245 of file qtessellator.cpp.

Variable Documentation

◆ emit_clever

const bool emit_clever = true
static

Definition at line 25 of file qtessellator.cpp.

◆ mark_clever

const bool mark_clever = false
static

Definition at line 26 of file qtessellator.cpp.

Referenced by QTessellatorPrivate::addEdges().