<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Hi Sebastien<br>&nbsp;&nbsp; So I did make progress and am able to correctly show 
an interactive slice filter on a volume using all the advice you gave. 
Thank you for that. I'm attaching a screenshot and the only thing that's
 missing is the coloring by a lookup table. As you can see currently the
 lookup table has no effect. When I try to set the DisplayProperties of 
the slice proxy to specify the 'ColorArrayName', the browser complains 
:&nbsp; "Error: uncaught exception: Could not locate array ImageFile in the 
input.". I'm not sure why it cannot find the array. The look up table is
 correct since I'm using it for doing volume rendering of the same 
dataset in a different piece of code.<br><br>So I commented the 'ColorArrayName' option out in the code for now.&nbsp; The code looks is as shown below :<br><br><br><div style="margin-left: 40px; font-style: italic; color: rgb(0, 0, 255);">// Set the web service base URL<br>&nbsp;&nbsp;&nbsp;
 var serverUrl = 
"&lt;%=request.getScheme()%&gt;://&lt;%=request.getServerName()%&gt;:&lt;%=request.getServerPort()%&gt;/PWService";<br>&nbsp;&nbsp;&nbsp; //<br>&nbsp;&nbsp;&nbsp; // Create a paraview proxy<br>&nbsp;&nbsp;&nbsp; //<br>&nbsp;&nbsp;&nbsp; var pv = new Paraview(serverUrl);<br>&nbsp;&nbsp;&nbsp; pv.createSession("Test ParaviewWeb", "Just testing", "default");<br><br><br>&nbsp;&nbsp;&nbsp; // Create pipeline<br>&nbsp;&nbsp;&nbsp; var f = 'test.vtk';<br>&nbsp;&nbsp;&nbsp; var reader1 = pv.OpenDataFile({filename : f});<br><br>&nbsp;&nbsp;&nbsp; var dataInfo = pv.GetDataInformation({proxy : reader1});<br><br>&nbsp;&nbsp;&nbsp; var view1 = pv.CreateIfNeededRenderView();<br><br>&nbsp;&nbsp;&nbsp; pv.Show({proxy : reader1});<br><br>&nbsp;&nbsp;&nbsp; // set origin in the middle of dataset<br>&nbsp;&nbsp;&nbsp; pv.ResetCamera();<br>&nbsp;&nbsp;&nbsp; //var activeView =
 pv.CreateIfNeededRenderView();<br>&nbsp;&nbsp;&nbsp; view1.setCenterOfRotation(view1.getCameraFocalPoint());<br><br>&nbsp;&nbsp;&nbsp; // instantiate a slice filter object<br>&nbsp;&nbsp;&nbsp; var slice = pv.Slice({Input : reader1, SliceType : 'Plane'});<br>&nbsp;&nbsp;&nbsp; var sliceType = slice.getSliceType();<br><br>&nbsp;&nbsp;&nbsp; var sliceWidget = pv.CreateBindedWidget({proxy : sliceType, view : view1});<br>&nbsp;&nbsp;&nbsp; sliceWidget.setPlaceWidget(dataInfo.Bounds);<br>&nbsp;&nbsp;&nbsp; sliceWidget.setEnabled(1);<br>&nbsp;&nbsp;&nbsp; sliceWidget.setVisibility(1);<br>&nbsp;&nbsp;&nbsp; sliceWidget.setNormal(0,0,1);<br>&nbsp;&nbsp;&nbsp; sliceWidget.setOrigin(view1.getCenterOfRotation());<br><br>&nbsp;&nbsp;&nbsp;
 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'});<br><br>&nbsp;&nbsp;&nbsp; // Set display properties for the slice proxy<br>&nbsp;&nbsp;&nbsp; pv.SetDisplayProperties( {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; proxy : slice,<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; view&nbsp; : view1,<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Representation : 'Surface',<br>//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ColorArrayName : 'ImageFile',<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; LookupTable : lut1<br>&nbsp;&nbsp;&nbsp; } );<br><br>&nbsp;&nbsp;&nbsp; pv.Hide({proxy : reader1});<br>&nbsp;&nbsp;&nbsp; var dataRep1 = pv.Show({proxy : slice});<br>&nbsp;&nbsp;&nbsp; pv.Render();<br><br>&nbsp;&nbsp;&nbsp; // Create and bind renderer<br>&nbsp;&nbsp;&nbsp; var renderer = new JavaScriptRenderer("rendererName", serverUrl);<br>&nbsp;&nbsp;&nbsp;
 renderer.init(pv.sessionId, view1.__selfid__);<br>&nbsp;&nbsp;&nbsp; renderer.setSize('720','480');<br>&nbsp;&nbsp;&nbsp; renderer.bindToElementId("renderer-container-id");<br>&nbsp;&nbsp;&nbsp; renderer.start();<br><br></div><br><br>--- On <b>Tue, 3/5/11, Sebastien Jourdain <i>&lt;sebastien.jourdain@kitware.com&gt;</i></b> wrote:<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><br>From: Sebastien Jourdain &lt;sebastien.jourdain@kitware.com&gt;<br>Subject: Re: [Paraview] ParaviewWeb : Adding interactive slice filter to pipeline<br>To: "Rajvikram Singh" &lt;rajvikrams@yahoo.com&gt;<br>Cc: paraview@paraview.org<br>Date: Tuesday, 3 May, 2011, 6:42 PM<br><br><div id="yiv1201626623">Hi Raj,<div><br></div><div>Normally there shouldn't be any difference except maybe for the representation part that should be 'Surface' and not 'Volume'. But the best thing to do is probably post your code here so I can see it
 so I can figure out what might be wrong.</div>
