Hi Seb, <div><br></div><div>There is really not much in my pipeline at the </div><div>moment. I will do offline rendering using vtk, </div><div>save the vtp file, and load it on paraviewweb. </div><div>At the moment I play with sphere and cone </div>
<div>objects. </div><div><br></div><div>I uploaded the application here with the state files </div><div><a href="http://vision.lbl.gov/People/bilgin/PWShuttle.tar.gz">http://vision.lbl.gov/People/bilgin/PWShuttle.tar.gz</a></div>
<div><br>Thank you,</div><div>Cagatay</div><div><br><div class="gmail_quote">On Fri, May 4, 2012 at 2:01 PM, Sebastien Jourdain <span dir="ltr"><<a href="mailto:sebastien.jourdain@kitware.com" target="_blank">sebastien.jourdain@kitware.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Cagatay,<br>
<br>
could you send me 2 of your state file with your data so I can see how<br>
complex is your pipeline and see which approach is the best ?<br>
<br>
Seb<br>
<div class="HOEnZb"><div class="h5"><br>
On Fri, May 4, 2012 at 3:27 PM, Cagatay Bilgin <<a href="mailto:bilgincc@gmail.com">bilgincc@gmail.com</a>> wrote:<br>
> Hi Seb,<br>
> I am completely lost here. I tried the disconnect,<br>
> and as I was expecting the render window is<br>
> gone and I do not see any visualization. I would<br>
> guess I will need to reconnect again.<br>
><br>
> The view id is the same before and after.<br>
> The datafile is correctly changed though.<br>
> I guess that is the problem ?<br>
><br>
> Cagatay<br>
><br>
><br>
> On Fri, May 4, 2012 at 11:42 AM, Sebastien Jourdain<br>
> <<a href="mailto:sebastien.jourdain@kitware.com">sebastien.jourdain@kitware.com</a>> wrote:<br>
>><br>
>> By disconnect, I mean the python method Disconnect that basically<br>
>> reset the ServerManager layer without stoping ParaView.<br>
>><br>
>> To print the view id, if you are using firebug or any development<br>
>> javascript console you can see the output of some JavaScript code if<br>
>> you write<br>
>><br>
>> console.log(activeView.__selfid__)<br>
>><br>
>> or if you prefer a popup window, you can call<br>
>><br>
>> alert(activeView.__selfid__)<br>
>><br>
>> Most of the documentation is on the wiki of ParaView or inside the<br>
>> sample codes in the git repo.<br>
>><br>
>> Seb<br>
>><br>
>> On Fri, May 4, 2012 at 1:41 PM, Cagatay Bilgin <<a href="mailto:bilgincc@gmail.com">bilgincc@gmail.com</a>> wrote:<br>
>> > adding the following line did not change anything<br>
>> > renderers.current.unbindToElementId('renderercontainer');<br>
>> > and I do not know how to check the view id<br>
>> ><br>
>> > Calling disconnect and connecting again would<br>
>> > indeed solve the problem but why would anyone<br>
>> > want to do that? I am already connected, all I want<br>
>> > to do is load some other data. You do not<br>
>> > connect/disconnect for every query you are going<br>
>> > to execute on database, so why do it here ?<br>
>> ><br>
>> > Is there a paravievweb document I can read somewhere,<br>
>> > like the ITK or VTK books? That would help greatly.<br>
>> ><br>
>> > Thank you,<br>
>> > Cagatay<br>
>> ><br>
>> > On Fri, May 4, 2012 at 6:01 AM, Sebastien Jourdain<br>
>> > <<a href="mailto:sebastien.jourdain@kitware.com">sebastien.jourdain@kitware.com</a>> wrote:<br>
>> >><br>
>> >> Hum,<br>
>> >><br>
>> >> I will have to do it myself to see exactly what is going on.<br>
>> >> Unfortunately there is no clean way to cleanup the proxies of<br>
>> >> ParaView, so you know that you start from fresh for each data.<br>
>> >> I'm wondering if calling Diconnect() before loading the new data could<br>
>> >> solve the issue.<br>
>> >><br>
>> >> On the other hand, in your current code, I don't see any "unbind" of<br>
>> >> your renderer which could end-up being on the top of the new one you<br>
>> >> just create. Did you double check that the view id that you get is<br>
>> >> different ?<br>
>> >><br>
>> >> Seb<br>
>> >><br>
>> >> On Thu, May 3, 2012 at 6:47 PM, Cagatay Bilgin <<a href="mailto:bilgincc@gmail.com">bilgincc@gmail.com</a>><br>
>> >> wrote:<br>
>> >> > Hi Seb,<br>
>> >> ><br>
>> >> > The first option will not scale. We will<br>
>> >> > have a growing number of tissue samples<br>
>> >> > to be visualized and this option will be<br>
>> >> > infeasible soon.<br>
>> >> ><br>
>> >> > I am already re-initializing the renderer<br>
>> >> > with the new activeview. The minimal<br>
>> >> > example illustrating the issue is here<br>
>> >> ><br>
>> >> > var renderers = {};<br>
>> >> > var paraview;<br>
>> >> > var activeView;<br>
>> >> > var basePath = 'data/';<br>
>> >> > var dataFile = 'sphere.pvsm';<br>
>> >> ><br>
>> >> > paraview = new Paraview(serverUrl);<br>
>> >> > paraview.createSession("Shuttle", "", "default");<br>
>> >> ><br>
>> >> > function start(){<br>
>> >> > paraview.LoadState({filename: basePath + dataFile});<br>
>> >> > activeView = paraview.CreateIfNeededRenderView();<br>
>> >> > paraview.ResetCamera();<br>
>> >> > activeView.setCenterOfRotation(activeView.getCameraFocalPoint());<br>
>> >> ><br>
>> >> > paraview.updateConfiguration(true, "JPEG", "WebGL");<br>
>> >> > renderers.webgl = new WebGLRenderer("webglRenderer", serverUrl);<br>
>> >> > renderers.webgl.init(paraview.sessionId, activeView.__selfid__);<br>
>> >> ><br>
>> >> > // Use webgl as default<br>
>> >> > renderers.current = renderers.webgl;<br>
>> >> > renderers.current.bindToElementId("renderercontainer");<br>
>> >> > renderers.current.start();<br>
>> >> ><br>
>> >> > // Update render size<br>
>> >> > updateSize();<br>
>> >> > }<br>
>> >> > ...<br>
>> >> > function switchData(){<br>
>> >> > dataFile = 'cone.pvsm';<br>
>> >> > start();<br>
>> >> > }<br>
>> >> ><br>
>> >> > This script successfully loads the sphere but<br>
>> >> > does not switch to cone. If I move the<br>
>> >> > paraview.createSession("Shuttle", "", "default");<br>
>> >> > in to start function, things start working as expected:<br>
>> >> > Sphere is visualized first, and cone is loaded and<br>
>> >> > visualized when the button is clicked at the cost of<br>
>> >> > an unnecessary session. I am trying to do things<br>
>> >> > cleanly, and do not want to have dangling sessions<br>
>> >> > for no reason.<br>
>> >> ><br>
>> >> > Thank you for your help,<br>
>> >> > Cagatay<br>
>> >> ><br>
>> >> > On Thu, May 3, 2012 at 3:15 PM, Sebastien Jourdain<br>
>> >> > <<a href="mailto:sebastien.jourdain@kitware.com">sebastien.jourdain@kitware.com</a>> wrote:<br>
>> >> >><br>
>> >> >> 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<br>
>> >> >> you<br>
>> >> >> can all load them and just call "paraview.Show({proxy: objA})" or<br>
>> >> >> "paraview.Hide({proxy: objA})"<br>
>> >> >><br>
>> >> >> To get the proper references of objA, objB, ..., from the state<br>
>> >> >> file,<br>
>> >> >> you can query ParaView for that like that:<br>
>> >> >><br>
>> >> >> var objA = paraview.FindSource( { name:<br>
>> >> >> "nameInPipelineBrowserInParaView"<br>
>> >> >> });<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.<br>
>> >> >> Just<br>
>> >> >> let me know if you want to take that route, I can try to explain<br>
>> >> >> more.<br>
>> >> >><br>
>> >> >> Hope that give you enough hints,<br>
>> >> >><br>
>> >> >> Seb<br>
>> >> >><br>
>> >> >> On Thu, May 3, 2012 at 5:40 PM, Cagatay Bilgin <<a href="mailto:bilgincc@gmail.com">bilgincc@gmail.com</a>><br>
>> >> >> wrote:<br>
>> >> >> > It only re-initializes if I create another session like this<br>
>> >> >> > paraview.createSession("Shuttle", "", "default");<br>
>> >> >> > but I think I shouldn't be creating a new session<br>
>> >> >> > just to see a different object.<br>
>> >> >> ><br>
>> >> >> > I am completely ok with using different file formats. All<br>
>> >> >> > I am trying to do is to minimize the paraviewweb-js-python<br>
>> >> >> > scripting part as I have very limited experience there. That's<br>
>> >> >> > why I was using state files. Is it better to use something else ?<br>
>> >> >> ><br>
>> >> >> > Thank you,<br>
>> >> >> > Cagatay<br>
>> >> >> ><br>
>> >> >> > On Thu, May 3, 2012 at 2:09 PM, Sebastien Jourdain<br>
>> >> >> > <<a href="mailto:sebastien.jourdain@kitware.com">sebastien.jourdain@kitware.com</a>> wrote:<br>
>> >> >> >><br>
>> >> >> >> Normally loading a state file should re-initialize everything, so<br>
>> >> >> >> the<br>
>> >> >> >><br>
>> >> >> >> activeView = paraview.CreateIfNeededRenderView();<br>
>> >> >> >> paraview.ResetCamera();<br>
>> >> >> >> activeView.setCenterOfRotation(activeView.getCameraFocalPoint());<br>
>> >> >> >><br>
>> >> >> >> should be redone and all the renderer should be re-init with the<br>
>> >> >> >> new<br>
>> >> >> >> view<br>
>> >> >> >> id.<br>
>> >> >> >><br>
>> >> >> >> Seb<br>
>> >> >> >><br>
>> >> >> >><br>
>> >> >> >> On Thu, May 3, 2012 at 5:02 PM, Sebastien Jourdain<br>
>> >> >> >> <<a href="mailto:sebastien.jourdain@kitware.com">sebastien.jourdain@kitware.com</a>> wrote:<br>
>> >> >> >> > Hi Cagatay,<br>
>> >> >> >> ><br>
>> >> >> >> > does your data needs to be a ParaView state file, our would it<br>
>> >> >> >> > be<br>
>> >> >> >> > better if it was some other VTK compatible file ?<br>
>> >> >> >> ><br>
>> >> >> >> > Seb<br>
>> >> >> >> ><br>
>> >> >> >> > On Thu, May 3, 2012 at 3:18 PM, Cagatay Bilgin<br>
>> >> >> >> > <<a href="mailto:bilgincc@gmail.com">bilgincc@gmail.com</a>><br>
>> >> >> >> > wrote:<br>
>> >> >> >> >> I am trying to build a web application that<br>
>> >> >> >> >> can visualize different objects by the use<br>
>> >> >> >> >> of a drop down bar. I do not want to create<br>
>> >> >> >> >> new connections or sessions every time the<br>
>> >> >> >> >> user changes object to be visualized. I've<br>
>> >> >> >> >> been trying the whole morning and could not<br>
>> >> >> >> >> figure out how to i) delete the current view,<br>
>> >> >> >> >> ii) set it to the view view and iii) refresh the<br>
>> >> >> >> >> page. Here is what I have so far.<br>
>> >> >> >> >><br>
>> >> >> >> >><br>
>> >> >> >> >><br>
>> >> >> >> >> var renderers = {};<br>
>> >> >> >> >> var paraview;<br>
>> >> >> >> >> var activeView;<br>
>> >> >> >> >> var basePath =<br>
>> >> >> >> >><br>
>> >> >> >> >><br>
>> >> >> >> >><br>
>> >> >> >> >><br>
>> >> >> >> >> '/bioimaging/home/ccbilgin/opt/apache-tomcat-6.0.35/webapps/PWShuttle/data/';<br>
>> >> >> >> >> var dataFile = 'tmp.pvsm';<br>
>> >> >> >> >> * paraview = new Paraview(serverUrl);<br>
>> >> >> >> >> * paraview.createSession("Shuttle", "",<br>
>> >> >> >> >> "default");<br>
>> >> >> >> >><br>
>> >> >> >> >> function start(){<br>
>> >> >> >> >> //paraview.LoadState({filename: basePath<br>
>> >> >> >> >> +<br>
>> >> >> >> >> '/state.pvsm'});<br>
>> >> >> >> >> paraview.updateConfiguration(true, "JPEG",<br>
>> >> >> >> >> "-");<br>
>> >> >> >> >> paraview.LoadState({filename: basePath +<br>
>> >> >> >> >> dataFile});<br>
>> >> >> >> >> activeView =<br>
>> >> >> >> >> paraview.CreateIfNeededRenderView();<br>
>> >> >> >> >> paraview.ResetCamera();<br>
>> >> >> >> >><br>
>> >> >> >> >><br>
>> >> >> >> >> activeView.setCenterOfRotation(activeView.getCameraFocalPoint());<br>
>> >> >> >> >><br>
>> >> >> >> >> // Create renderers<br>
>> >> >> >> >> renderers.java = new<br>
>> >> >> >> >> HttpAppletRenderer("javaRenderer",<br>
>> >> >> >> >> serverUrl);<br>
>> >> >> >> >> renderers.java.init(paraview.sessionId,<br>
>> >> >> >> >> activeView.__selfid__);<br>
>> >> >> >> >> renderers.java.setSize("1","1");<br>
>> >> >> >> >><br>
>> >> >> >> >> renderers.flash = new<br>
>> >> >> >> >> FlashRenderer("flashRenderer",<br>
>> >> >> >> >> serverUrl);<br>
>> >> >> >> >> renderers.flash.init(paraview.sessionId,<br>
>> >> >> >> >> activeView.__selfid__);<br>
>> >> >> >> >><br>
>> >> >> >> >> renderers.js = new<br>
>> >> >> >> >> JavaScriptRenderer("jsRenderer",<br>
>> >> >> >> >> serverUrl);<br>
>> >> >> >> >> renderers.js.init(paraview.sessionId,<br>
>> >> >> >> >> activeView.__selfid__);<br>
>> >> >> >> >><br>
>> >> >> >> >> paraview.updateConfiguration(true, "JPEG",<br>
>> >> >> >> >> "WebGL");<br>
>> >> >> >> >> renderers.webgl = new<br>
>> >> >> >> >> WebGLRenderer("webglRenderer",<br>
>> >> >> >> >> serverUrl);<br>
>> >> >> >> >> renderers.webgl.init(paraview.sessionId,<br>
>> >> >> >> >> activeView.__selfid__);<br>
>> >> >> >> >><br>
>> >> >> >> >> // Remove Java when use in IE<br>
>> >> >> >> >> if (navigator.appName.indexOf<br>
>> >> >> >> >> ('Microsoft')<br>
>> >> >> >> >> !=<br>
>> >> >> >> >> -1)<br>
>> >> >> >> >> {<br>
>> >> >> >> >> var e =<br>
>> >> >> >> >> document.getElementById("java")<br>
>> >> >> >> >> var parent = e.parentNode;<br>
>> >> >> >> >> if(e){<br>
>> >> >> >> >> parent.removeChild(e);<br>
>> >> >> >> >> }<br>
>> >> >> >> >> }<br>
>> >> >> >> >><br>
>> >> >> >> >> // Use webgl as default<br>
>> >> >> >> >> renderers.current = renderers.webgl;<br>
>> >> >> >> >><br>
>> >> >> >> >> renderers.current.bindToElementId("renderercontainer");<br>
>> >> >> >> >> renderers.current.start();<br>
>> >> >> >> >><br>
>> >> >> >> >> // Update render size<br>
>> >> >> >> >> updateSize();<br>
>> >> >> >> >><br>
>> >> >> >> >> // Action images<br>
>> >> >> >> >> updateActionButtons(true);<br>
>> >> >> >> >> }<br>
>> >> >> >> >><br>
>> >> >> >> >> ....<br>
>> >> >> >> >><br>
>> >> >> >> >> function switchData(){<br>
>> >> >> >> >> var type =<br>
>> >> >> >> >> document.getElementById("data-type").value;<br>
>> >> >> >> >> dataFile = 'cone.pvsm';<br>
>> >> >> >> >> start();<br>
>> >> >> >> >> }<br>
>> >> >> >> >><br>
>> >> >> >> >> ....<br>
>> >> >> >> >><br>
>> >> >> >> >> <select id="data-type" name="data-type"<br>
>> >> >> >> >> style="z-index: 5;width: 100px; position:<br>
>> >> >> >> >> absolute;<br>
>> >> >> >> >> right:<br>
>> >> >> >> >> 40px; top: 30px;"<br>
>> >> >> >> >> onchange="switchData()" ><br>
>> >> >> >> >> <option value="1">1.mhd</option><br>
>> >> >> >> >> <option value="2">2.mhd</option><br>
>> >> >> >> >> <option value="3">3.mhd</option><br>
>> >> >> >> >> </select><br>
>> >> >> >> >><br>
>> >> >> >> >><br>
>> >> >> >> >> _______________________________________________<br>
>> >> >> >> >> Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
>> >> >> >> >><br>
>> >> >> >> >> Visit other Kitware open-source projects at<br>
>> >> >> >> >> <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
>> >> >> >> >><br>
>> >> >> >> >> Please keep messages on-topic and check the ParaView Wiki at:<br>
>> >> >> >> >> <a href="http://paraview.org/Wiki/ParaView" target="_blank">http://paraview.org/Wiki/ParaView</a><br>
>> >> >> >> >><br>
>> >> >> >> >> Follow this link to subscribe/unsubscribe:<br>
>> >> >> >> >> <a href="http://www.paraview.org/mailman/listinfo/paraview" target="_blank">http://www.paraview.org/mailman/listinfo/paraview</a><br>
>> >> >> >> >><br>
>> >> >> ><br>
>> >> >> ><br>
>> >> ><br>
>> >> ><br>
>> ><br>
>> ><br>
><br>
><br>
</div></div></blockquote></div><br></div>