Mercurial > hg > Members > e085711
comparison webGL/dandy/resources/makePanel.js~ @ 7:4343c1feedb5
upload boss.js xmlAlpha file
author | NOBUYASU Oshiro |
---|---|
date | Mon, 05 Jul 2010 17:19:51 +0900 |
parents | 10344afb38a6 |
children | 61febc94fa62 |
comparison
equal
deleted
inserted
replaced
6:881478004f18 | 7:4343c1feedb5 |
---|---|
31 return str.replace(/^\s+/g, "").replace(/\s+/g, " ").replace(/\s$/g, "").split(" "); | 31 return str.replace(/^\s+/g, "").replace(/\s+/g, " ").replace(/\s$/g, "").split(" "); |
32 } | 32 } |
33 | 33 |
34 function makeXmlObj(ctx, xmlObj) | 34 function makeXmlObj(ctx, xmlObj) |
35 { | 35 { |
36 | |
37 var model = new Object(); | |
38 model.x = parseFloat(xmlObj.model[0]); | |
39 model.y = parseFloat(xmlObj.model[1]); | |
40 model.z = parseFloat(xmlObj.model[2]); | |
41 | |
36 var geometryData = [ ]; | 42 var geometryData = [ ]; |
37 var normalData = [ ]; | 43 var normalData = [ ]; |
38 var texCoordData = [ ]; | 44 var texCoordData = [ ]; |
39 var indexData = [ ]; | 45 var indexData = [ ]; |
40 var index = 0; | 46 var index = 0; |
41 for(var i=0; xmlObj.vertex[i]; i++){ | 47 var xmax = 0; |
42 geometryData.push(parseFloat(xmlObj.vertex[i])); | 48 var xmin = 0; |
49 var ymax = 0; | |
50 var ymin = 0; | |
51 | |
52 for(var i=0; xmlObj.vertex[i]; i+=3){ | |
53 geometryData.push(parseFloat(xmlObj.vertex[i]) - model.x); | |
54 geometryData.push(parseFloat(xmlObj.vertex[i+1]) - model.y); | |
55 geometryData.push(parseFloat(xmlObj.vertex[i+2]) - model.z); | |
43 if ( (i % 3) == 0) { | 56 if ( (i % 3) == 0) { |
44 indexData.push(index); | 57 indexData.push(index); |
45 index++; | 58 index++; |
46 } | 59 } |
60 //オブジェクトの横幅、縦幅を得るための動作 | |
61 if ( i == 0) { | |
62 xmax = geometryData[0]; | |
63 xmin = geometryData[0]; | |
64 ymax = geometryData[1]; | |
65 xmin = geometryData[1]; | |
66 } | |
67 if ( i > 0 ){ | |
68 xmax = Math.max( xmax, geometryData[i]); | |
69 xmin = Math.min( xmin, geometryData[i]); | |
70 ymax = Math.max( ymax, geometryData[i+1]); | |
71 ymin = Math.min( ymin, geometryData[i+1]); | |
72 } | |
47 } | 73 } |
48 for(i=0; xmlObj.texCoords[i]; i++){ | 74 for(i=0; xmlObj.texCoords[i]; i++){ |
49 texCoordData.push(parseFloat(xmlObj.texCoords[i])); | 75 texCoordData.push(parseFloat(xmlObj.texCoords[i])); |
76 | |
50 } | 77 } |
51 for(i=0; xmlObj.normal[i]; i++){ | 78 for(i=0; xmlObj.normal[i]; i+=3){ |
52 normalData.push(parseFloat(xmlObj.normal[i])); | 79 normalData.push(parseFloat(xmlObj.normal[i]) - model.x); |
80 normalData.push(parseFloat(xmlObj.normal[i+1]) - model.y); | |
81 normalData.push(parseFloat(xmlObj.normal[i+2]) - model.z); | |
53 } | 82 } |
54 | 83 |
55 var retval = { }; | 84 var retval = { }; |
56 | 85 retval.w = xmax - xmin; |
86 retval.h = ymin - ymin; | |
87 | |
57 retval.normalObject = ctx.createBuffer(); | 88 retval.normalObject = ctx.createBuffer(); |
58 ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.normalObject); | 89 ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.normalObject); |
59 ctx.bufferData(ctx.ARRAY_BUFFER, new WebGLFloatArray(normalData), ctx.STATIC_DRAW); | 90 ctx.bufferData(ctx.ARRAY_BUFFER, new WebGLFloatArray(normalData), ctx.STATIC_DRAW); |
60 | 91 |
61 retval.texCoordObject = ctx.createBuffer(); | 92 retval.texCoordObject = ctx.createBuffer(); |
72 ctx.bufferData(ctx.ELEMENT_ARRAY_BUFFER, new WebGLUnsignedShortArray(indexData), ctx.STREAM_DRAW); | 103 ctx.bufferData(ctx.ELEMENT_ARRAY_BUFFER, new WebGLUnsignedShortArray(indexData), ctx.STREAM_DRAW); |
73 | 104 |
74 return retval; | 105 return retval; |
75 } | 106 } |
76 | 107 |
108 function makeOrthoPara(left, right, bottom, top) | |
109 { | |
110 this.left = left; | |
111 this.right = right; | |
112 this.bottom = bottom; | |
113 this.top = top; | |
114 return this; | |
115 } |