Changeset 19946
- Timestamp:
- 01/09/16 17:30:35 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/plot/webgl.js
r19945 r19946 34 34 // Add context state variables 35 35 //TODO:Group variables in objects for organization and naming 36 canvas.zoomBounds = options.getfieldvalue('zoombounds',[0, -.52]);37 canvas.zoomFactor = clamp(options.getfieldvalue('zoomfactor', canvas.zoomBounds[1]), canvas.zoomBounds[1], canvas.zoomBounds[0]);36 canvas.zoomBounds = options.getfieldvalue('zoombounds',[0,100.0]); 37 canvas.zoomFactor = clamp(options.getfieldvalue('zoomfactor',1.0), canvas.zoomBounds[0], canvas.zoomBounds[1]); 38 38 canvas.zoomLast = canvas.zoomFactor; 39 39 canvas.cameraMatrix = mat4.create(); … … 118 118 level:0, 119 119 useIndexBuffer:true, 120 useOrthographic:false,121 120 alpha:1.0, 122 121 disableDepthTest:false, … … 130 129 modelMatrix:mat4.create(), 131 130 shaderName:"colored", 132 overlay:false,133 131 drawOrder:0, 134 132 maskEnabled:false, … … 328 326 } 329 327 if (ev.srcEvent.shiftKey || ev.pointers.length == 2) { 330 var deltaX = (canvas.lastDeltaX - ev.deltaX) / canvas.clientWidth * canvas.zoomFactor *2;331 var deltaY = (canvas.lastDeltaY - ev.deltaY) / canvas.clientHeight * canvas.zoomFactor *2;328 var deltaX = (canvas.lastDeltaX - ev.deltaX) / canvas.clientWidth / canvas.zoomFactor * -2; 329 var deltaY = (canvas.lastDeltaY - ev.deltaY) / canvas.clientHeight / canvas.zoomFactor * -2; 332 330 333 331 canvas.translation[0] += Math.cos(radians(canvas.rotation[0])) * deltaX - Math.sin(radians(canvas.rotation[0])) * deltaY; … … 335 333 } 336 334 else { 337 canvas.rotation[0] += degrees((canvas.lastDeltaX - ev.deltaX) / canvas.clientWidth * canvas.zoomFactor *2);338 canvas.rotation[1] += degrees((canvas.lastDeltaY - ev.deltaY) / canvas.clientHeight * canvas.zoomFactor *2);335 canvas.rotation[0] += degrees((canvas.lastDeltaX - ev.deltaX) / canvas.clientWidth / canvas.zoomFactor * -2); 336 canvas.rotation[1] += degrees((canvas.lastDeltaY - ev.deltaY) / canvas.clientHeight / canvas.zoomFactor * -2); 339 337 340 338 if (canvas.rotation[0] > 360) {canvas.rotation[0] -= 360}; … … 357 355 } 358 356 else { 359 canvas.zoomFactor = clamp(ev.scale * canvas.zoomLast, canvas.zoomBounds[ 1], canvas.zoomBounds[0]);357 canvas.zoomFactor = clamp(ev.scale * canvas.zoomLast, canvas.zoomBounds[0], canvas.zoomBounds[1]); 360 358 if (displaylog) console.log(canvas.zoomFactor); 361 359 } … … 364 362 ev.preventDefault(); 365 363 var delta = 1/10 * clamp(ev.scale || ev.wheelDelta || -ev.detail, -1, 1); 366 canvas.zoomFactor = clamp(canvas.zoomFactor - delta * canvas.zoomFactor, canvas.zoomBounds[1], canvas.zoomBounds[0]); 364 canvas.zoomFactor = clamp(canvas.zoomFactor + delta / canvas.zoomFactor, canvas.zoomBounds[0], canvas.zoomBounds[1]); 365 367 366 if (displaylog) console.log(canvas.zoomFactor); 368 367 } //}}} … … 379 378 380 379 if (canvas.twod) { 381 mat4.ortho(pMatrix, 1*canvas.zoomFactor, -1*canvas.zoomFactor, 1*canvas.zoomFactor, -1*canvas.zoomFactor, -1, 1.0);380 mat4.ortho(pMatrix, -1/canvas.zoomFactor, 1/canvas.zoomFactor, -1/canvas.zoomFactor, 1/canvas.zoomFactor, -1.0, 10000.0); 382 381 } 383 382 else { … … 399 398 //Apply screenspace translation 400 399 mat4.identity(translateMatrix); 401 mat4.translate(translateMatrix, translateMatrix, [0.0, 0.0, canvas.zoomFactor]);400 mat4.translate(translateMatrix, translateMatrix, [0.0, 0.0, -1/canvas.zoomFactor]); 402 401 mat4.multiply(vMatrix, translateMatrix, vMatrix); 403 402 … … 417 416 bindAttributes(gl, node["shader"], node["buffers"]); 418 417 var mvpMatrix = mat4.create(); 419 if (node["useOrthographic"] == true) { 420 mat4.ortho(mvpMatrix, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0); 421 } 422 else { 423 mat4.multiply(mvpMatrix, canvas.cameraMatrix, node["modelMatrix"]); 424 } 418 mat4.multiply(mvpMatrix, canvas.cameraMatrix, node["modelMatrix"]); 425 419 gl.uniformMatrix4fv(node["shader"]["uMVPMatrix"], false, mvpMatrix); 426 420 gl.uniform1f(node["shader"]["uAlpha"], node["alpha"]); … … 433 427 gl.uniform1i(node["shader"]["uColorSampler"], 0); 434 428 } 435 //if (node["overlay"] == true) {436 // gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);437 //}438 //else {439 // gl.blendFunc (gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);440 //}441 429 gl.blendFunc (gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA); 442 430 if (node["useIndexBuffer"] == true) {
Note:
See TracChangeset
for help on using the changeset viewer.