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

Reply via email to