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