[osg-users] Functioncall error

Jean-Sébastien Guay jean-sebastien.guay at cm-labs.com
Mon Nov 16 10:57:40 PST 2009


Hi Thorsten,

textobj is a local object in your constructor, not a member of your 
class. Here are the changes you need.

> class TGTextNode : public osg::Geode
> {
> public:
>     TGTextNode(std::string T_Text, int T_Size, int T_Res, int T_PosX,
> 	int T_PosY, int T_PosZ);
> 
>     void addOutline();

   protected:
       osg::ref_ptr<osgText::Text> _textobj;

> };
> 
> TGTextNode::TGTextNode(std::string T_Text, int T_Size, int T_Res, int T_PosX,
> 	int T_PosY, int T_PosZ)
> {

         _textobj = new osgText::Text;
         // Then replace all textobj with _textobj below

> 	textobj->setAlignment(osgText::Text::CENTER_CENTER);
> 	textobj->setCharacterSize(T_Size);
> 	textobj->setFont("bewilder.ttf");
> 	textobj->setFontResolution(T_Res, T_Res);
> 	textobj->setPosition(osg::Vec3(T_PosX, T_PosY, T_PosZ));
> 	textobj->setColor(osg::Vec4(100, 50, 0, 1));
> 	textobj->setAxisAlignment(osgText::Text::SCREEN);
> 	textobj->setText(T_Text);
> 	//textobj->setBackdropType(osgText::Text::OUTLINE);
> 	//textobj->setBackdropColor(osg::Vec4(1,.1,.1,1));
> 	textobj->setDataVariance(osg::Object::DYNAMIC);
> 	this->addDrawable(textobj.get());
> }
> 
> void TGTextNode::addOutline()
> {
> 	textobj->setBackdropType(osgText::Text::OUTLINE);
> 	textobj->setBackdropColor(osg::Vec4(1,.1,.1,1));
> }


> I know that this is maybe a bit noobish, but im really stuck here.

No offense, but I think you need to pick up a book on C++ or programming 
in general. These are not noobish about OSG, they are noobish about 
programming, and we're normally here to answer questions about OSG itself...

Hope this helps,

J-S
-- 
______________________________________________________
Jean-Sebastien Guay    jean-sebastien.guay at cm-labs.com
                                http://www.cm-labs.com/
                         http://whitestar02.webhop.org/


More information about the osg-users mailing list