Changeset 19729
- Timestamp:
- 11/17/15 08:45:56 (9 years ago)
- Location:
- issm/trunk-jpl/src/m/plot
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/plot/plot_unit.js
r19728 r19729 21 21 loadShaders(gl); 22 22 var node=loadModel(gl,x,y,z,elements,data); 23 drawSceneGraphNode(gl,node); 24 } 23 draw(gl,canvas,node);} 25 24 26 25 switch(datatype){ -
issm/trunk-jpl/src/m/plot/webgl.js
r19728 r19729 32 32 33 33 // Add context state variables 34 //gl.zoomFactor =1.0;35 //gl.cameraMatrix = mat4.create();34 canvas.zoomFactor = -1.0; 35 canvas.cameraMatrix = mat4.create(); 36 36 37 37 // Add event listeners for canvas 38 38 if (canvas.addEventListener) { 39 39 // IE9, Chrome, Safari, Opera 40 canvas.addEventListener("mousewheel", function (e) {MouseWheelHandler(e, gl)}, false);40 canvas.addEventListener("mousewheel", function (e) {MouseWheelHandler(e,canvas)}, false); 41 41 // Firefox 42 canvas.addEventListener("DOMMouseScroll", function (e) {MouseWheelHandler(e, gl)}, false);42 canvas.addEventListener("DOMMouseScroll", function (e) {MouseWheelHandler(e,canvas)}, false); 43 43 // Mobile 44 44 //canvas.addEventListener("gesturechange", MousePinchHandler, false); … … 286 286 //}}} 287 287 //{{{ Interface Functions 288 function MouseWheelHandler(e, gl) { //{{{288 function MouseWheelHandler(e,canvas) { //{{{ 289 289 // prevent scrolling when over canvas 290 290 e.preventDefault(); 291 var delta = clamp((e.wheelDelta || -e.detail), -1, 1); 292 //gl.zoomFactor = gl.zoomFactor + delta; 293 updateCameraMatrix(gl); 291 var delta = 1/10 * clamp((e.wheelDelta || -e.detail), -1, 1); 292 canvas.zoomFactor = canvas.zoomFactor + -delta * canvas.zoomFactor; 294 293 } //}}} 295 294 //}}} 296 295 //{{{ Drawing Functions 297 function updateCameraMatrix( gl) { //{{{296 function updateCameraMatrix(canvas) { //{{{ 298 297 //Update view matrix and multiply with projection matrix to get the view-projection (camera) matrix. 299 298 var vMatrix = mat4.create(); 300 299 var pMatrix = mat4.create(); 301 300 302 mat4.perspective(pMatrix, 45 * Math.PI / 180, gl.canvas.width / gl.canvas.height, 0.001, 10000.0); 303 304 var scaleMatrix= mat4.create(); 305 mat4.scale(scaleMatrix, scaleMatrix, [1/100000000000000, 1/100000000000000, 1/100000000000000]); 306 mat4.multiply(vMatrix, scaleMatrix, vMatrix); 301 mat4.perspective(pMatrix, 90 * Math.PI / 180, canvas.width / canvas.height, 0.001, 10000.0); 307 302 308 303 //Apply screenspace relative translation 309 304 var translateMatrix = mat4.create(); 310 mat4.translate(translateMatrix, translateMatrix, [0.0, 0.0, gl.zoomFactor]);305 mat4.translate(translateMatrix, translateMatrix, [0.0, 0.0, canvas.zoomFactor]); 311 306 mat4.multiply(vMatrix, translateMatrix, vMatrix); 312 307 313 308 //Apply projection matrix to get camera matrix 314 mat4.multiply(gl.cameraMatrix, pMatrix, vMatrix); 309 mat4.multiply(canvas.cameraMatrix, pMatrix, vMatrix); 310 // canvas.cameraMatrix = mat4.create(); 315 311 }//}}} 316 function drawSceneGraphNode(gl, node) { //{{{312 function drawSceneGraphNode(gl,canvas,node) { //{{{ 317 313 bindAttributes(gl, node["shader"], node["buffers"]); 318 314 var mvpMatrix = mat4.create(); 319 var cameraMatrix = mat4.create();320 //var cameraMatrix = gl.cameraMatrix;321 315 if (node["useOrthographic"] == true) { 322 316 mat4.ortho(mvpMatrix, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0); 323 317 } 324 318 else { 325 mat4.multiply(mvpMatrix, ca meraMatrix, node["modelMatrix"]);319 mat4.multiply(mvpMatrix, canvas.cameraMatrix, node["modelMatrix"]); 326 320 } 327 321 gl.uniformMatrix4fv(node["shader"]["uMVPMatrix"], false, mvpMatrix); … … 334 328 gl.drawArrays(node["drawMode"], 0, node["buffers"][0].numItems); 335 329 } 336 gl.enable(gl.DEPTH_TEST);337 gl.disable(gl.CULL_FACE);338 330 } //}}} 339 331 function bindAttributes(gl,shaderProgram,bufferArray) { //{{{ … … 350 342 } 351 343 } //}}} 344 function draw(gl,canvas,node) { //{{{ 345 window.requestAnimationFrame(function(time) {draw(gl,canvas,node)}); 346 gl.viewport(0, 0, canvas.width, canvas.height); 347 gl.clearColor(0.0, 0.0, 0.0, 1.0); 348 gl.clear(gl.COLOR_BUFFER_BIT); 349 updateCameraMatrix(canvas); 350 351 drawSceneGraphNode(gl, canvas, node); 352 } //}}} 352 353 //}}}
Note:
See TracChangeset
for help on using the changeset viewer.