<div>Hi Seb, </div><div><br></div>The first option will not scale. We will<div>have a growing number of tissue samples </div><div>to be visualized and this option will be </div><div>infeasible soon. </div><div><br></div><div>
I am already re-initializing the renderer </div><div>with the new activeview. The minimal </div><div>example illustrating the issue is here</div><div><br></div><div><div>var renderers = {};</div><div>var paraview;</div><div>
var activeView;</div><div>var basePath = &#39;data/&#39;;</div><div>var dataFile = &#39;sphere.pvsm&#39;;</div><div><br></div><div>paraview = new Paraview(serverUrl);</div><div>paraview.createSession(&quot;Shuttle&quot;, &quot;&quot;, &quot;default&quot;);</div>
<div>                </div><div>function start(){</div><div>  paraview.LoadState({filename: basePath + dataFile});</div><div>  activeView = paraview.CreateIfNeededRenderView();</div><div>  paraview.ResetCamera();</div><div>
  activeView.setCenterOfRotation(activeView.getCameraFocalPoint());</div><div><br></div><div>  paraview.updateConfiguration(true, &quot;JPEG&quot;, &quot;WebGL&quot;);</div><div>  renderers.webgl = new WebGLRenderer(&quot;webglRenderer&quot;, serverUrl);</div>
<div>  renderers.webgl.init(paraview.sessionId, activeView.__selfid__);</div><div><br></div><div>  // Use webgl as default</div><div>  renderers.current = renderers.webgl;</div><div>  renderers.current.bindToElementId(&quot;renderercontainer&quot;);</div>
<div>  renderers.current.start();</div><div><br></div><div>  // Update render size</div><div>  updateSize();</div><div>}</div><div>...</div><div>function switchData(){</div><div>  dataFile = &#39;cone.pvsm&#39;;</div><div>
  start();</div><div>}</div><div><br></div><div>This script successfully loads the sphere but </div><div>does not switch to cone. If I move the </div></div><div><div>paraview.createSession(&quot;Shuttle&quot;, &quot;&quot;, &quot;default&quot;);</div>
