source:
issm/oecreview/Archive/20545-21336/ISSM-20769-20770.diff@
21337
Last change on this file since 21337 was 21337, checked in by , 8 years ago | |
---|---|
File size: 3.1 KB |
-
../trunk-jpl/src/m/plot/webgl.js
49 49 canvas.zoomFactor = clamp(options.getfieldvalue('zoom',1.0), canvas.zoomBounds[0], canvas.zoomBounds[1]); 50 50 canvas.zoomLast = canvas.zoomFactor; 51 51 canvas.cameraMatrix = mat4.create(); 52 canvas.translation = options.getfieldvalue(' centeroffset',[0,0,0.0]);52 canvas.translation = options.getfieldvalue('origin',[0,0,0.0]); 53 53 canvas.rotationAzimuthBounds = options.getfieldvalue('azlim',[0,360]); 54 54 canvas.rotationElevationBounds = options.getfieldvalue('ellim',[-180,180]); 55 55 canvas.rotationDefault = options.getfieldvalue('view',[0,90]); //0 azimuth - up is north, 90 elevation - looking straight down … … 60 60 canvas.movieReverse = false; 61 61 canvas.movieIncrement = true; 62 62 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 }70 63 71 64 // Add event listeners for canvas 72 65 var displayview = options.getfieldvalue('displayview','off') == 'on'; … … 395 388 var rotationMatrix = mat4.create(); 396 389 var azimuthRotationMatrix = mat4.create(); 397 390 var elevationRotationMatrix = mat4.create(); 391 var aspectRatio = canvas.clientWidth / canvas.clientHeight; 398 392 399 393 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); 401 395 } 402 396 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); 404 398 } 405 399 406 400 //Apply worldspace translation … … 408 402 mat4.multiply(vMatrix, translateMatrix, vMatrix); 409 403 410 404 //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 } 414 415 415 416 //Apply rotation and scaling transform 416 417 mat4.multiply(vMatrix, rotationMatrix, vMatrix);
Note:
See TracBrowser
for help on using the repository browser.