Hi Lucie,
I think this is a simple C++ issue.
First you create _model which is a pointer on a node.
Then you make a new node and set _model to store its adress.
Next, you load a new node and set _model to store it again. So the first
thing is, you don't need to do "_model = new osg::Node();"
So now _model is a pointer to a memory area where model1.osg is loaded.
Let's assume that you make something like view->setSceneData(_model).
Now, the view root node, which is also a pointeur, contain the same adress
than _model, where model1.osg is loaded.
Last, when you load a new model and set _model to store this new adress, you
are not modifying the viewer root node.
You should do a viewer->setSceneData(osgDB::readNodeFile("model2.osg")); or
maybe a group->replaceChild(_model,osgDB::readNodeFile("model2.osg"));
Don't hesitate to take a piece of paper to draw some memory allocation and
pointers to understand what is really done.
I hope this will help you.
Regards,
Vincent.
2010/12/10 lucie lemonnier <[email protected]>
> Hi,
>
> I want to change the 3D model dynamically at the runtime.
> I have inatialize my node at :
> _model = new osg::Node();
> _model = osgDB::readNodeFile("model1.osg");
>
> and when I do a particular action, I would like that the 3D model changes,
> I write this :
> _model = osgDB::readNodeFile("model2.osg");
> But it doesn't work!
> Would you have an idea?
>
> Thank you!
>
> Cheers,
> lucie
>
> ------------------
> Read this topic online here:
> http://forum.openscenegraph.org/viewtopic.php?p=34707#34707
>
>
>
>
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org