[Paraview-developers] RenderModules converted to ServerManager
Proxies
Utkarsh Ayachit
utkarsh.ayachit at kitware.com
Mon Apr 18 16:34:19 EDT 2005
1) We don't have duplication of logic, since now the displayers and
DisplayWindow are removed. Batch mode now, can use the same
rendermodules and display proxies as the GUI does.
2) Since, camera, renderers etc. move becomes subproxies of render
modules, any GUI element when needing access to serverside objects no
longer needs to use vtkClientServerStream to get/set values from/to such
objects. Thus we are getting closer to the goal of the GUI having to
deal only with ServerManager objects which then deal with the VTK
objects, and the GUI has no need to directly access the server side VTK
objects at all.
3) Presently, the batch script is explicity dumped out. Thus, the
developer has three things to maintain: state, trace and batch!.
Now, batch script is nothing but a description of the server manager
state. With rendermodules now proxies, we can "soon" use the Server
Manager state to generate batch and thus no need to explicitly manage
batch script in GUI.
Moreland, Kenneth wrote:
> Could you elaborate on the benefits this change will give to the
ParaView API (particularly for client apps)? You mention a common
interface, but I do not understand what the proxy interface really buys
you over the polymorphism of class inheritance. The properties
supported by the server manager object should follow the class
hierarchy. When would you know about a set of properties for a specific
render module but not know enough to down cast the class directly?
>
> -Ken
>
>
> ------------------------------------------------------------------------
> *From:* paraview-developers-bounces at paraview.org on behalf of Utkarsh
Ayachit
> *Sent:* Fri 4/15/2005 11:25 AM
> *To:* paraview-developers at paraview.org
> *Subject:* [Paraview-developers] RenderModules converted to
ServerManager Proxies
>
> Update on changes to the rendermodules I will be committing this
afternoon:
> We have converted all the rendermodules and part displays to proxies.
Thus,
> one no longer needs to access them using their peculiar API, instead
use the
> proxy-property interface, just like any other VTK source/filter proxy.
>
> Following is a rough mapping between the old rendermodule classes and the
> new proxies.
> vtkPVRenderModule --> vtkSMRenderModuleProxy
> vtkPVSimpleRenderModule --> vtkSMSimpleRenderModuleProxy
> vtkPVLODRenderModule --> vtkSMLODRenderModuleProxy
> vtkPVCompositeRenderModule -->
vtkSMCompositeRenderModuleProxy
> vtkPVCaveRenderModule --> vtkSMCaveRenderModuleProxy
> vtkPVDeskTopRenderModule -->
> vtkSMIceTDesktopRenderModuleProxy
> vtkPVIceTRenderModule --> vtkSMIceTRenderModuleProxy
> vtkPVMultiDisplayRenderModule -->
> vtkSMMultiDisplayRenderModuleProxy
>
> All render modules proxies are servermanager objects and hence cannot be
> accessed from the process module (earlier process module would create the
> render modules, now it's the application (vtkPVApplication) that
creates and
> maintains a pointer to the render module.
>
> Similarly, all the part displays have been restructured to define a
property
> interface (in ServerManager XMLs) so that they too can be accessed
using the
> property API.
>
> vtkSMPartDisplay --> vtkSMSimpleDisplayProxy
> vtkSMLODPartDisplay --> vtkSMLODDisplayProxy
> vtkSMCompositePartDisplay --> vtkSMCompositeDisplayProxy
> vtkSMMultiDisplayPartDisplay --> vtkSMMultiDisplayProxy
> vtkSMCubeAxesDisplay --> vtkSMCubeAxesDisplayProxy
> vtkSMPlotDisplay --> vtkSMXYPlotDisplayProxy
>
> Earlier, the part display pointer was obtained from the PVSource. Now,
> instead, one would obtain the DisplayProxy pointer
> (vtkPVSource::GetDisplayProxy()) and instead of directly calling
methods on
> the display object use properties or use convenience methods defined
on the
> display proxy (convenience methods do the same thing as getting a
property
> with a specific name,and to set the value: they are just defined for
> convenience and are named with a ....CM appended eg.
> vtkSMDisplayProxy::SetColorCM().)
>
> The render module proxy provides pointer to the client side
> renderers/renderwindow/camera. However, typically, one is advised to use
> properties to access any of there methods eg. One should use the
properties
> (such as CameraFocalPoint) exposed by the Render Module proxy to change
> camera properties.
>
> Also, the ServerManager XML capabilities have been expanded (see
> documentation of vtkSMProxy, vtkSMProperty).
>
> These changes would entail that code using the rendermodules/ part
displays
> will have to change, but hopefully, this won't be too difficult.
>
> Utkarsh.
>
> _______________________________________________
> Paraview-developers mailing list
> Paraview-developers at paraview.org
> http://public.kitware.com/mailman/listinfo/paraview-developers
>
More information about the Paraview-developers
mailing list