27#ifndef OUTLINE_DECOMPOSER_H
28#define OUTLINE_DECOMPOSER_H
34#include <freetype2/ft2build.h>
84 int winding(
const std::vector<VECTOR2D>& aContour )
const;
86 inline static unsigned int onCurve(
char aTags )
93 return onCurve( aTags ) ? 0 : aTags & 0x2;
108 return hasDropout( aTags ) ? ( aTags & 0x38 ) : 0;
112 static int moveTo(
const FT_Vector* aEndPoint,
void* aCallbackData );
114 static int lineTo(
const FT_Vector* aEndPoint,
void* aCallbackData );
116 static int quadraticTo(
const FT_Vector* aControlPoint,
const FT_Vector* aEndPoint,
117 void* aCallbackData );
119 static int cubicTo(
const FT_Vector* aFirstControlPoint,
const FT_Vector* aSecondControlPoint,
120 const FT_Vector* aEndPoint,
void* aCallbackData );
static unsigned int hasDropout(char aTags)
static unsigned int onCurve(char aTags)
void addContourPoint(const VECTOR2D &p)
std::vector< CONTOUR > * m_contours
static int cubicTo(const FT_Vector *aFirstControlPoint, const FT_Vector *aSecondControlPoint, const FT_Vector *aEndPoint, void *aCallbackData)
static int moveTo(const FT_Vector *aEndPoint, void *aCallbackData)
bool OutlineToSegments(std::vector< CONTOUR > *aContours)
static unsigned int thirdOrderBezierPoint(char aTags)
static int lineTo(const FT_Vector *aEndPoint, void *aCallbackData)
static unsigned int secondOrderBezierPoint(char aTags)
static int quadraticTo(const FT_Vector *aControlPoint, const FT_Vector *aEndPoint, void *aCallbackData)
static unsigned int dropoutMode(char aTags)
int winding(const std::vector< VECTOR2D > &aContour) const
constexpr int GLYPH_RESOLUTION
constexpr double GLYPH_SIZE_SCALER
constexpr int GLYPH_DEFAULT_DPI
FreeType default.
std::vector< VECTOR2D > m_Points
FT_Orientation m_Orientation
std::vector< CONTOUR > m_Contours
std::vector< std::unique_ptr< SHAPE_POLY_SET::TRIANGULATED_POLYGON > > m_TriangulationData