Changeset 20586


Ignore:
Timestamp:
04/30/16 23:09:24 (9 years ago)
Author:
dlcheng
Message:

CHG (javascript): Resolving incorrect log scaling. Simplifying plot routines.

Location:
issm/trunk-jpl/src/m/plot
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified issm/trunk-jpl/src/m/plot/applyoptions.js

    r20579 r20586  
    3535                        var precision=options.getfieldvalue('colorbarprecision',3);
    3636                       
    37                         if (options.getfieldvalue('log',10)!='off') {
     37                        if (options.getfieldvalue('log','off')!='off') {
    3838                                for (var i = cdivisions; i >= 0; i--) {
    39                                         var scale = Math.log(caxis[1])-Math.log(caxis[0]);
    40                                         labels[i] = (Math.exp(Math.log(caxis[0])+scale*(cdivisions-i)/cdivisions)).toPrecision(precision);
     39                                        var scale = (Math.log10(caxis[1])-Math.log10(caxis[0]))/Math.log10(options.getfieldvalue('log',10));
     40                                        labels[i] = (Math.pow(options.getfieldvalue('log',10),Math.log10(caxis[0])/Math.log10(options.getfieldvalue('log',10))+scale*(cdivisions-i)/cdivisions)).toPrecision(precision);
    4141                                }
    4242                        } else {
     
    212212        var cmap = options.getfieldvalue('cmap','jet');
    213213        var colorbar = colorbars[cmap];
    214         if (options.getfieldvalue('log',10)!='off') {
    215                 for (var i = 0; i < colorbar.length; i++) {
    216                         color = colorbar[colorbar.length-i-1];
    217                         color = [Math.round(color[0]*255),Math.round(color[1]*255),Math.round(color[2]*255)];   
    218                         tgradient.addColorStop(1.0-Math.exp(Math.log((colorbar.length-i)/colorbar.length)/Math.log(options.getfieldvalue('log',10))*i/colorbar.length),'rgba('+color.toString()+',1.0)');
    219                 }
    220         } else {
    221                 for (var i = 0; i < colorbar.length; i++) {
    222                         color = colorbar[colorbar.length-i-1];
    223                         color = [Math.round(color[0]*255),Math.round(color[1]*255),Math.round(color[2]*255)];   
    224                         tgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)');
    225                 }
     214        for (var i = 0; i < colorbar.length; i++) {
     215                color = colorbar[colorbar.length-i-1];
     216                color = [Math.round(color[0]*255),Math.round(color[1]*255),Math.round(color[2]*255)];   
     217                tgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)');
    226218        }
    227219       
  • TabularUnified issm/trunk-jpl/src/m/plot/plot_manager.js

    r20584 r20586  
    7878                                return;
    7979                        case 'mesh':
    80                                 plot_mesh(md,options,canvas,gl,canvas.nodes["data"+String(canvas.datalength)]);
     80                                plot_mesh(md,options,canvas);
    8181                                return;
    8282                        case 'none':
     
    125125                                return;
    126126                        case 'quiver':
    127                                 plot_quiver(md,options,canvas,gl,canvas.nodes["data"+String(canvas.datalength)]);
     127                                plot_quiver(md,options,canvas);
    128128                                return;
    129129                        case 'strainrate_tensor':
     
    171171        //Figure out if this is a semi-transparent plot.
    172172        if (options.getfieldvalue('overlay','off')=='on'){
    173                 canvas.nodes["overlay"] = Node(gl,options);
    174                 plot_overlay(md,data,options,canvas,gl,canvas.nodes["overlay"]);
     173                plot_overlay(md,data,options,canvas);
    175174        }
    176175
     
    204203       
    205204        //plot unit
    206         plot_unit(md,data2,datatype,options,canvas,gl,canvas.nodes["data"+String(canvas.datalength)]);
    207 
    208         applyoptions(md,data2,datatype,options,canvas,gl,canvas.nodes["data"+String(canvas.datalength)]);
     205        plot_unit(md,data2,datatype,options,canvas);
     206
     207        applyoptions(md,data2,datatype,options,canvas,gl,canvas.nodes[canvas.nodes.length-1]);
    209208}
  • TabularUnified issm/trunk-jpl/src/m/plot/plot_mesh.js

    r20585 r20586  
    1 function plot_mesh(md,options,canvas,gl,node) {
     1function plot_mesh(md,options,canvas) {
    22        //   Usage:
    3         //      plot_mesh(md,options,canvas,gl);
     3        //      plot_mesh(md,options,canvas);
    44        //
    55        //   See also: PLOTMODEL
     
    5656
    5757        //Compute gl variables:
    58         var scale = 1 / (xmax - xmin);
     58        var gl = canvas.gl;
     59        var node = Node(gl,options);
     60        canvas.nodes[canvas.nodes.length] = node;
     61        scale = 1 / (xmax - xmin);
    5962        node["shaderName"] = "colored";
    6063        node["shader"] = gl["shaders"][node["shaderName"]]["program"];
  • TabularUnified issm/trunk-jpl/src/m/plot/plot_overlay.js

    r20584 r20586  
    1 function plot_overlay(md,data,options,canvas,gl,node){
     1function plot_overlay(md,data,options,canvas){
    22        //PLOT_OVERLAY - Function for plotting a georeferenced image. 
    33        //This function is called from within the plotmodel code.
    44        //
    55        //   Usage:
    6         //      plot_overlay(md,data,options,canvas,gl,node);
     6        //      plot_overlay(md,data,options,canvas);
    77        //
    88        //   See also: PLOTMODEL, PLOT_MANAGER
     
    5959               
    6060        //Compute gl variables:
     61        var gl = canvas.gl;
     62        var node = Node(gl,options);
     63        canvas.nodes[canvas.nodes.length] = node;
    6164        scale = 1 / (xmax - xmin);
    6265        node["shaderName"] = "unlit_textured";
  • TabularUnified issm/trunk-jpl/src/m/plot/plot_quiver.js

    r20585 r20586  
    1 function plot_quiver(md,options,canvas,gl,node) {
     1function plot_quiver(md,options,canvas) {
    22        //PLOT_QUIVER - quiver plot with colors
    33        //
    44        //   Usage:
    5         //      plot_quiver(md,options,canvas,gl,node)
     5        //      plot_quiver(md,options,canvas)
    66        //
    77
     
    5959
    6060        //Compute gl variables:
    61         var scale = 1 / (xmax - xmin);
     61        var gl = canvas.gl;
     62        var node = Node(gl,options);
     63        canvas.nodes[canvas.nodes.length] = node;
     64        scale = 1 / (xmax - xmin);
    6265        node["shaderName"] = "colored";
    6366        node["shader"] = gl["shaders"][node["shaderName"]]["program"];
  • TabularUnified issm/trunk-jpl/src/m/plot/plot_unit.js

    r20585 r20586  
    1 function plot_unit(md,data,datatype,options,canvas,gl,node) {
     1function plot_unit(md,data,datatype,options,canvas) {
    22        //PLOT_UNIT - unit plot, display data
    33        //
    44        //   Usage:
    5         //      plot_unit(md,data,options,canvas,gl);
     5        //      plot_unit(md,data,options,canvas);
    66        //
    77        //   See also: PLOTMODEL, PLOT_MANAGER
     
    6060       
    6161        //Compute gl variables:
     62        var gl = canvas.gl;
     63        var node = Node(gl,options);
     64        canvas.nodes[canvas.nodes.length] = node;
    6265        scale = 1 / (xmax - xmin);
    6366        node["shaderName"] = "unlit_textured";
     
    235238                               
    236239                                //Initialize movie loop
    237                                 node["movieInterval"] = 1000 / options.getfieldvalue('moviefps',5);
     240                                node["movieInterval"] = 1000 / canvas.moviefps;
    238241                                node["movieTimestamps"] = timestamps;
    239242                                node["movieLength"] = timestamps.length;
  • TabularUnified issm/trunk-jpl/src/m/plot/webgl.js

    r20585 r20586  
    1111        if (!canvas.initialized) {
    1212                canvas.gl = initWebGL(canvas,options);
    13                 canvas.nodes = {};
    14                 canvas.datalength = 0;
     13                canvas.nodes = [];
    1514                if (canvas.drawHandler) window.cancelAnimationFrame(canvas.drawHandler);
    1615                draw(canvas,options);
    1716                canvas.initialized = true;
    1817        }
    19         canvas.nodes["data"+String(++canvas.datalength)] = Node(canvas.gl,options);
    2018        return canvas;
    2119}
     
    6765        canvas.movieReverse = false;
    6866        canvas.movieIncrement = true;
     67        canvas.moviefps = options.getfieldvalue('moviefps',5);
    6968
    7069        if (canvas.twod) {
     
    7675       
    7776        // Add event listeners for canvas
    78         canvas.addEventListener("mousewheel", function (ev) {onZoom(ev,canvas,options.getfieldvalue('displayzoom','off') == 'on')}, false);
    79         canvas.addEventListener("DOMMouseScroll", function (ev) {onZoom(ev,canvas,options.getfieldvalue('displayzoom','off') == 'on')}, false);
    80 
     77        var displayview = options.getfieldvalue('displayview','off') == 'on';
     78        var displayzoom = options.getfieldvalue('displayzoom','off') == 'on';
    8179        var mc = new Hammer.Manager(canvas);
    82 
     80       
    8381    mc.add(new Hammer.Pan({threshold:0, pointers:0}));
    8482    mc.add(new Hammer.Pinch({threshold:0})).recognizeWith(mc.get('pan'));
    85 
    86     mc.on("panstart panmove", function (ev) {onPan(ev,canvas,options.getfieldvalue('displayview','off') == 'on');});
    87     mc.on("pinchstart pinchmove", function (ev) {onPinch(ev,canvas,options.getfieldvalue('displayview','off') == 'on');});
     83    mc.on("panstart panmove", function (ev) {onPan(ev,canvas,displayview);});
     84    mc.on("pinchstart pinchmove", function (ev) {onPinch(ev,canvas,displayview);});
    8885        //mc.on("mousewheel DOMMouseScroll", function (ev) {onZoom(ev,canvas,options);});
     86       
     87        canvas.addEventListener("mousewheel", function (ev) {onZoom(ev,canvas,displayzoom)}, false);
     88        canvas.addEventListener("DOMMouseScroll", function (ev) {onZoom(ev,canvas,displayzoom)}, false);
    8989       
    9090        return gl;
     
    371371        canvas.lastDeltaY = ev.deltaY;
    372372       
    373         if (displaylog) console.log(canvas.translation);
     373        if (displaylog) console.log(canvas.rotation);
    374374} //}}}
    375375function onPinch(ev,canvas,displaylog) { //{{{
Note: See TracChangeset for help on using the changeset viewer.