一、OSG中,关于文字排版的有如下几种:
1. 位置
2. 旋转
3. 对齐
4. 坐标轴对齐
5. 文字而局
二、详解各种属性,以输入"Hello world“为例。
1. 位置
顾名思义,指定文字串的起始点。
void setPosition(const osg::Vec3& pos);
2. 旋转
设置文字旋转的角度和中心轴。
void setRotation(const osg::Quat& quat);
旋转是绕字符自己的物体坐标旋转,而非是整个场景的坐标系。
3. 对齐 enum AlignmentType
{
LEFT_TOP,
LEFT_CENTER,
LEFT_BOTTOM,
CENTER_TOP,
CENTER_CENTER,
CENTER_BOTTOM,
RIGHT_TOP,
RIGHT_CENTER,
RIGHT_BOTTOM,
LEFT_BASE_LINE,
CENTER_BASE_LINE,
RIGHT_BASE_LINE,
LEFT_BOTTOM_BASE_LINE,
CENTER_BOTTOM_BASE_LINE,
RIGHT_BOTTOM_BASE_LINE,
BASE_LINE = LEFT_BASE_LINE /// default.
};
上面是osg提供的对齐方式。
4. 坐标轴对齐
enum AxisAlignment
{
XY_PLANE,
REVERSED_XY_PLANE,
XZ_PLANE,
REVERSED_XZ_PLANE,
YZ_PLANE,
REVERSED_YZ_PLANE,
SCREEN,
USER_DEFINED_ROTATION
};
坐标轴对齐是文字贴于哪个面
5. 文字布局
enum Layout
{
LEFT_TO_RIGHT, /// default
RIGHT_TO_LEFT,
VERTICAL
};
布局代表的是文字方向。