[Paraview] Problem loading multiple volumes in ParaviewWeb

Sebastien Jourdain sebastien.jourdain at kitware.com
Thu Apr 28 16:31:32 EDT 2011


This is a good news,

I remember that you were asking for JavaScript code samples.
In fact in the Sandbox sample application the whole Python tutorial has been
translated as JavaScript code, so you can see the difference between the
Python and the JavaScript API as well as testing your code.

Seb

On Thu, Apr 28, 2011 at 4:13 PM, Rajvikram Singh <rajvikrams at yahoo.com>wrote:

>
> Thanks Sebastien .. that was the problem :) It works fine now and I can
> switch the different datasets on/off.
>
>
>
>
> --- On *Thu, 28/4/11, Sebastien Jourdain <sebastien.jourdain at kitware.com>*wrote:
>
>
> From: Sebastien Jourdain <sebastien.jourdain at kitware.com>
> Subject: Re: [Paraview] Problem loading multiple volumes in ParaviewWeb
> To: "Rajvikram Singh" <rajvikrams at yahoo.com>
> Cc: paraview at paraview.org
> Date: Thursday, 28 April, 2011, 6:19 PM
>
>
> Hi Raj,
>
> The reason why you are not seeing the same settings across your data is
> because you need to apply your SetDisplayProperties for each loaded data.
> The reason why only the last one is set correctly, it's because ParaView has
> a stack of active objects. And since the SetDisplayProperties requires a
> "proxy" and a "view", if you do not provide them, ParaView will use the last
> one created.
>
> So to solve what you are facing you have to call the following code:
>
>  pv.SetDisplayProperties( {
>             proxy: data1,
>             view  : view1,
>             SelectMapper : 'GPU',
>             Representation : 'Volume',
>             LookupTable : lut1,
>             ColorArrayName : 'ImageFile',
>             ScalarOpacityFunction : f,
>             } );
>
> But the best way to go might be to define a method that do that
>
> function setDisplayProperties( data ) {
>    pv.SetDisplayProperties( {
>             proxy: data,
>             view  : view1,
>             SelectMapper : 'GPU',
>             Representation : 'Volume',
>             LookupTable : lut1,
>             ColorArrayName : 'ImageFile',
>             ScalarOpacityFunction : f,
>             } );
> }
>
> and then just call
>
> setDisplayProperties(data1);
> setDisplayProperties(data2);
>
> Seb
>
> On Wed, Apr 27, 2011 at 6:32 PM, Rajvikram Singh <rajvikrams at yahoo.com<http://mc/compose?to=rajvikrams@yahoo.com>
> > wrote:
>
> Hi everyone .. Greetings !
>    I'm trying to create a web visualization page where biologists in our
> lab can see their multi-channel volume data. Each channel is a separate file
> and since there could be as many as 11-12 channels I want to give them the
> ability to switch the volumes on/off or even see two volumes in the same
> space.
>
> To test this I wrote the following Javascript code to load two volume files
> (.vtk) and then show only one. The problem is though I get no errors, I can
> only see the last file that's loaded (I've tried different combination of
> files). When I try to show the first file, all I see is a gray box instead
> of the data.
>
>  It almost feels like the OpenDataFile() function is using the same object
> and overwrites it. I'm new to Javascript and would not be surprised if I'm
> doing something silly but any advice is sincerely appreciated.
>
> Javascript Code :
>
>             // Set the web service base URL
>             var serverUrl =
> "<%=request.getScheme()%>://<%=request.getServerName()%>:<%=request.getServerPort()%>/PWService";
>             //
>             // Create a paraview proxy
>             //
>             var pv = new Paraview(serverUrl);
>             pv.createSession("Test Visualization", "Ver 0.1", "default");
>             var view1 = pv.CreateIfNeededRenderView();
>             pv.Render();
>
>             // Load the data files in RAM
>             var data1 = pv.OpenDataFile('test1.vtk');
>             var Representation1 = pv.Hide({proxy: data1});
>
>             var data2 = pv.OpenDataFile('test2.vtk');
>             var Representation2 = pv.Hide({proxy : data2});
>
>
>             // Init view parameters
>             var lut1 = pv.GetLookupTableForArray({arrayname : "ImageFile",
> num_components : 1, HSVWrap : 0, NanColor : [0.0, 0.66666666666666663, 0.0],
> RGBPoints : [1.0, 0.0, 0.0, 0.0, 16564.27904630101, 1.0,
> 0.035950255588616767, 0.0, 19924.923666800998, 1.0, 0.035950255588616767,
> 0.0, 39728.909301543368, 0.0, 0.66666666666666663, 0.0, 65294.000000000007,
> 0.0, 0.0, 0.0], ColorSpace : 'HSV'});
>
>             var f = pv.CreatePiecewiseFunction( {Points:[0.0, 0.0, 2762.37,
> 0.0588235, 2882.47, 0, 6965.97, 0.235294, 15373.2, 0.323529, 25221.6, 0,
> 26662.9, 0, 36751.5, 0, 44318, 0.0, 52124.7, 0.323529, 63054, 0.294118,
> 65336, 0.294118] });
>
>
>             pv.SetDisplayProperties( {
>             view  : view1,
>             SelectMapper : 'GPU',
>             Representation : 'Volume',
>             LookupTable : lut1,
>             ColorArrayName : 'ImageFile',
>             ScalarOpacityFunction : f,
>             } );
>
>             // Show one dataset only
>             pv.Show({proxy : data2});
>
>
> Thanks in advance
> Raj
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the ParaView Wiki at:
> http://paraview.org/Wiki/ParaView
>
> Follow this link to subscribe/unsubscribe:
> http://www.paraview.org/mailman/listinfo/paraview
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20110428/cbfea0ad/attachment.htm>


More information about the ParaView mailing list