Changeset 19945


Ignore:
Timestamp:
01/08/16 23:58:37 (9 years ago)
Author:
dlcheng
Message:

CHG (javascript): Refactoring displayzoom/view options. 2d option now uses orthographic camera.

File:
1 edited

Legend:

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

    r19943 r19945  
    3232        gl.shaders = loadShaders(gl);
    3333       
    34 
    35 
    3634        // Add context state variables
    3735        //TODO:Group variables in objects for organization and naming
     
    4644        canvas.rotation = canvas.rotationDefault;
    4745        canvas.controlsensitivity = 1;
    48 
    49         if (options.getfieldvalue('2d','off') == 'on') {
     46        canvas.twod = options.getfieldvalue('2d','off') == 'on';
     47
     48        if (canvas.twod) {
    5049                canvas.rotationAzimuthBounds = [0,0];
    5150                canvas.rotationElevationBounds = [90,90];
     
    5554       
    5655        // Add event listeners for canvas
    57         canvas.addEventListener("mousewheel", function (ev) {onZoom(ev,canvas,options)}, false);
    58         canvas.addEventListener("DOMMouseScroll", function (ev) {onZoom(ev,canvas,options)}, false);
     56        canvas.addEventListener("mousewheel", function (ev) {onZoom(ev,canvas,options.getfieldvalue('displayzoom','off') == 'on')}, false);
     57        canvas.addEventListener("DOMMouseScroll", function (ev) {onZoom(ev,canvas,options.getfieldvalue('displayzoom','off') == 'on')}, false);
    5958
    6059        var mc = new Hammer.Manager(canvas);
     
    6362    mc.add(new Hammer.Pinch({threshold:0})).recognizeWith(mc.get('pan'));
    6463
    65     mc.on("panstart panmove", function (ev) {onPan(ev,canvas,options);});
    66     mc.on("pinchstart pinchmove", function (ev) {onPinch(ev,canvas,options);});
     64    mc.on("panstart panmove", function (ev) {onPan(ev,canvas,options.getfieldvalue('displayview','off') == 'on');});
     65    mc.on("pinchstart pinchmove", function (ev) {onPinch(ev,canvas,options.getfieldvalue('displayview','off') == 'on');});
    6766        //mc.on("mousewheel DOMMouseScroll", function (ev) {onZoom(ev,canvas,options);});
    6867       
     
    322321//}}}
    323322//{{{ Interface Functions
    324 function onPan(ev,canvas,options) { //{{{
     323function onPan(ev,canvas,displaylog) { //{{{
    325324        ev.preventDefault();
    326325        if (ev.type == 'panstart') {
     
    350349        canvas.lastDeltaY = ev.deltaY;
    351350       
    352         if (options.getfieldvalue('displayview','off') == 'on') console.log(canvas.rotation);
    353 } //}}}
    354 function onPinch(ev,canvas,options) { //{{{
     351        if (displaylog) console.log(canvas.rotation);
     352} //}}}
     353function onPinch(ev,canvas,displaylog) { //{{{
    355354        ev.preventDefault();
    356355        if (ev.type == 'pinchstart') {
     
    359358        else {
    360359                canvas.zoomFactor = clamp(ev.scale * canvas.zoomLast, canvas.zoomBounds[1], canvas.zoomBounds[0]);
    361                 if (options.getfieldvalue('displayzoom','off') == 'on') console.log(canvas.zoomFactor);
    362         }
    363 } //}}}
    364 function onZoom(ev,canvas,options) { //{{{
     360                if (displaylog) console.log(canvas.zoomFactor);
     361        }
     362} //}}}
     363function onZoom(ev,canvas,displaylog) { //{{{
    365364        ev.preventDefault();
    366365        var delta = 1/10 * clamp(ev.scale || ev.wheelDelta || -ev.detail, -1, 1);
    367366        canvas.zoomFactor = clamp(canvas.zoomFactor - delta * canvas.zoomFactor, canvas.zoomBounds[1], canvas.zoomBounds[0]);
    368         if (options.getfieldvalue('displayzoom','off') == 'on') console.log(canvas.zoomFactor);
     367        if (displaylog) console.log(canvas.zoomFactor);
    369368} //}}}
    370369//}}}
     
    379378        var elevationRotationMatrix = mat4.create();
    380379
    381         mat4.perspective(pMatrix, 90 * Math.PI / 180, canvas.clientWidth / canvas.clientHeight, 0.001, 10000.0);
     380        if (canvas.twod) {
     381                mat4.ortho(pMatrix, 1*canvas.zoomFactor, -1*canvas.zoomFactor, 1*canvas.zoomFactor, -1*canvas.zoomFactor, -1, 1.0);
     382        }
     383        else {
     384                mat4.perspective(pMatrix, 90 * Math.PI / 180, canvas.clientWidth / canvas.clientHeight, 0.001, 10000.0);
     385        }
    382386       
    383387        //Apply worldspace translation
Note: See TracChangeset for help on using the changeset viewer.