[Paraview-developers] More server manager woes.

Berk Geveci berk.geveci at gmail.com
Wed Apr 20 13:20:32 EDT 2005


> (1) Should the ModifiedAtCreation flag really exist?  The point seems to
> be to make sure that when the object is created, its state reflects the
> default values specified in the xml.  Is that important?  Why would the
> default values in the xml be more important than those in the class
> itself?  Does it matter that they don't agree?  These are proxy objects
> after all.  The programmer must know of the possibility that the state
> does not match up perfectly.  ParaView turns this flag off.  Is there
> any client that really needs it on?  Could it be replaced with a method
> in vtkProxy that updates all properties regardless of the modified flag?

I think that a method that pushed all values whether they are modified
or not is better than using ModifiedAtCreation.  I can't remember the
motivation behind the flag but I have no objection to removing it. The
web stuff might depend on it though. Utkarsh? Andy?

> (2) Should everything in a proxy be a property?  A property, in my mind,
> is just a piece of state.  Both "Render" and "ForceUpdate" are not
> really properties in that sense.  They are commands that invoke some
> sort of process.  They may change the state, but probably in ways far
> outside those of other properties.  To me (and probably to most
> programmers) setting a property named "ForceUpdate" seems far removed
> from "update the upstream pipeline now."  Is this hokey mechanism better
> than just using a client/server stream directly?  Should proxies also
> have commands in addition to properties?  That would help prevent code
> from blindly doing pipeline updates or renders when it thinks it's just
> modifying some fields in a class.

I agree with these too. I actually prefer a C++ interface for things
like render, update etc. However, for applications that require a
property like interface a command object makes more sense. However
this is a bit tricky because properties do not have access to the
actual ids so they can't directly invoke. Here is one way of doing it:
* Make command subclass of property, make sure ImmediateUpdate is on
and that Modified is false.
* Add Invoke command that calls this->Modified()


More information about the Paraview-developers mailing list