Hello Michael,
Michael Babcock wrote:
> I have a custom Geometry subclass where I have overridden adjustVolume.
> If I call invalidateVolume on this geometry my version will be called on
> render, but only in local mode. In a cluster mode the invalidateVolume
> on the client never causes adjustVolume to be called on client or server.
adjustVolume is only called if the volume is thought to be invalid and
then updateVolume is called. I wonder if the volume is simply considered
up-to-date on the servers.
In the cluster setup, does your client render or do only the servers
render? If it does not render it is possible that nothing calls
updateVolume on the client side, can you try calling updateVolume() on
the root of your scene before syncing over the network?
I'm not sure why the servers don't notice that the volume they get is
not valid though...
> I noticed that Node::changed() calls invalidateVolume for certain fields
> such as travMask, so I tried to trigger it by wrapping my invalideVolume
> like so:
>
> beginEditCP(_parents[0], Node::TravMaskFieldMask);
> invalidateVolume();
> endEditCP(_parents[0], Node::TravMaskFieldMask);
>
> However this had no effect.
no, calling invalidate volume from your core should be enough. It will
mark all parent volumes as invalid. However, this information does not
seem to propagate over the cluster for some reason.
Cheers,
Carsten
------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users