source: issm/oecreview/Archive/20545-21336/ISSM-20769-20770.diff@ 21337

Last change on this file since 21337 was 21337, checked in by Mathieu Morlighem, 8 years ago

CHG: added Archive/20545-21336

File size: 3.1 KB
  • ../trunk-jpl/src/m/plot/webgl.js

     
    4949        canvas.zoomFactor = clamp(options.getfieldvalue('zoom',1.0), canvas.zoomBounds[0], canvas.zoomBounds[1]);
    5050        canvas.zoomLast = canvas.zoomFactor;
    5151        canvas.cameraMatrix = mat4.create();
    52         canvas.translation = options.getfieldvalue('centeroffset',[0,0,0.0]);
     52        canvas.translation = options.getfieldvalue('origin',[0,0,0.0]);
    5353        canvas.rotationAzimuthBounds = options.getfieldvalue('azlim',[0,360]);
    5454        canvas.rotationElevationBounds = options.getfieldvalue('ellim',[-180,180]);
    5555        canvas.rotationDefault = options.getfieldvalue('view',[0,90]); //0 azimuth - up is north, 90 elevation - looking straight down
     
    6060        canvas.movieReverse = false;
    6161        canvas.movieIncrement = true;
    6262        canvas.moviefps = options.getfieldvalue('moviefps',5);
    63 
    64         if (canvas.twod) {
    65                 canvas.rotationAzimuthBounds = [0,0];
    66                 canvas.rotationElevationBounds = [90,90];
    67                 canvas.rotationDefault = [0,90];
    68                 canvas.rotation = canvas.rotationDefault;
    69         }
    7063       
    7164        // Add event listeners for canvas
    7265        var displayview = options.getfieldvalue('displayview','off') == 'on';
     
    395388        var rotationMatrix = mat4.create();
    396389        var azimuthRotationMatrix = mat4.create();
    397390        var elevationRotationMatrix = mat4.create();
     391        var aspectRatio = canvas.clientWidth / canvas.clientHeight;
    398392
    399393        if (canvas.twod) {
    400                 mat4.ortho(pMatrix, -1/canvas.zoomFactor, 1/canvas.zoomFactor, -1/canvas.zoomFactor, 1/canvas.zoomFactor, -1.0, 10000.0);
     394                mat4.ortho(pMatrix, -1*aspectRatio/canvas.zoomFactor, 1*aspectRatio/canvas.zoomFactor, -1*aspectRatio/canvas.zoomFactor, 1*aspectRatio/canvas.zoomFactor, -1.0, 10000.0);
    401395        }
    402396        else {
    403                 mat4.perspective(pMatrix, 60 * Math.PI / 180, canvas.clientWidth / canvas.clientHeight, 0.001, 10000.0);
     397                mat4.perspective(pMatrix, 60 * Math.PI / 180, aspectRatio, 0.001, 10000.0);
    404398        }
    405399       
    406400        //Apply worldspace translation
     
    408402        mat4.multiply(vMatrix, translateMatrix, vMatrix);
    409403       
    410404        //Calculate rotation around camera focal point about worldspace origin
    411         mat4.rotate(azimuthRotationMatrix, azimuthRotationMatrix, radians(canvas.rotation[0]), [0, 1, 0]);
    412         mat4.rotate(elevationRotationMatrix, elevationRotationMatrix, radians(canvas.rotation[1]), [1, 0, 0]);
    413         mat4.multiply(rotationMatrix, elevationRotationMatrix, azimuthRotationMatrix);
     405        if (canvas.twod) {
     406                mat4.rotate(azimuthRotationMatrix, azimuthRotationMatrix, radians(canvas.rotation[0]), [0, 1, 0]);
     407                mat4.rotate(elevationRotationMatrix, elevationRotationMatrix, radians(canvas.rotation[1]), [1, 0, 0]);
     408                mat4.multiply(rotationMatrix, elevationRotationMatrix, azimuthRotationMatrix);
     409        }
     410        else {
     411                mat4.rotate(azimuthRotationMatrix, azimuthRotationMatrix, radians(0), [0, 1, 0]);
     412                mat4.rotate(elevationRotationMatrix, elevationRotationMatrix, radians(90), [1, 0, 0]);
     413                mat4.multiply(rotationMatrix, elevationRotationMatrix, azimuthRotationMatrix);
     414        }
    414415       
    415416        //Apply rotation and scaling transform
    416417        mat4.multiply(vMatrix, rotationMatrix, vMatrix);
Note: See TracBrowser for help on using the repository browser.