[Paraview] Generating data on the client side - a development environment
Louis Le Grange
llg at mtechindustrial.com
Thu Dec 18 04:28:04 EST 2008
Hallo
I have a question regarding a requirement that seems a bit out of line with the client-server architecture of Paraview;
Let me start off by giving the bigger picture of the application that I have in mind;
I want to use Paraview in a development environment. The development environment will operate in a standard Python console. As I develope (build up) my data I want to visualize it periodically. I don't want to regenerate the data from sratch everytime I want to visualize it. I basically want to work with live data that persists on the client side.
A typical example Python script that I envisage using Python wrapped VTK and Paraview objects to display vtkPolydata would look something like this:
=========================================================================================
# Initialize Paraview pipeline
mySource = InitializePV()
# Create poly data and plot it
import vtk
pts=vtk.vtkPoints()
pts.InsertNextPoint(0,0,0)
pts.InsertNextPoint(1,0,.0)
pts.InsertNextPoint(2,1,0)
pts.InsertNextPoint(3,3,0.)
cel=vtk.vtkCellArray()
cel.InsertNextCell(4)
cel.InsertCellPoint(0)
cel.InsertCellPoint(1)
cel.InsertCellPoint(2)
cel.InsertCellPoint(3)
pd = vtk.vtkPolyData()
pd.SetPoints(pts)
pd.SetPolys(cel)
plotPolys(mySource,pd)
##### Change the points and plot
pd.GetPoints().SetPoint(2, 1,2,3)
plotPolys(mySource,pd)
##### Change the points and plot
pd.GetPoints().SetPoint(2, 4,5,4)
plotPolys(mySource,pd)
# etc
====================
The Python functions initializePV() and plotPoints can typically look like the following:
initializePV():
=========
pxm = servermanager.ProxyManager()
sph=servermanager.sources.SphereSource()
pxm.RegisterProxy("sources", "mysource", sph)
view = pxm.GetProxy("views", "RenderView1")
rep = servermanager.CreateRepresentation(sph, view)
return sph
plotPoints(sourceObject,vtkObject):
===============
# Although this example currently generates vtkPoints I actually want to send vtkPolyData to the Paraview source - but this
# is only to demonstrate the development environment I have in mind...
# The current vtk and proxy source classes needs to be updated to take a vtkPolyData pointer...
sourceObject.SetMyPolyData(vtkObject)
sourceObject.Update()
=========================================================================================
In the example above the vtk data (pd) is a live object on the client side.
In short I want to generate vtk data on the client side and send a data pointer (typically a vtkPolyData pointer) to the visualization pipeline in Paraview. I thought of modifying a source object in Paraview to take my data instead of generating the data on the server side.
I don't want to work with the programmable source using a script for that implies that the data is again generated on the server side.
According to the Paraview documentation it seems that the only way to manipulate the Paraview source objects is through Property objects (VectorProperty, ProxyProperty and InputProperty). Does this imply that according to the current architecture that I will not be able to send a vtkObject (vtkPolyData) pointer to the server? If so what are the options with regards to the Paraview architecture so that I can use Paraview in the above demonstrated manner - i.e. generating data on the client side and let Paraview operate on such data?
Thanks in advancxe,
Louis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20081218/c54e53d7/attachment-0001.htm>
More information about the ParaView
mailing list