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