</div><div>in to start function, things start working as expected:</div><div>Sphere is visualized first, and cone is loaded and</div><div>visualized when the button is clicked at the cost of </div><div>an unnecessary session. I am trying to do things </div>
<div>cleanly, and do not want to have dangling sessions </div><div>for no reason. </div><div><br></div><div>Thank you for your help, </div><div>Cagatay</div><div><br><div class="gmail_quote">On Thu, May 3, 2012 at 3:15 PM, Sebastien Jourdain <span dir="ltr">&lt;<a href="mailto:sebastien.jourdain@kitware.com" target="_blank">sebastien.jourdain@kitware.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Well there is several way to deal with what you want to achieve.<br>
<br>
1) if all the data that you are interested are kind of small then you<br>
can all load them and just call &quot;paraview.Show({proxy: objA})&quot; or<br>
&quot;paraview.Hide({proxy: objA})&quot;<br>
<br>
To get the proper references of objA, objB, ..., from the state file,<br>
you can query ParaView for that like that:<br>
<br>
var objA = paraview.FindSource( { name: &quot;nameInPipelineBrowserInParaView&quot; });<br>
<br>
2) if you really want to load and unload them, you will have to<br>
re-init the renderers as I was saying in one of my previous mail. Just<br>
let me know if you want to take that route, I can try to explain more.<br>
<br>
Hope that give you enough hints,<br>
<br>
Seb<br>
<div class="HOEnZb"><div class="h5"><br>
On Thu, May 3, 2012 at 5:40 PM, Cagatay Bilgin &lt;<a href="mailto:bilgincc@gmail.com">bilgincc@gmail.com</a>&gt; wrote:<br>
&gt; It only re-initializes if I create another session like this<br>
&gt; paraview.createSession(&quot;Shuttle&quot;, &quot;&quot;, &quot;default&quot;);<br>
&gt; but I think I shouldn&#39;t be creating a new session<br>
&gt; just to see a different object.<br>
&gt;<br>
&gt; I am completely ok with using different file formats. All<br>
&gt; I am trying to do is to minimize the paraviewweb-js-python<br>
&gt; scripting part as I have very limited experience there.  That&#39;s<br>
&gt; why I was using state files. Is it better to use something else ?<br>
&gt;<br>
&gt; Thank you,<br>
&gt; Cagatay<br>
&gt;<br>
&gt; On Thu, May 3, 2012 at 2:09 PM, Sebastien Jourdain<br>
&gt; &lt;<a href="mailto:sebastien.jourdain@kitware.com">sebastien.jourdain@kitware.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Normally loading a state file should re-initialize everything, so the<br>
&gt;&gt;<br>
&gt;&gt; activeView = paraview.CreateIfNeededRenderView();<br>
&gt;&gt; paraview.ResetCamera();<br>
&gt;&gt; activeView.setCenterOfRotation(activeView.getCameraFocalPoint());<br>
&gt;&gt;<br>
&gt;&gt; should be redone and all the renderer should be re-init with the new view<br>
&gt;&gt; id.<br>
&gt;&gt;<br>
&gt;&gt; Seb<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Thu, May 3, 2012 at 5:02 PM, Sebastien Jourdain<br>
&gt;&gt; &lt;<a href="mailto:sebastien.jourdain@kitware.com">sebastien.jourdain@kitware.com</a>&gt; wrote:<br>
&gt;&gt; &gt; Hi Cagatay,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; does your data needs to be a ParaView state file, our would it be<br>
&gt;&gt; &gt; better if it was some other VTK compatible file ?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Seb<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Thu, May 3, 2012 at 3:18 PM, Cagatay Bilgin &lt;<a href="mailto:bilgincc@gmail.com">bilgincc@gmail.com</a>&gt;<br>
&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt; I am trying to build a web application that<br>
&gt;&gt; &gt;&gt; can visualize different objects by the use<br>
&gt;&gt; &gt;&gt; of a drop down bar. I do not want to create<br>
&gt;&gt; &gt;&gt; new connections or sessions every time the<br>
&gt;&gt; &gt;&gt; user changes object to be visualized. I&#39;ve<br>
&gt;&gt; &gt;&gt; been trying the whole morning and could not<br>
&gt;&gt; &gt;&gt; figure out how to i) delete the current view,<br>
&gt;&gt; &gt;&gt; ii) set it to the view view and iii) refresh the<br>
&gt;&gt; &gt;&gt; page. Here is what I have so far.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;                 var renderers = {};<br>
&gt;&gt; &gt;&gt;                 var paraview;<br>
&gt;&gt; &gt;&gt;                 var activeView;<br>
&gt;&gt; &gt;&gt;                 var basePath =<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &#39;/bioimaging/home/ccbilgin/opt/apache-tomcat-6.0.35/webapps/PWShuttle/data/&#39;;<br>
&gt;&gt; &gt;&gt;                 var dataFile = &#39;tmp.pvsm&#39;;<br>
&gt;&gt; &gt;&gt;  *               paraview = new Paraview(serverUrl);<br>
&gt;&gt; &gt;&gt;  *               paraview.createSession(&quot;Shuttle&quot;, &quot;&quot;, &quot;default&quot;);<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;                 function start(){<br>
&gt;&gt; &gt;&gt;                      //paraview.LoadState({filename: basePath +<br>
&gt;&gt; &gt;&gt; &#39;/state.pvsm&#39;});<br>
&gt;&gt; &gt;&gt;                     paraview.updateConfiguration(true, &quot;JPEG&quot;, &quot;-&quot;);<br>
&gt;&gt; &gt;&gt;                     paraview.LoadState({filename: basePath +<br>
&gt;&gt; &gt;&gt; dataFile});<br>
&gt;&gt; &gt;&gt;                     activeView = paraview.CreateIfNeededRenderView();<br>
&gt;&gt; &gt;&gt;                     paraview.ResetCamera();<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; activeView.setCenterOfRotation(activeView.getCameraFocalPoint());<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;                     // Create renderers<br>
&gt;&gt; &gt;&gt;                     renderers.java = new<br>
&gt;&gt; &gt;&gt; HttpAppletRenderer(&quot;javaRenderer&quot;,<br>
&gt;&gt; &gt;&gt; serverUrl);<br>
&gt;&gt; &gt;&gt;                     renderers.java.init(paraview.sessionId,<br>
&gt;&gt; &gt;&gt; activeView.__selfid__);<br>
&gt;&gt; &gt;&gt;                     renderers.java.setSize(&quot;1&quot;,&quot;1&quot;);<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;                     renderers.flash = new<br>
&gt;&gt; &gt;&gt; FlashRenderer(&quot;flashRenderer&quot;,<br>
&gt;&gt; &gt;&gt; serverUrl);<br>
&gt;&gt; &gt;&gt;                     renderers.flash.init(paraview.sessionId,<br>
&gt;&gt; &gt;&gt; activeView.__selfid__);<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;                     renderers.js = new JavaScriptRenderer(&quot;jsRenderer&quot;,<br>
&gt;&gt; &gt;&gt; serverUrl);<br>
&gt;&gt; &gt;&gt;                     renderers.js.init(paraview.sessionId,<br>
&gt;&gt; &gt;&gt; activeView.__selfid__);<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;                     paraview.updateConfiguration(true, &quot;JPEG&quot;,<br>
&gt;&gt; &gt;&gt; &quot;WebGL&quot;);<br>
&gt;&gt; &gt;&gt;                     renderers.webgl = new<br>
&gt;&gt; &gt;&gt; WebGLRenderer(&quot;webglRenderer&quot;,<br>
&gt;&gt; &gt;&gt; serverUrl);<br>
&gt;&gt; &gt;&gt;                     renderers.webgl.init(paraview.sessionId,<br>
&gt;&gt; &gt;&gt; activeView.__selfid__);<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;                     // Remove Java when use in IE<br>
&gt;&gt; &gt;&gt;                     if (navigator.appName.indexOf (&#39;Microsoft&#39;) != -1)<br>
&gt;&gt; &gt;&gt; {<br>
&gt;&gt; &gt;&gt;                         var e = document.getElementById(&quot;java&quot;)<br>
&gt;&gt; &gt;&gt;                         var parent = e.parentNode;<br>
&gt;&gt; &gt;&gt;                         if(e){<br>
&gt;&gt; &gt;&gt;                             parent.removeChild(e);<br>
&gt;&gt; &gt;&gt;                         }<br>
&gt;&gt; &gt;&gt;                     }<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;                     // Use webgl as default<br>
&gt;&gt; &gt;&gt;                     renderers.current = renderers.webgl;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; renderers.current.bindToElementId(&quot;renderercontainer&quot;);<br>
&gt;&gt; &gt;&gt;                     renderers.current.start();<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;                     // Update render size<br>
&gt;&gt; &gt;&gt;                     updateSize();<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;                     // Action images<br>
&gt;&gt; &gt;&gt;                     updateActionButtons(true);<br>
&gt;&gt; &gt;&gt;                 }<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; ....<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; function switchData(){<br>
&gt;&gt; &gt;&gt;                     var type =<br>
&gt;&gt; &gt;&gt; document.getElementById(&quot;data-type&quot;).value;<br>
&gt;&gt; &gt;&gt;                     dataFile = &#39;cone.pvsm&#39;;<br>
&gt;&gt; &gt;&gt;                     start();<br>
&gt;&gt; &gt;&gt;                 }<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; ....<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &lt;select id=&quot;data-type&quot; name=&quot;data-type&quot;<br>
&gt;&gt; &gt;&gt;                 style=&quot;z-index: 5;width: 100px; position: absolute;<br>
&gt;&gt; &gt;&gt; right:<br>
&gt;&gt; &gt;&gt; 40px; top: 30px;&quot;<br>
&gt;&gt; &gt;&gt;                 onchange=&quot;switchData()&quot; &gt;<br>
&gt;&gt; &gt;&gt;             &lt;option value=&quot;1&quot;&gt;1.mhd&lt;/option&gt;<br>
&gt;&gt; &gt;&gt;             &lt;option value=&quot;2&quot;&gt;2.mhd&lt;/option&gt;<br>
&gt;&gt; &gt;&gt;             &lt;option value=&quot;3&quot;&gt;3.mhd&lt;/option&gt;<br>
&gt;&gt; &gt;&gt;         &lt;/select&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Visit other Kitware open-source projects at<br>
&gt;&gt; &gt;&gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Please keep messages on-topic and check the ParaView Wiki at:<br>
&gt;&gt; &gt;&gt; <a href="http://paraview.org/Wiki/ParaView" target="_blank">http://paraview.org/Wiki/ParaView</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Follow this link to subscribe/unsubscribe:<br>
&gt;&gt; &gt;&gt; <a href="http://www.paraview.org/mailman/listinfo/paraview" target="_blank">http://www.paraview.org/mailman/listinfo/paraview</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;<br>
&gt;<br>
</div></div></blockquote></div><br></div>