Hi Werner, Please stop diving into discussing a specific implementation in code. Please step back and do as I requested. Explain what you are trying to do at higher level, I asked you to do this for a reason - I can't really help properly when you dive down to low level code.
Robert. On Thu, Sep 16, 2010 at 11:24 AM, Werner Modenbach <[email protected]> wrote: > OK, I'll do my best... > > My app is a Qt app and I'm using AdapterWidget in single threaded mode as > recommended. > My global scene is a switch "bigScene" and one child is my node "scene" which > is also a switch. > Both are permanent variables stored using osg::ref_ptr. > > "scene" has many leaves, each representing a yarn in the textile. > They are just temporary variables attached to the "scene" by calling > scene->addNode(yarnNumber, yarn.get()); > or after changes by > scene->setNode(yarnNumber, yarn.get()); > Also the temporaryly used nodes are stored in osg::ref_ptr. > > Now it comes to dynamic: > Physical effects changing the "fabric" are calculated in threads but the > results are giveb to my view in the main display thread - this is ensured! > > When knowing the yarn has changed, I create a NEW geometry, attach it to a NEW > yarn node and call "scene->setNode(...);" as described above. So everything is > done in one single main thread. > > What I recognized is: > 1) When just calling "scene->setNode(...);" the displayed scene doesn't > change. > 2) When calling "bigScene->setNode(0), scene.get()" again, I see all my > changes. > > My questions: > 1) Is it recommended to replace some node just like that? Any problems with > caching etc.? > 2) Why does "bigScene" not recognize the change of the leafes? > > Also when doing big fabrics and using trackball frequently the program is > terminated with a message like "Error from GL driver" (not exact). > > I hope I could give you enough info. Thanks for your kind support. > > - Werner - > > On Thursday 16 September 2010 11:56:02 Robert Osfield wrote: >> Hi Werner, >> >> Could you back out a bit, and introduce the problem your are tackling >> at a high level so that others get a picture about what you are trying >> to achieve, diving into what solution you've code is often premature. >> >> From what I can gather integration of the simulation code and >> rendering code is at the core of what you are trying to achieve. >> Could you explain more about the simulation code, such as how it's >> threaded, is synchronous to the rendering thread etc. Also on the >> rendering side, how do you want to render it? >> >> Robert. >> >> On Thu, Sep 16, 2010 at 10:36 AM, Werner Modenbach >> >> <[email protected]> wrote: >> > OK Robert, >> > >> > I still have the impression I have exactly the same case as Dženan. >> > But if you prefer I'll open a new thread. >> > I'm using AdapterWidget in Qt and I'm running it single threaded as >> > Dženan does. >> > I'm replacing a node in the scene graph by a newly created one. >> > >> > Here is my scene hierarchie: >> > >> > osg::ref_ptr<osg::Switch> bigScene; // The whole scene >> > >> > My textile: >> > osg::ref_ptr<osg::Switch> scene; // Textile fabric >> > attached to the whole scene by >> > bigScene->setNode(0, scene.get()); >> > >> > scene has many nodes representing one textile thread each, defines as >> > osg::ref_ptr<osg::Node> yarn; >> > attached to scene by >> > scene->setNode(yarnNumber, yarn.get()); >> > >> > I sayed I have to recalculate the geometry of the yarn nodes frewuently. >> > This is done by creating a NEW geometry and a NEW yarn node, the >> > replacing the old yarn node by the new one calling: >> > scene->setNode(yarnNumber, yarn.get()); >> > >> > So what I actually do is replacing an existing node by a new one. >> > When doing just that, my bigScene doesn't recognize the changed leafes. >> > But after calling >> > bigScene->setNode(position, scene.get()); >> > >> > again - with the same scene.get() as before - the changes were recognized >> > immediately. >> > I know my approach maybe incorrect but I'm also just at the beginning of >> > my work with osg. >> > >> > - Werner - >> > _______________________________________________ >> > 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 > > -- > TEXION Software Solutions > > TEXION GmbH - Rotter Bruch 26a - D 52068 Aachen - HRB 14999 Aachen > Fon: +49 241 475757-0, Fax: +49 241 475757-29, web: http://www.texion.eu > > Geschäftsführer/Managing Director: Werner Modenbach > _______________________________________________ > 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