<div><br></div><div>Seb<br><br><div class="yiv1201626623gmail_quote">On Mon, May 2, 2011 at 7:52 PM, Rajvikram Singh <span dir="ltr">&lt;<a rel="nofollow" ymailto="mailto:rajvikrams@yahoo.com" target="_blank" href="/mc/compose?to=rajvikrams@yahoo.com">rajvikrams@yahoo.com</a>&gt;</span> wrote:<br><blockquote class="yiv1201626623gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font: inherit;" valign="top"><br>Thanks Sebastien. I must have been very close because that's practically what I tried too. I just copy pasted your code into a file and it works great. I just had to change the normal to (1,0,0) but I can see the interactive slice widget and that makes me very happy :)<br>
<br>But then I tried to replace the source with a test volume file read by OpenDataFile() and though I can see the outline of the data, the Slice widget does not show any more. <br><br>Do I need to do something different for volume data ?<div class="yiv1201626623im">
<br><br><br><br><br>--- On <b>Tue, 3/5/11, Sebastien Jourdain <i>&lt;<a rel="nofollow" ymailto="mailto:sebastien.jourdain@kitware.com" target="_blank" href="/mc/compose?to=sebastien.jourdain@kitware.com">sebastien.jourdain@kitware.com</a>&gt;</i></b> wrote:<br></div><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;">
<div class="yiv1201626623im"><br>From: Sebastien Jourdain &lt;<a rel="nofollow" ymailto="mailto:sebastien.jourdain@kitware.com" target="_blank" href="/mc/compose?to=sebastien.jourdain@kitware.com">sebastien.jourdain@kitware.com</a>&gt;<br>Subject: Re: [Paraview] ParaviewWeb : Adding interactive slice
 filter to pipeline<br>To: "Rajvikram Singh" &lt;<a rel="nofollow" ymailto="mailto:rajvikrams@yahoo.com" target="_blank" href="/mc/compose?to=rajvikrams@yahoo.com">rajvikrams@yahoo.com</a>&gt;<br>Cc: <a rel="nofollow" ymailto="mailto:paraview@paraview.org" target="_blank" href="/mc/compose?to=paraview@paraview.org">paraview@paraview.org</a><br>
