zoukankan      html  css  js  c++  java
  • 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); 
  • 相关阅读:
    R语言统计词频 画词云
    Bootstrap抽样(自展法)
    基于adt-bundle-windows-x86的android开发环境搭建
    逆分布函数法生成随机数(指数分布) R语言实现
    2016-ccf-data-mining-competition 搜狗用户画像构建
    算法第四版 在Linux 中调用Algs4库
    解决Ubuntu Chrome浏览器很卡不响应的问题
    Linux下安装系统清理软件 BleachBit 1.4
    C语言编程-9_4 字符统计
    C++调用Matlab函数求特征值
  • 原文地址:https://www.cnblogs.com/xiaocainiao2hao/p/4544273.html
Copyright © 2011-2022 走看看