osgText::Text简介

整理自《OpenSceneGraph三维渲染引擎编程指南》

在OSG中,为了显示高质量的文字,专门定义了一个新的名字空间来管理场景中的文字渲染,这个名字空间中的类主要用于加载字体和控制文字渲染的各种属性,该空间主要包括下面几个类。    
1     class FadeText         //渐变文字

2     class Font                 //字体

3     class Font3D            //3D字体

4     class VectorUInt      //向量单元

5     class String             //字符串——用于多字节字符和各类文字编码

6     class Text                //文字

7     class Text3D           //3D文字

8     class TextBase       //文字基类

 

其中又以TextBase这个基类比较重要,其定义了文字渲染的基本接口,文字的主要属性包括颜色、位置、方向、大小模式、分辨率、对齐方式、输出格式、绘制模式、背景类型和颜色倾斜模式等。
下面介绍一些其成员函数:
1> 颜色: void setColor(const osg::Vec4 &color);  
2>位置:  void setPosition(const osg::Vec3 &pos); 
3>方向:  void Text::setAxisAlignment(setAxisAlignment axis); 
4>文字方向的枚举方式如下:   
 1     enum AxisAlignment

 2     {

 3             XY_PLANE,                                 //xy面

 4             REVERSED_XY_PLANE,               //xy面的反面

 5             XZ_PLANE,                                 //xz面

 6             REVERSED_XZ_PLANE,              //xz面的反面

 7             YZ_PLANE,                                 //yz面

 8             REVERSED_YZ_PLANE,              //yz面的反面

 9             SCREEN,                                    //屏幕

10             USER_DEFINED_ROTATION    //用户自定义旋转

11     };

 

5>大小模式:  void setCharacterSizeMode(CHaracterSizeMode mode); 
6>文字大小模式枚举变量如下:       
1      enum CharacterSizeMode

2         {

3                 OBJECT_COORDS,                 //默认模式

4                 SCREEN_COORDS                 //根据屏幕坐标自动缩放

5                          OBJECT_COORDS_WITH_MAXIMUM_SCREEN_SIZE_CAPPED_BY_FONT_HEIGHT    //根据视点自动缩放

6         };            

 

7>分辨率: void setFontResolution(unsigned int width,unsigned int height) 
8>对齐方式:  void Text::setAlignment(AlignmentType alignment); 
    对齐方式枚举如下:  
 1 enum AlignmentType

 2     {

 3             LEFT_TOP,                              //左上

 4             LEFT_CENTER,                           //左中

 5             LEFT_BOTTOM,                           //左下

 6             CENTER_TOP,                            //中上

 7             CENTER_CENTER,                         //中中

 8             CENTER_BOTTOM,                         //中下

 9             RIGHT_TOP,                             //右上

10             RIGHT_CENTER,                          //右中

11             RIGHT_BOTTOM,                          //右下

12             LEFT_BASE_LINE,                        //左基线

13             CENTER_BASE_LINE,                      //中间的基线

14             RIGHT_BASE_LINE,                       //右基线

15             LEFT_BOTTOM_BASE_LINE,                 //左下基线

16             CENTER_BOTTOM_BASE_LINE,               //中下基线

17             RIGHT_BOTTOM_BASE_LINE,                //右下基线

18             BASE_LINE = LEFT_BASE_LINE             //default,  //左基线为默认方式

19     };

 

9>输出格式:  void setLayout(Layout layout); 
    文字输出格式枚举模式如下:      
 enum Layout

        {

                LEFT_TO_RIGHT,      //default,默认格式从左到右

                RIGHT_TO_LEFT,     //从右到左

                VERTICAL               //垂直

        };

 

10>绘制模式:
void setDrawMode(unsigned int mode);
        绘制模式枚举如下:      
enum DrawModeMask

{

    TEXT = 1,             //默认模式文字

    BOUNDINGBOX=2,       //包围盒

    ALIGNMENT=4          //对齐

};
11>背景类型:  void setBackdropType(BackdropType type); 

你可能感兴趣的:(text)