Added support for REVERESED_XY_PLANE, REVERESED_XZ_PLANE and
REVERESED_YZ_PLANE's for the axis alignement to allow the text to be reversed.
This commit is contained in:
@@ -117,8 +117,11 @@ bool Text_readLocalData(osg::Object &obj, osgDB::Input &fr)
|
||||
{
|
||||
std::string str = fr[1].getStr();
|
||||
if (str=="XY_PLANE") text.setAxisAlignment(osgText::Text::XY_PLANE);
|
||||
else if (str=="REVERSED_XY_PLANE") text.setAxisAlignment(osgText::Text::REVERSED_XY_PLANE);
|
||||
else if (str=="XZ_PLANE") text.setAxisAlignment(osgText::Text::XZ_PLANE);
|
||||
else if (str=="REVERSED_XZ_PLANE") text.setAxisAlignment(osgText::Text::REVERSED_XZ_PLANE);
|
||||
else if (str=="YZ_PLANE") text.setAxisAlignment(osgText::Text::YZ_PLANE);
|
||||
else if (str=="REVERSED_YZ_PLANE") text.setAxisAlignment(osgText::Text::REVERSED_YZ_PLANE);
|
||||
else if (str=="SCREEN") text.setAxisAlignment(osgText::Text::SCREEN);
|
||||
fr += 2;
|
||||
itAdvanced = true;
|
||||
|
||||
@@ -158,13 +158,25 @@ void Text::setAxisAlignment(AxisAlignment axis)
|
||||
case XZ_PLANE:
|
||||
setRotation(osg::Quat(osg::inDegrees(90.0f),osg::Vec3(1.0f,0.0f,0.0f)));
|
||||
break;
|
||||
case REVERSED_XZ_PLANE:
|
||||
setRotation(osg::Quat(osg::inDegrees(180.0f),osg::Vec3(0.0f,1.0f,0.0f))*
|
||||
osg::Quat(osg::inDegrees(90.0f),osg::Vec3(1.0f,0.0f,0.0f)));
|
||||
break;
|
||||
case YZ_PLANE:
|
||||
setRotation(osg::Quat(osg::inDegrees(90.0f),osg::Vec3(1.0f,0.0f,0.0f))*
|
||||
osg::Quat(osg::inDegrees(90.0f),osg::Vec3(0.0f,0.0f,1.0f)));
|
||||
break;
|
||||
case REVERSED_YZ_PLANE:
|
||||
setRotation(osg::Quat(osg::inDegrees(180.0f),osg::Vec3(0.0f,1.0f,0.0f))*
|
||||
osg::Quat(osg::inDegrees(90.0f),osg::Vec3(1.0f,0.0f,0.0f))*
|
||||
osg::Quat(osg::inDegrees(90.0f),osg::Vec3(0.0f,0.0f,1.0f)));
|
||||
break;
|
||||
case XY_PLANE:
|
||||
setRotation(osg::Quat()); // nop - already on XY plane.
|
||||
break;
|
||||
case REVERSED_XY_PLANE:
|
||||
setRotation(osg::Quat(osg::inDegrees(180.0f),osg::Vec3(0.0f,1.0f,0.0f)));
|
||||
break;
|
||||
case SCREEN:
|
||||
setAutoRotateToScreen(true);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user