</div>Date: Tuesday, 3 May, 2011, 4:02 AM<div><div></div><div class="yiv1201626623h5"><br><br><div>Hi Raj,<div><br></div><div>Python trace provide mostly a state of your action which already give you some hints on the properties involved and the values that you need.</div>
<div>Although, I agree that it doesn't do the whole work for you, but it's definitely a good start. If you are really expecting to have an API for the proxies you can give a look at the following pages that list all the filters available with their properties. But once again, you should write your code in an interactive manner inside the JavaScript console in order to validate each peace of it.</div>

<div><br></div><div><a rel="nofollow" target="_blank" href="http://www.paraview.org/Wiki/ParaView/Users_Guide/Sources">http://www.paraview.org/Wiki/ParaView/Users_Guide/Sources</a></div><div><a rel="nofollow" target="_blank" href="http://www.paraview.org/Wiki/ParaView/Users_Guide/List_of_filters">http://www.paraview.org/Wiki/ParaView/Users_Guide/List_of_filters</a></div>

<div><br></div><div>After that I agree that developing your own application on top of ParaView do require some skills on the ParaView framework itself.</div><div><br></div><div>Regarding the PlaceWidget() question, this is based on VTK (as ParaView rely on VTK). It allow the widget to stick to a given location based on bounds that are used to draw the bounding box with the plane inside it.</div>

<div><br></div><div>Seb</div><div><br></div><div>PS: I've paste a simple code that do what you want I believe.</div><div><br></div><div><div>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<a rel="nofollow" target="_blank" href="http://www.w3.org/TR/html4/loose.dtd">http://www.w3.org/TR/html4/loose.dtd</a>"&gt;</div>

<div>&lt;html&gt;</div><div>&nbsp;&nbsp; &nbsp;&lt;head&gt;</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;</div><div><br></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;script src="/PWService/js/ParaViewWeb.js" type="text/javascript"&gt;&lt;/script&gt;</div>

<div><br></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;title&gt;Load state and show all views&lt;/title&gt;</div><div>&nbsp;&nbsp; &nbsp;&lt;/head&gt;</div><div>&nbsp;&nbsp; &nbsp;&lt;body onUnload="pv.disconnect();"&gt;</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;div id="page"&gt;</div>

<div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;/div&gt;</div><div><br></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;script type="text/javascript"&gt;</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// Set the web service base URL</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var serverUrl = "/PWService";</div>

<div><br></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// Create a paraview proxy</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var pv = new Paraview(serverUrl);</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pv.createSession("PropertyBind-widget", "testing-webapp");</div>

<div><span style="white-space: pre-wrap;">        </span> &nbsp; &nbsp;log = pv.getPlugin("log");</div><div><br></div><div><span style="white-space: pre-wrap;">        </span>&nbsp;&nbsp; &nbsp;// Create pipeline</div>
<div><span style="white-space: pre-wrap;">        </span> &nbsp; &nbsp;var wavelet = pv.Wavelet();</div><div><span style="white-space: pre-wrap;">        </span> &nbsp; &nbsp;var dataInfo = pv.GetDataInformation({proxy:wavelet});</div>
<div><span style="white-space: pre-wrap;">        </span> &nbsp; &nbsp;var view1 = pv.CreateIfNeededRenderView();</div><div><span style="white-space: pre-wrap;">        </span> &nbsp; &nbsp;pv.Render();</div><div><br></div>
<div><span style="white-space: pre-wrap;">        </span> &nbsp; &nbsp;var sliceFilter = pv.Slice({Input : wavelet});</div><div><span style="white-space: pre-wrap;">        </span> &nbsp; &nbsp;var plan = sliceFilter.getSliceType();</div>
<div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;plan.setNormal(0,0,1);</div><div><span style="white-space: pre-wrap;">        </span> &nbsp; &nbsp;plan.setOrigin(0,0,0);</div><div><br></div><div><span style="white-space: pre-wrap;">        </span> &nbsp; &nbsp;var sr = pv.CreateBindedWidget({proxy : plan, view : view1});</div>

