Dear Robert,

Thanks for the input! There are multiple routes ahead:


   1. Assuming that the scaling is isotropic above the dragger, all
   squishing comes from the dragger itself. One could then make the AntiSquish
   aware of the Dragger and attach itself to the draggers change-callback. The
   re-calculation of the squish would only occur when the dragger changed its
   shape. One problem may be that the dragger may change through setMatrix(),
   and there will be no callback. One possible solution would be to change the
   MatrixTransform in such a way that it uses a dirty-count rather than the
   _inverseDirty boolean. The AntiSquish could then check the getDirtyCount()
   of the dragger, and adapt if need be.
   2. One could compute the squish every time, and only apply it to the
   node-visitor/state, hence not change the object itself (which would then
   inherit osg::Group rather than MatrixTransform). The problem (may) be in
   caching, as for the majority of the times, there will be no re-calculation
   needed. On the contrary, there will not be 100k draggers in the scene, so
   perhaps no one cares.

Do you have any preferences among these routes, or do you see a better one?
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

Reply via email to