Hi Dirk,<br><br>Maybe you have the same problem than I had : <a href="http://thread.gmane.org/gmane.comp.graphics.openscenegraph.user/38200/focus=38214">http://thread.gmane.org/gmane.comp.graphics.openscenegraph.user/38200/focus=38214</a><br>
<br>(sorry no solution...)<br><br>Vincent.<br><br><div class="gmail_quote">2009/3/11 Dirk Uys <span dir="ltr"><<a href="mailto:dirkcuys@gmail.com">dirkcuys@gmail.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div class="h5">Hi<br>
<br>
I'm new to OSG, but not so new to scene graphs in general.<br>
<br>
I'm trying to make some changes to osgGIS to suit my needs. I wish to<br>
change the BuildLabelsFilter to rotate labels so that they face away<br>
from the terrain. Here is a short piece of code to show what I've done<br>
<br>
<code><br>
<br>
    osg::Vec3d up( input->getExtent().getSRS()->getUpVector(point) );<br>
    up.normalize();<br>
    osg::Quat rotation;<br>
    rotation.makeRotate( up, osg::Vec3d(0, 0, 1) );<br>
<br>
    // build the drawable:<br>
    osgText::Text* t = new osgText::Text();<br>
    t->setAutoRotateToScreen( false );<br>
    t->setCharacterSizeMode( osgText::Text::SCREEN_COORDS );<br>
    t->setAlignment( osgText::Text::CENTER_CENTER );<br>
    t->setText( text.c_str() );<br>
    t->setColor( color );<br>
    t->setCharacterSize( (float)font_size );<br>
    t->setRotation(rotation);<br>
    t->setPosition( point );<br>
    t->setBackdropType( osgText::Text::OUTLINE );<br>
    t->setBackdropColor( osg::Vec4(0,0,0,1) );<br>
<br>
</code><br>
<br>
But the results are not correct (see screenshot).<br>
<br>
If I add a line from point to (point + rotation*Vec3d(0, 0, 1)), the<br>
line gets rotated correctly and coincides with the up vector.<br>
<br>
I also tried using<br>
   t->setAxisAlignment(osgText::Text::YZ_PLANE);<br>
but in this case the text completely disappears.<br>
<br>
If I change rotation.makeRotate( up, osg::Vec3d(0, 0, 1) ); to<br>
rotation.makeRotate( 0.0, osg::X_AXIS, osg::inDegrees(80.0),<br>
osg::Y_AXIS, 0.0, osg::Z_AXIS );<br>
It looks like the text are rotated by 80 degrees around the Y axes and<br>
then projected onto the XY plane?<br>
<br>
Rotating around the Z axis seems to be working fine<br>
<br>
I looked at the osgtext example and the setAxisAlignment() works as expected.<br>
<br>
Am I understanding the use of osgText::Text::rotate() incorrectly, or<br>
is there something else I'm doing wrong?<br>
<br>
I'm using OSG 2.8.0 and OSGGIS from the svn repository - last updated<br>
to rev 179.<br>
<br>
Regards<br>
Dirk<br>
</div></div><br>_______________________________________________<br>
osg-users mailing list<br>
<a href="mailto:osg-users@lists.openscenegraph.org">osg-users@lists.openscenegraph.org</a><br>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>
<br></blockquote></div><br>