<div><br></div><div><span style="white-space: pre-wrap;">        </span> &nbsp; &nbsp;sr.setPlaceWidget(dataInfo.Bounds);</div><div><br></div><div><span style="white-space: pre-wrap;">        </span>&nbsp;&nbsp; &nbsp;sr.setEnabled(1);</div>
<div><span style="white-space: pre-wrap;">        </span>&nbsp;&nbsp; &nbsp;sr.setVisibility(1);</div><div><span style="white-space: pre-wrap;">        </span>&nbsp;&nbsp; &nbsp;</div><div><span style="white-space: pre-wrap;">        </span> &nbsp; &nbsp;var dataRep1 = pv.Show({proxy : sliceFilter});</div>

<div><span style="white-space: pre-wrap;">        </span> &nbsp; &nbsp;</div><div><span style="white-space: pre-wrap;">        </span> &nbsp; &nbsp;// ---- For JavaScript ----</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var rendererJs1 = new JavaScriptRenderer("jsRenderer-1", serverUrl);</div>

<div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rendererJs1.init(pv.sessionId, view1.__selfid__);</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rendererJs1.setSize('500','500');</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rendererJs1.bindToElementId("page");</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rendererJs1.start();</div>

<div><br></div><div><span style="white-space: pre-wrap;">        </span> &nbsp; &nbsp;pv.ResetCamera();</div><div><br></div><div><br></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;/script&gt;</div><div>&nbsp;&nbsp; &nbsp;&lt;/body&gt;</div><div>&lt;/html&gt;</div>
</div><div><br></div><div><br><br><div>On Mon, May 2, 2011 at 6:16 PM, Rajvikram Singh <span dir="ltr">&lt;<a rel="nofollow" target="_blank" href="http://mc/compose?to=rajvikrams@yahoo.com">rajvikrams@yahoo.com</a>&gt;</span> wrote:<br>
<blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font: inherit;" valign="top"><div><table style="width: 526px; min-height: 2834px;" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; font-size-adjust: inherit; font-stretch: inherit; font-family: arial; font-size: 10pt;">

<br>Hi Sebastien<br>&nbsp;&nbsp; Thanks once again for the prompt response. I realize I should not make assumptions about properties but the whole Javascript model makes it difficult to debug. This is my first Javascript experience and I'm guessing that is my biggest problem :)<br>

<br>Also there is an inherent problem with the Python trace in Paraview. In theory it sounds wonderful but when I use it from the UI, it seems to miss some important information which makes it feel
 like it cannot be trusted.&nbsp; As a simple example, if I create a cone source and apply the slice filter to it and click the "Show Widget" check box on and off, the python trace I get is as follows&nbsp; : <br>&nbsp; <br>

<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">try: paraview.simple</p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">except: from paraview.simple import *</p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">paraview.simple._DisableFirstRenderCameraReset()</p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);"></p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">Cone2 = Cone()</p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);"></p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">RenderView1 = GetRenderView()</p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">DataRepresentation5 = Show()</p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">DataRepresentation5.EdgeColor = [0.0, 0.0, 0.50000762951094835]</p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);"></p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">Slice3 = Slice( SliceType="Plane" )</p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);"></p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">RenderView1.CameraPosition = [-<a rel="nofollow">0.8662633794</a>3852127, -2.9008214092444833, 1.047837071997098]</p>

<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">RenderView1.CameraClippingRange = <a rel="nofollow">[1.7197276063</a>743807, 5.0792474812948285]</p>

<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);"></p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">Slice3.SliceOffsetValues = [0.0]</p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">Slice3.SliceType = "Plane"</p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);"></p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">DataRepresentation6 = Show()</p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">DataRepresentation6.EdgeColor = [0.0, 0.0, 0.50000762951094835]</p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);"></p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">RenderView1.CameraViewUp = [-0.05160914336948845, <a rel="nofollow">0.3512370908</a>5212862, 0.93486309282718028]</p>

<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">RenderView1.CameraPosition = [0.96899222199550616, -2.8404682287153862, 1.1206845835066597]</p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">RenderView1.CameraClippingRange = [1.3773762963261489, 5.5101972459535187]</p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);"></p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">DataRepresentation5.Visibility = 0</p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);"></p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">RenderView1.CameraClippingRange = <a rel="nofollow">[1.3258836594</a>339682, 5.702986199114493]</p>

