diff options
Diffstat (limited to 'extern/bFTGL/include/FTVectoriser.h')
-rw-r--r-- | extern/bFTGL/include/FTVectoriser.h | 275 |
1 files changed, 0 insertions, 275 deletions
diff --git a/extern/bFTGL/include/FTVectoriser.h b/extern/bFTGL/include/FTVectoriser.h deleted file mode 100644 index 7150560ce07..00000000000 --- a/extern/bFTGL/include/FTVectoriser.h +++ /dev/null @@ -1,275 +0,0 @@ -#ifndef __FTVectoriser__ -#define __FTVectoriser__ - - -#include "FTContour.h" -#include "FTList.h" -#include "FTPoint.h" -#include "FTVector.h" -#include "FTGL.h" - - -#ifndef CALLBACK -#define CALLBACK -#endif - - -/** - * FTTesselation captures points that are output by OpenGL's gluTesselator. - */ -class FTGL_EXPORT FTTesselation -{ - public: - /** - * Default constructor - */ - FTTesselation( GLenum m) - : meshType(m) - { - pointList.reserve( 128); - } - - /** - * Destructor - */ - ~FTTesselation() - { - pointList.clear(); - } - - /** - * Add a point to the mesh. - */ - void AddPoint( const FTGL_DOUBLE x, const FTGL_DOUBLE y, const FTGL_DOUBLE z) - { - pointList.push_back( FTPoint( x, y, z)); - } - - /** - * The number of points in this mesh - */ - size_t PointCount() const { return pointList.size();} - - /** - * - */ - const FTPoint& Point( unsigned int index) const { return pointList[index];} - - /** - * Return the OpenGL polygon type. - */ - GLenum PolygonType() const { return meshType;} - - private: - /** - * Points generated by gluTesselator. - */ - typedef FTVector<FTPoint> PointVector; - PointVector pointList; - - /** - * OpenGL primitive type from gluTesselator. - */ - GLenum meshType; -}; - - -/** - * FTMesh is a container of FTTesselation's that make up a polygon glyph - */ -class FTGL_EXPORT FTMesh -{ - typedef FTVector<FTTesselation*> TesselationVector; - typedef FTList<FTPoint> PointList; - - public: - /** - * Default constructor - */ - FTMesh(); - - /** - * Destructor - */ - ~FTMesh(); - - /** - * - */ - void AddPoint( const FTGL_DOUBLE x, const FTGL_DOUBLE y, const FTGL_DOUBLE z); - - /** - * - */ - FTGL_DOUBLE* Combine( const FTGL_DOUBLE x, const FTGL_DOUBLE y, const FTGL_DOUBLE z); - - /** - * - */ - void Begin( GLenum meshType); - - /** - * - */ - void End(); - - /** - * - */ - void Error( GLenum e) { err = e;} - - /** - * - */ - unsigned int TesselationCount() const { return tesselationList.size();} - - /** - * - */ - const FTTesselation* const Tesselation( unsigned int index) const; - - /** - * - */ - const PointList& TempPointList() const { return tempPointList;} - - /** - * Get the GL ERROR returned by the glu tesselator - */ - GLenum Error() const { return err;} - - private: - /** - * The current sub mesh that we are constructing. - */ - FTTesselation* currentTesselation; - - /** - * Holds each sub mesh that comprises this glyph. - */ - TesselationVector tesselationList; - - /** - * Holds extra points created by gluTesselator. See ftglCombine. - */ - PointList tempPointList; - - /** - * GL ERROR returned by the glu tesselator - */ - GLenum err; - -}; - -const FTGL_DOUBLE FTGL_FRONT_FACING = 1.0; -const FTGL_DOUBLE FTGL_BACK_FACING = -1.0; - -/** - * FTVectoriser class is a helper class that converts font outlines into - * point data. - * - * @see FTExtrdGlyph - * @see FTOutlineGlyph - * @see FTPolyGlyph - * @see FTContour - * @see FTPoint - * - */ -class FTGL_EXPORT FTVectoriser -{ - public: - /** - * Constructor - * - * @param glyph The freetype glyph to be processed - */ - FTVectoriser( const FT_GlyphSlot glyph); - - /** - * Destructor - */ - virtual ~FTVectoriser(); - - /** - * Build an FTMesh from the vector outline data. - * - * @param zNormal The direction of the z axis of the normal - * for this mesh - */ - void MakeMesh( FTGL_DOUBLE zNormal = FTGL_FRONT_FACING); - - /** - * Get the current mesh. - */ - const FTMesh* const GetMesh() const { return mesh;} - - /** - * Get the total count of points in this outline - * - * @return the number of points - */ - size_t PointCount(); - - /** - * Get the count of contours in this outline - * - * @return the number of contours - */ - size_t ContourCount() const { return ftContourCount;} - - /** - * Return a contour at index - * - * @return the number of contours - */ - const FTContour* const Contour( unsigned int index) const; - - /** - * Get the number of points in a specific contour in this outline - * - * @param c The contour index - * @return the number of points in contour[c] - */ - size_t ContourSize( int c) const { return contourList[c]->PointCount();} - - /** - * Get the flag for the tesselation rule for this outline - * - * @return The contour flag - */ - int ContourFlag() const { return contourFlag;} - - private: - /** - * Process the freetype outline data into contours of points - */ - void ProcessContours(); - - /** - * The list of contours in the glyph - */ - FTContour** contourList; - - /** - * A Mesh for tesselations - */ - FTMesh* mesh; - - /** - * The number of contours reported by Freetype - */ - short ftContourCount; - - /** - * A flag indicating the tesselation rule for the glyph - */ - int contourFlag; - - /** - * A Freetype outline - */ - FT_Outline outline; -}; - - -#endif // __FTVectoriser__ |