Hi Mathias, I'm afraid I've got too much to think about with the release to start ponder on other topics so I'm going to bow out gracefully. After 3.0 I'll start thinking about what might go into 3.2, so this would then be a natural time to bring up topics like how we evolve Nodes/Drawables/Visitors etc.
Cheers, Robert. 2011/6/24 Mathias Fröhlich <[email protected]>: > > Hi Robert, > > On Wednesday, June 22, 2011 17:17:26 Robert Osfield wrote: >> > At first it would probably help when the NodeVisitor is able to visit >> > Drawables using the usual accept mehtods or something like that. Then we >> > could probably just use the Geodes traverse method to walk the drawables. >> > One dfficulty in this approach is the Bilboard implementation that does >> > little more then just a traversal of all Drawables. >> >> I don't see any problems with handling subclasses from Geode, it'd be >> bit like how >> LOD subclasses from Group - it add a per child property that the the >> traverse method >> handles in a special way. A NodeCallback that overrides the traverse >> then would have >> to handle the special functionality of a Billboard. In the case of a >> Billboard we'd >> probably want to have a special handling of cases when chidlren are >> Drawable rather >> than Node's, as Drawables you can just manage the modelview matrix >> directly and don't >> need to worry about the view frustum transformation, while normal Nodes you >> have to push/pop the view frustum as we do right now for the normal >> Transform nodes. > > Hmm, I am not exactly sure I already see what you are thinking: > > I have started playing with this approach at some time. Attached is the patch > I had so far. The NodeVisitor is just extended by the Drawable. May be the > other drawable derived classes could be put there too. The patch just factors > out the loop body of the geode in the cull visitor and puts that into a new > CullVisitor::apply(Drawable&) method. > > That patch does not work for any billboard geode. This is just meant as a > miminmal sketch implementation. > > Now, If the billboard loop is implemented like the LOD nodes traversal method, > we need virtual access to the modelview matrix in the NodeVisitor base class > from the Billboard::traverse() method. Currently this is not available. > > So, may be {push,pop}ModelViewMatrix as a virtual method in the NodeVisitor? > Or do you already have a better idea to do that? > > Greetings > > Mathias > > _______________________________________________ > 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

