码迷,mamicode.com
首页 > 其他好文 > 详细

osgText::Text简介

时间:2015-06-01 18:13:01      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:

整理自《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); 

osgText::Text简介

标签:

原文地址:http://www.cnblogs.com/xiaocainiao2hao/p/4544273.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!