annotate resources/render/Image_xml.js @ 0:0b8d8ce99f46 default tip

commit
author Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
date Mon, 14 Feb 2011 17:06:56 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 function createFromXMLfile(gl,sgroot,url){
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 if(gl.obj == undefined) gl.obj = new Object();
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 var xmlChara = new Object();
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 xmlChara = parsePanel(url);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 for (var name in xmlChara)
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 gl.obj[name] = makeXmlObj(gl, xmlChara[name]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 gl.obj[name].texture = loadImageTexture(gl, xmlChara[name].image);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 gl.obj[name].name = name;
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 function createFromXMLfile2(gl,url){
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 if(gl.obj == undefined) gl.obj = new Object();
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 var xmlChara = new Object();
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 xmlChara = parsePanel2(url);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 for (var name in xmlChara)
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 gl.obj[name] = makeXmlObj(gl, xmlChara[name]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 gl.obj[name].texture = loadImageTexture(gl, xmlChara[name].image);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 gl.obj[name].name = name;
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 function parsePanel(url) {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 var http = new JKL.ParseXML(url);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 var data = http.parse()["OBJECT-3D"];
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 var xmlObj = new Object();
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 if (data["surface"][0]) {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 for (var i in data["surface"]) {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 var obj = xmlObj[data["surface"][i]["name"]] = new Object();
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 obj.vertex = splitVector(data["surface"][i]["coordinate"]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 obj.normal = splitVector(data["surface"][i]["normal"]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 obj.texCoords = splitVector(data["surface"][i]["texture"]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 obj.model = splitVector(data["surface"][i]["model"]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 var xmlObjImage = data["surface"][i]["image"];
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 obj.image = 'data:image/png;base64,'+xmlObjImage["#text"];
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 } else {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 var obj = xmlObj[data["surface"]["name"]] = new Object();
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 obj.vertex = splitVector(data["surface"]["coordinate"]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 obj.normal = splitVector(data["surface"]["normal"]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 obj.texCoords = splitVector(data["surface"]["texture"]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 obj.model = splitVector(data["surface"]["model"]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 var xmlObjImage = data["surface"]["image"];
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 obj.image = 'data:image/png;base64,'+xmlObjImage["#text"];
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 return xmlObj;
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 function parsePanel2(url) {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 var http = new JKL.ParseXML(url);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 var data = http.parse()["OBJECT-3D"];
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 var xmlObj = new Object();
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 if (data["surface"][0]) {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 for (var i in data["surface"]) {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 var obj = xmlObj[data["surface"][i]["name"]] = new Object();
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 obj.vertex = splitVector(data["surface"][i]["coordinate"]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 obj.normal = splitVector(data["surface"][i]["normal"]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 obj.texCoords = splitVector(data["surface"][i]["texture"]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 obj.model = splitVector(data["surface"][i]["model"]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 obj.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGUlEQVQokWP8/fs3AymAiSTVoxpGNQwpDQAwxQMRlevqcQAAAABJRU5ErkJggg==';
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 } else {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 var obj = xmlObj[data["surface"]["name"]] = new Object();
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 obj.vertex = splitVector(data["surface"]["coordinate"]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 obj.normal = splitVector(data["surface"]["normal"]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 obj.texCoords = splitVector(data["surface"]["texture"]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 obj.model = splitVector(data["surface"]["model"]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 obj.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGUlEQVQokWP8/fs3AymAiSTVoxpGNQwpDQAwxQMRlevqcQAAAABJRU5ErkJggg==';
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 return xmlObj;
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 function parseName(url) {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 var http = new JKL.ParseXML(url);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 var data = http.parse()["OBJECT-3D"];
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 var names = new Array();
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 if (data["surface"][0]) {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 for (var i in data["surface"]) {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 names.push(data["surface"][i]["name"]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 } else {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 names.push(data["surface"]["name"]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 return names;
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 function parseCoordinate(url ,name, map) {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 var http = new JKL.ParseXML(url);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 var data = http.parse()["OBJECT-3D"];
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 if (data["surface"][0]) {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 for (var i in data["surface"]) {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 if(data["surface"][i]["name"] == name){
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 map = map.concat(splitVector(data["surface"][i]["coordinate"]));
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 } else {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 if(data["surface"]["name"] == name){
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 map = map.concat(splitVector(data["surface"]["coordinate"]));
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 return map;
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 function splitVector(str) {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 // return str.replace(/^\s+/g, "").replace(/\s+/g, " ").split(" ");
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 return str.replace(/^\s+/g, "").replace(/\s+/g, " ").replace(/\s$/g, "").split(" ");
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 function makeXmlObj(ctx, xmlObj)
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
118
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 var model = new Object();
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 model.x = parseFloat(xmlObj.model[0]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 model.y = parseFloat(xmlObj.model[1]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 model.z = parseFloat(xmlObj.model[2]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
123
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 var geometryData = [ ];
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 var normalData = [ ];
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 var texCoordData = [ ];
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 var indexData = [ ];
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 var index = 0;
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 var xmax = 0;
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 var xmin = 0;
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 var ymax = 0;
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 var ymin = 0;
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
133
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
134
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 for(var i=0; xmlObj.vertex[i]; i+=3){
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 geometryData.push(parseFloat(xmlObj.vertex[i]) - model.x);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 geometryData.push(parseFloat(xmlObj.vertex[i+1]) - model.y);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 geometryData.push(parseFloat(xmlObj.vertex[i+2]) - model.z);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 if ( (i % 3) == 0) {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 indexData.push(index);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 index++;
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 //オブジェクトの最大・最小のx,y座標を求める
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 if ( i == 0) {
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 xmax = geometryData[0];
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 xmin = geometryData[0];
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 ymax = geometryData[1];
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 ymin = geometryData[1];
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 if ( i > 0 ){
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 xmax = Math.max( xmax, geometryData[i]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 xmin = Math.min( xmin, geometryData[i]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 ymax = Math.max( ymax, geometryData[i+1]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 ymin = Math.min( ymin, geometryData[i+1]);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
156
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 for(i=0; xmlObj.texCoords[i]; i++){
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 texCoordData.push(parseFloat(xmlObj.texCoords[i]));
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
160
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 for(i=0; xmlObj.normal[i]; i+=3){
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 normalData.push(parseFloat(xmlObj.normal[i]));
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 normalData.push(parseFloat(xmlObj.normal[i+1]));
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 normalData.push(parseFloat(xmlObj.normal[i+2]));
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
167
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 var retval = { };
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
169 //オブジェクトの横幅,縦幅を求める
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
170 retval.w = xmax - xmin;
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 retval.h = ymax - ymin;
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
172 retval.model_x = model.x;
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
173 retval.model_y = model.y;
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
174 retval.model_z = model.z;
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
175
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
176
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
177 retval.normalObject = ctx.createBuffer();
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
178 ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.normalObject);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 ctx.bufferData(ctx.ARRAY_BUFFER, new Float32Array(normalData), ctx.STATIC_DRAW);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
180
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
181 retval.texCoordObject = ctx.createBuffer();
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
182 ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.texCoordObject);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
183 ctx.bufferData(ctx.ARRAY_BUFFER, new Float32Array(texCoordData), ctx.STATIC_DRAW);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
184
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
185 retval.vertexObject = ctx.createBuffer();
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
186 ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.vertexObject);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
187 ctx.bufferData(ctx.ARRAY_BUFFER, new Float32Array(geometryData), ctx.STATIC_DRAW);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
188
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
189 retval.numIndices = indexData.length;
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
190 retval.indexObject = ctx.createBuffer();
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
191 ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, retval.indexObject);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
192 ctx.bufferData(ctx.ELEMENT_ARRAY_BUFFER, new Uint16Array(indexData), ctx.STREAM_DRAW);
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
193
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
194 return retval;
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
195 }
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
196