<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);"></p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">Slice3.SliceType.Origin = [-0.36490894792831258, 0.0, 0.0]</p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);"></p>
<p style="margin: 0px 0px 0px 40px; text-indent: 0px; font-style: italic; color: rgb(0, 0, 255);">Render()</p>
<p style="margin: 0px; text-indent: 0px;"></p><br>Notice there is no record of the 'Show Widget' or 'Hide Widget' property being set.<br><br>Also translating this to Javascript shows a slice of a cone .. but there is no interaction plane to adjust the slicing .. like in Paraview. I guess this is where we are supposed to look at the source code to figure out what's missing .. which takes a lot of trial and error without documentation. I some cases I can't tell what the property is supposed to actually do.<br>

<br>I've been looking at the ParaviewWeb.js file for a while and it provides useful hints but no definite answers. For e.g I noticed from the file that I need to set the PlaceWidget property for the slice filter but I don't really know what it's supposed to do. When I set it, on one of my data sets I saw the interactive widget .. and then on another it disappeared. Very confusing.<br>

<br>Raj<br><br><br>--- On <b>Tue, 3/5/11, Sebastien Jourdain
 <i>&lt;<a rel="nofollow" target="_blank" href="http://mc/compose?to=sebastien.jourdain@kitware.com">sebastien.jourdain@kitware.com</a>&gt;</i></b> wrote:<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;">

<br>From: Sebastien Jourdain &lt;<a rel="nofollow" target="_blank" href="http://mc/compose?to=sebastien.jourdain@kitware.com">sebastien.jourdain@kitware.com</a>&gt;<br>Subject: Re: [Paraview] ParaviewWeb : Adding interactive slice filter to pipeline<br>

To: "Rajvikram Singh" &lt;<a rel="nofollow" target="_blank" href="http://mc/compose?to=rajvikrams@yahoo.com">rajvikrams@yahoo.com</a>&gt;<br>Cc: <a rel="nofollow" target="_blank" href="http://mc/compose?to=paraview@paraview.org">paraview@paraview.org</a><br>
Date: Tuesday, 3 May, 2011, 1:29 AM<div>
<div></div><div><br><br><div>Hi Raj,<div><br></div><div>Another thing. You should do that to set origin and normal.</div><div><br></div><div>var plan = sliceFilter.getSliceType();</div><div>plan.setOrigin(0,0,0);</div>
<div>plan.setNormal(1,0,0);</div>
<div><br></div><div>in fact the methods SetSliceOrigin/Normal are helper methods on python objects and not properties. You can notice it because of the capital S in the set. This must come from the python trace. If it was a property in python it would have been written:</div>


<div><br></div><div>sliceFilter.SliceNormal = [1,0,0];</div><div><br></div><div>Hope this help you to understand how it is working underneath and how to easily convert Python generated code into similar JavaScript one.</div>


<div><br></div><div>Seb<br><div><br><div>On Mon, May 2, 2011 at 8:59 AM, Sebastien Jourdain <span dir="ltr">&lt;<a rel="nofollow">sebastien.jourdain@kitware.com</a>&gt;</span> wrote:<br>
<blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Hi Raj,<div><br></div><div>You are not getting the propers bounds when you directly access them like that:</div><div>

<br>
</div><div><span style="font-size: medium; font-style: italic;">&gt; reader.Bounds</span><br>
<br></div><div>In fact, if you validate each line that you wrote inside the JavaScript console of your browser, you could have seen that Bounds was not part of the reader proxy. Moreover, it goes against the idea that Proxy do not have methods/fields but only properties that can be set/get based on their name. So eventually, it could have been reader.getBounds(). Although, bounds is not a property of the reader.</div>



<div>In order to get the right informations, you do need to do call a method on ParaView:</div><div><br></div><div>&gt; var dataInfo = pv.GetDataInformation({proxy:reader});</div><div><br></div><div>The returned value is not a proxy, it's just a data structure with all the data informations of the given proxy. (Fields name, Time, scalar range, bounds, memory consumption on the server...)</div>



