changeset 5:85896f291a95

modify drawObj
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Mon, 16 Apr 2012 01:02:54 +0900
parents 86eb5933aeb9
children a6215e33597a
files drawObj/drawObj.html drawObj/resources/makePanel.js drawObj/resources/parse.js
diffstat 3 files changed, 22 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/drawObj/drawObj.html	Sun Apr 15 19:17:56 2012 +0900
+++ b/drawObj/drawObj.html	Mon Apr 16 01:02:54 2012 +0900
@@ -68,17 +68,25 @@
     
     gl.enable(gl.TEXTURE_2D);
     
-    parseXml(gl);//parse.js
+    modelMap = new XMLModelMap(gl);
+    modelMap.load("./xml/Cube.xml");
+    object = modelMap["Cube"];
 
     return gl;
     }
     
-
-    function parseXml(gl)
-    {
-    loadObjXml(gl, "./xml/cube.xml");
+    function XMLModelMap(gl) {
+    this.gl = gl;
     }
 
+    XMLModelMap.prototype.load = function(file) {
+    var data = parseObj(file);
+    if(!data) return;
+    for(var name in data) {
+    this[name] = makeXmlObj(gl,data[name]);
+    this[name].texture = loadImageTexture(this.gl, data[name].image);
+    }
+    }
 
     function reshape(ctx, ortho)
     {
@@ -142,7 +150,6 @@
 //    c.height = H;
 
     var ctx = init();
-    object = gl.obj["Cube"]; // default object.
 
     o = function() {opening(ctx, ortho);};
     setTimeout(o, 10);
@@ -153,9 +160,9 @@
     function loadFile(objectname)
     {
     var filename = "./xml/"+objectname+".xml";
-    loadObjXml(gl, filename);
-    console.log(filename);
-    object = gl.obj[objectname];
+    modelMap.load(filename);
+//    console.log(filename);
+    object = modelMap[objectname];
     }
 
 function objToString(obj,map,indent){
--- a/drawObj/resources/makePanel.js	Sun Apr 15 19:17:56 2012 +0900
+++ b/drawObj/resources/makePanel.js	Mon Apr 16 01:02:54 2012 +0900
@@ -10,7 +10,7 @@
 			obj.normal = splitVector(data["surface"][i]["normal"]);
 			obj.texCoords = splitVector(data["surface"][i]["texture"]);
 			obj.model = splitVector(data["surface"][i]["model"]);
-			var xmlObjImage = data["surface"][i]["image"];
+		 	var xmlObjImage = data["surface"][i]["image"];
 			obj.image = 'data:image/png;base64,'+xmlObjImage["#text"];
 		}
     } else {
--- a/drawObj/resources/parse.js	Sun Apr 15 19:17:56 2012 +0900
+++ b/drawObj/resources/parse.js	Mon Apr 16 01:02:54 2012 +0900
@@ -1,3 +1,6 @@
+
+
+
 
 function loadObjXml(gl,url)
 {
@@ -36,8 +39,8 @@
 
     // generate the model-view matrix
     var mvMatrix = new J3DIMatrix4();
+    mvMatrix.translate( x, y, z);
     mvMatrix.scale(scale, scale, scale);
-    mvMatrix.translate( x, y, z);
     mvMatrix.rotate(angle, 0, 0, 1);
     
     // construct the normal matrix from the model-view matrix
@@ -79,8 +82,8 @@
 
     // generate the model-view matrix
     var mvMatrix = new J3DIMatrix4();
+    mvMatrix.translate( x, y, z);
     mvMatrix.scale(scale, scale, scale);
-    mvMatrix.translate( x, y, z);
     mvMatrix.multiply(matrix);
     
     // construct the normal matrix from the model-view matrix