diff fps/resources/parse.js @ 0:fbb6f4f89f76

info3_1week
author Syusaku Morita <e105716@ie.u-ryukyu.ac.jp>
date Fri, 27 Apr 2012 13:13:49 +0900
parents
children 6b217e0f301c
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fps/resources/parse.js	Fri Apr 27 13:13:49 2012 +0900
@@ -0,0 +1,104 @@
+
+
+
+
+function loadObjXml(gl,url)
+{
+    if(gl.obj == undefined) gl.obj = new Object();
+    var xmlChara = new Object();
+    xmlChara = parseObj(url);
+    for (var name in xmlChara)
+	{
+            gl.obj[name] = makeXmlObj(gl, xmlChara[name]);
+            gl.obj[name].texture = loadImageTexture(gl, xmlChara[name].image);
+	}
+}
+
+function PutSpriteF(ctx, x, y, scale, glObj)
+{
+    PutSpriteA(ctx,x,y,10, scale, 0, glObj);
+}
+
+
+function PutSpriteA(ctx, x, y, z, scale, angle,  glObj)
+{
+    // setup VBOs
+    ctx.enableVertexAttribArray(0);
+    ctx.enableVertexAttribArray(1);
+    ctx.enableVertexAttribArray(2);
+				
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.vertexObject);
+    ctx.vertexAttribPointer(2, 3, ctx.FLOAT, false, 0, 0);
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.normalObject);
+    ctx.vertexAttribPointer(0, 3, ctx.FLOAT, false, 0, 0);
+    
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.texCoordObject);
+    ctx.vertexAttribPointer(1, 2, ctx.FLOAT, false, 0, 0);
+				
+    ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, glObj.indexObject);
+
+    // generate the model-view matrix
+    var mvMatrix = new J3DIMatrix4();
+    mvMatrix.translate( x, y, z);
+    mvMatrix.scale(scale, scale, scale);
+    mvMatrix.rotate(angle, 0, 0, 1);
+    
+    // construct the normal matrix from the model-view matrix
+    var normalMatrix = new J3DIMatrix4(mvMatrix);
+    normalMatrix.invert();
+    normalMatrix.transpose();
+    normalMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_normalMatrix"), false);
+    
+    // construct the model-view * projection matrix
+    var mvpMatrix = new J3DIMatrix4(ctx.perspectiveMatrix);
+    mvpMatrix.multiply(mvMatrix);
+     mvpMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_modelViewProjMatrix"), false);
+
+    
+    ctx.bindTexture(ctx.TEXTURE_2D, glObj.texture);
+    ctx.drawElements(ctx.TRIANGLES, glObj.numIndices, ctx.UNSIGNED_SHORT, 0);
+ 
+}
+
+
+
+// matrix version
+function PutSpriteV(ctx, x, y, z, scale, matrix, glObj)
+{
+    // setup VBOs
+    ctx.enableVertexAttribArray(0);
+    ctx.enableVertexAttribArray(1);
+    ctx.enableVertexAttribArray(2);
+				
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.vertexObject);
+    ctx.vertexAttribPointer(2, 3, ctx.FLOAT, false, 0, 0);
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.normalObject);
+    ctx.vertexAttribPointer(0, 3, ctx.FLOAT, false, 0, 0);
+    
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.texCoordObject);
+    ctx.vertexAttribPointer(1, 2, ctx.FLOAT, false, 0, 0);
+				
+    ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, glObj.indexObject);
+
+    // generate the model-view matrix
+    var mvMatrix = new J3DIMatrix4();
+    mvMatrix.translate( x, y, z);
+    mvMatrix.scale(scale, scale, scale);
+    mvMatrix.multiply(matrix);
+    
+    // construct the normal matrix from the model-view matrix
+    var normalMatrix = new J3DIMatrix4(mvMatrix);
+    normalMatrix.invert();
+    normalMatrix.transpose();
+    normalMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_normalMatrix"), false);
+    
+    // construct the model-view * projection matrix
+    var mvpMatrix = new J3DIMatrix4(ctx.perspectiveMatrix);
+    mvpMatrix.multiply(mvMatrix);
+     mvpMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_modelViewProjMatrix"), false);
+
+    
+    ctx.bindTexture(ctx.TEXTURE_2D, glObj.texture);
+    ctx.drawElements(ctx.TRIANGLES, glObj.numIndices, ctx.UNSIGNED_SHORT, 0);
+ 
+}
\ No newline at end of file