Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.74 KB | None | 0 0
  1. var canvas;
  2. var gl;
  3.  
  4. var numVertices = 24;
  5.  
  6. var pointsBox = [];
  7.  
  8. var movement = false; // Do we rotate?
  9. var spinX = 0;
  10. var spinY = 0;
  11. var origX;
  12. var origY;
  13. var x1 = -0.1;
  14. var x2 = -1.0;
  15. var x3 = -1.0;
  16.  
  17. var zView = 2.0;
  18.  
  19.  
  20. var matrixLoc;
  21. var colorLoc;
  22.  
  23. var yRot;
  24. var zRot;
  25.  
  26. var mv;
  27. var mv1 = mat4();
  28. var mv2 = mat4();
  29. var mv3 = mat4();
  30.  
  31. var intervalBreyta = 0.0;
  32.  
  33.  
  34.  
  35. window.onload = function init()
  36. {
  37. canvas = document.getElementById( "gl-canvas" );
  38.  
  39. gl = WebGLUtils.setupWebGL( canvas );
  40. if ( !gl ) { alert( "WebGL isn't available" ); }
  41.  
  42. var hitdetBox = [
  43. vec3(false, false, false),
  44. ]
  45.  
  46. var verticesBox = [ // Hnit horna í kassanum
  47. vec3( -3.0, -10.0, 3.0 ),
  48. vec3( -3.0, 10.0, 3.0 ),
  49. vec3( -3.0, -10.0, 3.0 ),
  50. vec3( -3.0, -10.0, -3.0 ),
  51. vec3( -3.0, -10.0, 3.0 ),
  52. vec3( 3.0, -10.0, 3.0 ),
  53.  
  54. vec3( 3.0, 10.0, 3.0 ),
  55. vec3( -3.0, 10.0, 3.0 ),
  56. vec3( 3.0, 10.0, 3.0 ),
  57. vec3( 3.0, -10.0, 3.0 ),
  58. vec3( 3.0, 10.0, 3.0 ),
  59. vec3( 3.0, 10.0, -3.0 ),
  60.  
  61. vec3( 3.0, 10.0, -3.0 ),
  62. vec3( -3.0, 10.0, -3.0 ),
  63. vec3( 3.0, 10.0, -3.0 ),
  64. vec3( 3.0, -10.0, -3.0 ),
  65. vec3( -3.0, 10.0, -3.0 ),
  66. vec3( -3.0, 10.0, 3.0 ),
  67.  
  68. vec3( -3.0, 10.0, -3.0 ),
  69. vec3( -3.0, -10.0, -3.0 ),
  70. vec3( 3.0, -10.0, -3.0 ),
  71. vec3( -3.0, -10.0, -3.0 ),
  72. vec3( 3.0, -10.0, -3.0 ),
  73. vec3( 3.0, -10.0, 3.0 )
  74. ///////////////////////////////////////////////
  75.  
  76.  
  77. /*vec3( -1.0, -1.0, 0.0 ),
  78. vec3( -1.0, 0.0, 0.0 ),
  79. vec3( 0.0, 0.0, 0.0 ),
  80. vec3( 0.0, -1.0, 0.0 ),
  81. vec3( -1.0, -1.0, -1.0 ),
  82. vec3( 0.0, 0.0, -1.0 ),
  83. vec3( 0.0, 0.0, -1.0 ),
  84. vec3( 0.0, -1.0, -1.0 )*/
  85. /*
  86. vec3( -1.0, -1.0, 1.0 ), 0
  87. vec3( -1.0, 1.0, 1.0 ), 1
  88. vec3( 1.0, 1.0, 1.0 ), 2
  89. vec3( 1.0, -1.0, 1.0 ), 3
  90. vec3( -1.0, -1.0, -1.0 ), 4
  91. vec3( -1.0, 1.0, -1.0 ), 5
  92. vec3( 1.0, 1.0, -1.0 ), 6
  93. vec3( 1.0, -1.0, -1.0 ) 7
  94. */
  95. ];
  96.  
  97. gl.viewport( 0, 0, canvas.width, canvas.height );
  98. gl.clearColor( 0.9, 1.0, 1.0, 1.0 );
  99.  
  100. gl.enable(gl.DEPTH_TEST);
  101.  
  102. //
  103. // Load shaders and initialize attribute buffers
  104. //
  105. var program = initShaders( gl, "vertex-shader", "fragment-shader" );
  106. gl.useProgram( program );
  107.  
  108. var vBuffer = gl.createBuffer();
  109. gl.bindBuffer( gl.ARRAY_BUFFER, vBuffer );
  110. gl.bufferData( gl.ARRAY_BUFFER, flatten(verticesBox), gl.STATIC_DRAW );
  111.  
  112. var vPosition = gl.getAttribLocation( program, "vPosition" );
  113. gl.vertexAttribPointer( vPosition, 3, gl.FLOAT, false, 0, 0 );
  114. gl.enableVertexAttribArray( vPosition );
  115.  
  116. matrixLoc = gl.getUniformLocation( program, "rotation" );
  117. colorLoc = gl.getUniformLocation( program, "fColor" );
  118.  
  119. //event listeners for mouse
  120. canvas.addEventListener("mousedown", function(e){
  121. movement = true;
  122. origX = e.offsetX;
  123. origY = e.offsetY;
  124. e.preventDefault(); // Disable drag and drop
  125. } );
  126.  
  127. canvas.addEventListener("mouseup", function(e){
  128. movement = false;
  129. } );
  130.  
  131. canvas.addEventListener("mousemove", function(e){
  132. if(movement) {
  133. spinY = ( spinY + (e.offsetX - origX) ) % 360;
  134. spinX = ( spinX + (e.offsetY - origY) ) % 360;
  135. origX = e.offsetX;
  136. origY = e.offsetY;
  137. }
  138. } );
  139.  
  140. // Atburðafall fyrir músarhjól
  141. window.addEventListener("mousewheel", function(e){
  142. if( e.wheelDelta > 0.0 ) {
  143. zView *= 1.1;
  144. } else {
  145. zView *= 0.9;
  146. }
  147. } );
  148.  
  149. render();
  150.  
  151. }
  152.  
  153.  
  154. function hreyfa(placeholder) {
  155. placeholder = mult( placeholder, translate(0.0, x1, 0.0));
  156. gl.uniformMatrix4fv(matrixLoc, false, flatten(placeholder));
  157. gl.drawArrays( gl.LINES, 0, numVertices );
  158. console.log(x1);
  159. x1 = x1 - 0.1;
  160. }
  161.  
  162. /*function hreyfa2() {
  163.  
  164.  
  165. mv2 = mult( mv2, translate (0.0, x2, 0.0));
  166. gl.uniformMatrix4fv(matrixLoc, false, flatten(mv2));
  167. gl.drawArrays( gl.LINES, 0, numVertices );
  168. console.log(x2);
  169. x2 = x2 - 1.0;
  170. }
  171.  
  172.  
  173. function hreyfa3() {
  174.  
  175.  
  176. mv3 = mult( mv3, translate (0.0, x3, 0.0));
  177. gl.uniformMatrix4fv(matrixLoc, false, flatten(mv3));
  178. gl.drawArrays( gl.LINES, 0, numVertices );
  179. console.log(x3);
  180. x3 = x3 - 1.0;
  181. }*/
  182.  
  183.  
  184.  
  185.  
  186. function render()
  187. {
  188. gl.clear( gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
  189. mv = mat4();
  190. mv = mult( mv, rotateX(spinX) );
  191. mv = mult( mv, rotateY(spinY) );
  192. mv = mult( mv, scalem(zView, zView, zView));
  193. gl.uniform4fv( colorLoc, vec4(0.0, 0.0, 0.0, 1.0) );
  194. gl.uniformMatrix4fv(matrixLoc, false, flatten(mv));
  195. gl.drawArrays( gl.LINES, 0, numVertices );
  196. //var mv1 = mat4();
  197.  
  198. mv1 = mult( mv, translate(2.5, 9.5, 2.5));
  199. mv1 = mult( mv1, scalem( 0.166, 0.05, 0.166));
  200. // gl.uniformMatrix4fv(matrixLoc, false, flatten(mv1));
  201. // gl.drawArrays( gl.LINES, 0, numVertices );
  202.  
  203. hreyfa(mv1);
  204.  
  205.  
  206.  
  207. //var mv2 = mat4();
  208.  
  209. mv2 = mult( mv, translate(2.5, 8.5, 2.5));
  210. mv2 = mult( mv2, scalem( 0.166, 0.05, 0.166));
  211. // gl.uniformMatrix4fv(matrixLoc, false, flatten(mv2));
  212. // gl.drawArrays( gl.LINES, 0, numVertices );
  213.  
  214. //var mv3 = mat4();
  215.  
  216. hreyfa(mv2);
  217.  
  218.  
  219. mv3 = mult( mv, translate(2.5, 7.5, 2.5));
  220. mv3 = mult( mv3, scalem( 0.166, 0.05, 0.166));
  221. // gl.uniformMatrix4fv(matrixLoc, false, flatten(mv3));
  222. // gl.drawArrays( gl.LINES, 0, numVertices );
  223.  
  224. hreyfa(mv3);
  225. requestAnimFrame( render );
  226.  
  227. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement