[osg-users] Problems with osgText::Text internal transformations and LineSegmentIntersector

Brian Hutchison bhutchison at systra.com
Tue Mar 20 03:46:13 PDT 2018


When I use any of the following methods to reposition osgText::Text the picking fails when used with LineSegmentIntersector.


text->setPosition() // anything other than {0.0,0.0,0.0}
text->setRotation() // anything other than osg::Quat(0.0, osg::Z_AXIS)
text->setAlignment() // anything other than LEFT_BOTTOM

As far as I can work out from debugging, the bounds are being correctly calculated and "intersectAndClip" is returning true.  The problem seems to be when "drawable->accept" is called in the "intersect" method, the IntersectFunctor does not have the transformations that Text is using and the vertices passed to it are not transformed.

The only way I can find around this is to place the text inside PositionAttitudeTransform's and do the positioning myself.  Unfortunately, since I do not know the eventual dimensions of the text, doing a CENTER_CENTER alignment is practically impossible.

If I leave the alignment to be done by Text then a CENTER_CENTER alignment means that you can only pick the top left quarter of the text.

I have tried placing the text inside either a Geode or a Group but it makes no difference.

I would be very happy if I was simply not calling something I should be to initalise the Text or its container correctly.

We are using OSG 3.5.6 statically linked via VCPKG.

Any help gratefully received,



Read this topic online here:

More information about the osg-users mailing list