HI Richard,

On 7/9/07, Schmidt, Richard, SDGE1 <[EMAIL PROTECTED]> wrote:
setting the AxisAlignment to SCREEN, sets autorotatetoscreen to true, but
setting it „back" to XZ_PLANE for example, does not set autorotatetoscreen
to false again.

Is that intented?

I don't think so...  my guess is that even though the code has been
like this for a long while few users have actually toggled to screen
aligned and back so haven't picked up on this in-consistency.

I have just recoded setAxisAlignment to always set both the rotation
and the autoRotateToScreen flag, see below.  I'm currently waiting on
a clean build before I can test this and check this fix in.

Robert.

void Text::setAxisAlignment(AxisAlignment axis)
{
   switch(axis)
   {
   case XZ_PLANE:
       setAutoRotateToScreen(false);
       setRotation(osg::Quat(osg::inDegrees(90.0f),osg::Vec3(1.0f,0.0f,0.0f)));
       break;
   case REVERSED_XZ_PLANE:
       setAutoRotateToScreen(false);
       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:
       setAutoRotateToScreen(false);
       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:
       setAutoRotateToScreen(false);
       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:
       setAutoRotateToScreen(false);
       setRotation(osg::Quat());  // nop - already on XY plane.
       break;
   case REVERSED_XY_PLANE:
       setAutoRotateToScreen(false);
       setRotation(osg::Quat(osg::inDegrees(180.0f),osg::Vec3(0.0f,1.0f,0.0f)));
       break;
   case SCREEN:
       setAutoRotateToScreen(true);
       setRotation(osg::Quat());  // nop - already on XY plane.
       break;
   }
}


Robert.
_______________________________________________
osg-users mailing list
osg-users@openscenegraph.net
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to