<div><br></div><div>Then you can do :</div><div>&gt;&nbsp;sr.setPlaceWidget(dataInfo.Bounds);</div><div><br></div><div>I do believe that you &nbsp;look at the file ParaWebFunctions.js inside the PWApp to get that close. If not, it could provide you some help on how to handle some common actions.</div>



<div><br></div><div>Thanks,</div><div><br></div><div>Seb</div><div><br><div><div><div></div><div>On Fri, Apr 29, 2011 at 7:25 PM, Rajvikram Singh <span dir="ltr">&lt;<a rel="nofollow">rajvikrams@yahoo.com</a>&gt;</span> wrote:<br>



</div></div><blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div><div></div><div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font: inherit;" valign="top">


Hi<br>&nbsp;&nbsp; I am trying to add a simple slice filter to a ParaviewWeb client that users could use interact with a volume. The bundled PWApp application does this already and so I tried to go through the code and looked at some Python examples. I was able to get an interactive widget to render but it shows a blank slice. Also the bounds are not correct since the volume is 'flat' and what I see is a cube. <br>



<br>Here's the code I'm using :<br><br><div style="margin-left: 40px; font-style: italic;">var reader = pv.OpenDataFile({filename : "test.vtk"});&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; var view1 = pv.CreateIfNeededRenderView();<br>&nbsp;&nbsp;&nbsp; pv.Render();<br>



&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; var sliceFilter = pv.Slice({Input : reader});<br>&nbsp;&nbsp;&nbsp; sliceFilter.SetSliceNormal = [0,0,1]; // sliec along Z<br>&nbsp;&nbsp;&nbsp;
 sliceFilter.SetSliceOrigin = [0,0,0];<br>&nbsp;&nbsp;&nbsp; sliceFilter.SetSliceType = 'Plane';<br>//&nbsp;&nbsp;&nbsp; sliceFilter.SetInputBounds = pv.GetDataInformation.Bounds;<br><br>&nbsp;&nbsp;&nbsp; var sr = pv.CreateBindedWidget({proxy : sliceFilter.getSliceType(), view : view1});<br>



&nbsp;&nbsp;&nbsp; sr.setPlaceWidget(reader.Bounds);<br>&nbsp;&nbsp;&nbsp; sr.setEnabled(1);<br>&nbsp;&nbsp;&nbsp; sr.setVisibility(1);<br><br>&nbsp;&nbsp;&nbsp; var dataRep1 = pv.Show({proxy : sliceFilter});<br>&nbsp;&nbsp;&nbsp; <br><br>&nbsp;&nbsp;&nbsp; pv.SetDisplayProperties( {<br>&nbsp;&nbsp;&nbsp; proxy : sliceFilter,<br>



&nbsp;&nbsp;&nbsp; view&nbsp; : view1,<br>&nbsp;&nbsp;&nbsp; Representation : 'Surface',<br>&nbsp;&nbsp;&nbsp; } );<br><br></div>I'm attaching a screenshot of what's rendered in my browser. I'm obviously not setting some property correctly .. I just can't tell which one.<br>



<br>Thanks in advance<br>Raj<br><div style="font-style: italic;"><br></div></td></tr></tbody></table><br></div></div>_______________________________________________<br>
Powered by <a rel="nofollow" target="_blank" href="http://www.kitware.com">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a rel="nofollow" target="_blank" href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the ParaView Wiki at: <a rel="nofollow" target="_blank" href="http://paraview.org/Wiki/ParaView">http://paraview.org/Wiki/ParaView</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a rel="nofollow" target="_blank" href="http://www.paraview.org/mailman/listinfo/paraview">http://www.paraview.org/mailman/listinfo/paraview</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div></div>
</div></div></div></blockquote></td></tr></tbody></table></div></td></tr></tbody></table></blockquote></div><br></div>
</div></div></div></blockquote></td></tr></tbody></table></blockquote></div><br></div>
</div></blockquote></td></tr></table>