⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftbbox.h

📁 ftgl-2.1.2 夸平台的opengl显示字体
💻 H
字号:
#ifndef     __FTBBox__#define     __FTBBox__#include <ft2build.h>#include FT_FREETYPE_H//#include FT_GLYPH_H#include FT_OUTLINE_H#include "FTGL.h"#include "FTPoint.h"/** * FTBBox is a convenience class for handling bounding boxes. */class FTGL_EXPORT FTBBox{    public:        /**         * Default constructor. Bounding box is set to zero.         */        FTBBox()        :   lowerX(0.0f),            lowerY(0.0f),            lowerZ(0.0f),            upperX(0.0f),            upperY(0.0f),            upperZ(0.0f)        {}                /**         * Constructor.         */        FTBBox( float lx, float ly, float lz, float ux, float uy, float uz)        :   lowerX(lx),            lowerY(ly),            lowerZ(lz),            upperX(ux),            upperY(uy),            upperZ(uz)        {}                /**         * Constructor. Extracts a bounding box from a freetype glyph. Uses         * the control box for the glyph. <code>FT_Glyph_Get_CBox()</code>         *         * @param glyph A freetype glyph         */        FTBBox( FT_GlyphSlot glyph)        :   lowerX(0.0f),            lowerY(0.0f),            lowerZ(0.0f),            upperX(0.0f),            upperY(0.0f),            upperZ(0.0f)        {            FT_BBox bbox;            FT_Outline_Get_CBox( &(glyph->outline), &bbox);            lowerX = static_cast<float>( bbox.xMin) / 64.0f;            lowerY = static_cast<float>( bbox.yMin) / 64.0f;            lowerZ = 0.0f;            upperX = static_cast<float>( bbox.xMax) / 64.0f;            upperY = static_cast<float>( bbox.yMax) / 64.0f;            upperZ = 0.0f;                    }               /**         * Destructor         */        ~FTBBox()        {}                /**         * Move the Bounding Box by a vector.         *         * @param distance The distance to move the bbox in 3D space.         */        FTBBox& Move( FTPoint distance)        {            lowerX += distance.X();            lowerY += distance.Y();            lowerZ += distance.Z();            upperX += distance.X();            upperY += distance.Y();            upperZ += distance.Z();            return *this;        }        FTBBox& operator += ( const FTBBox& bbox)         {            lowerX = bbox.lowerX < lowerX? bbox.lowerX: lowerX;             lowerY = bbox.lowerY < lowerY? bbox.lowerY: lowerY;            lowerZ = bbox.lowerZ < lowerZ? bbox.lowerZ: lowerZ;             upperX = bbox.upperX > upperX? bbox.upperX: upperX;             upperY = bbox.upperY > upperY? bbox.upperY: upperY;             upperZ = bbox.upperZ > upperZ? bbox.upperZ: upperZ;                         return *this;        }                void SetDepth( float depth)        {            upperZ = lowerZ + depth;        }                        /**         * The bounds of the box         */        // Make these ftPoints & private        float lowerX, lowerY, lowerZ, upperX, upperY, upperZ;    protected:            private:};#endif  //  __FTBBox__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -