[Chimera-users] WebGL viewer
Tom Goddard
goddard at sonic.net
Mon Jan 5 14:08:10 PST 2015
Hi Thomas,
That’s cool. When you change the density threshold slider it switches to showing a new surface model for that threshold. For that new surface to have the same orientation as the previously shown surface you have to add a little code that sets the positioning matrix of the new surface to be the same as the matrix for the previous surface. Here’s how I did it. Here’s the original code that handles the slider motion
$("#slider").change(function(){
var i = $('#slider')[0].value;
myscene.models = new Array();
myscene.add(mymodels[i]);
myscene.defineBuffers(mymodels[i]);
myscene.render();
setThreshold(requiredJsonFiles[i]);
});
and here is the revised code that preserves the orientation
var last_model = null;
$("#slider").change(function(){
var i = $('#slider')[0].value;
myscene.models = new Array();
if (last_model != null)
mymodels[i].matrix = mymodels[last_model].matrix
last_model = i;
myscene.add(mymodels[i]);
myscene.defineBuffers(mymodels[i]);
myscene.render();
setThreshold(requiredJsonFiles[i]);
});
I added a new variable “last_model” that keeps track of the index for the previously shown surface and a copy the position matrix from that surface to the new one. I tried it and it works.
I’m impressed you were able to modify the Chimera exported webgl html file to do this. I have been working on an html and webgl map viewer for density map time series (for 5d optical microscopy) . It shows the maps, has a slider to display different times, and lets you place colored markers on features and save those to the server. Here’s a screenshot of it. I’d be happy to let you try it but the data I’m using is unpublished cell motion data from another researcher. If you want I could make a fake time series where time corresponds to different density thresholds and let you try that. I can provide you the webgl code if you want to tinker with it.
Sorry for the delay replying to your email. I just returned from vacation.
Tom
> On Dec 27, 2014, at 11:29 AM, Thomas Hrabe <thrabe at sanfordburnham.org> wrote:
>
> Hi everyone,
>
> I am trying to implement a EM density viewer in a HTML page based on the chimera webgl & html export feature.
> The original page chimera exports when you save a webgl / html scene has been modified to load multiple JSON objects with densities as they come from chimera.
> The bar at the bottom of the page essentially performs a coarse density sliding similar to chimera.
> Almost all works great but what I am missing is how to connect the rotation that was applied to one model and to propagate it to all other models.
> What is happening now is that when one rotates one model and slides the bar, the next model will not be rotated but will be in it’s original position.
>
> Here’s my page I am currently working on
> http://localize.pytom.org/php/displayWebGL.php?jobID=tutorial <http://localize.pytom.org/php/displayWebGL.php?jobID=tutorial>
>
> I tried catching the mouse event with a loop, but it seems it fails to propagate the rotation to the other models.
> Check the block at line 916 in the code
>
> try {
> var rotMat = vsphere(mouse_position, new_position);
> var camera = this.camera;
> var matrix = new Mat4;
> matrix.$translate(camera.target[0], camera.target[1],
> camera.target[2]);
> matrix.$mulMat4(rotMat);
> matrix.$translate(-camera.target[0], -camera.target[1],
> -camera.target[2]);
> for (var i = 0, models = this.scene.models, l = models.length; i < l; ++i) {
> var elem = models[i];
> elem.matrix = matrix.mulMat4(elem.matrix);
> }
> }
>
> Thank you in advance for your help,
> Thomas
>
>
> _______________________________________________
> Chimera-users mailing list
> Chimera-users at cgl.ucsf.edu
> http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20150105/2b89f4dd/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: webmap.png
Type: image/png
Size: 517149 bytes
Desc: not available
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20150105/2b89f4dd/attachment.png>
More information about the Chimera-users
mailing list