Interactive_Computer_Graphi.../Abgabe_6/normalMappingTODOs/common/objects3D.js
2024-01-18 04:25:57 +01:00

1955 lines
89 KiB
JavaScript

class Object3D {
constructor(program = defaultProgram, ka = [0.5, 0.5, 0.5, 1.0], kd = [0.5, 0.5, 0.5, 1.0], ks = [0.5, 0.5, 0.5, 1.0]) {
this.posVBO = gl.createBuffer();
this.indexVBO = gl.createBuffer();
this.positions = [];
this.indices = [];
this.ka = ka;
this.kd = kd;
this.ks = ks;
this.specularExponent = 4.0;
this.position = [0, 0, 0];
this.orientation = [0, 0, 0];
this.scale = [1, 1, 1];
this.modelMatrix;
this.shader = program;
gl.useProgram(this.shader);
this.posLoc = gl.getAttribLocation(this.shader, "vPosition");
this.normalLoc = gl.getAttribLocation(this.shader, "vNormal");
this.modelMatrixLoc = gl.getUniformLocation(this.shader, "modelMatrix");
this.viewMatrixLoc = gl.getUniformLocation(this.shader, "viewMatrix");
this.projectionMatrixLoc = gl.getUniformLocation(this.shader, "projectionMatrix");
this.lightPositionLoc = gl.getUniformLocation(this.shader, "lightPosition");
this.IaLoc = gl.getUniformLocation(this.shader, "Ia");
this.IdLoc = gl.getUniformLocation(this.shader, "Id");
this.IsLoc = gl.getUniformLocation(this.shader, "Is");
this.kaLoc = gl.getUniformLocation(this.shader, "ka");
this.kdLoc = gl.getUniformLocation(this.shader, "kd");
this.ksLoc = gl.getUniformLocation(this.shader, "ks");
this.specularExponentLoc = gl.getUniformLocation(this.shader, "specExp");
this.SetModelMatrix();
}
InitBuffers() {
gl.bindBuffer(gl.ARRAY_BUFFER, this.posVBO);
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(this.positions), gl.STATIC_DRAW);
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indexVBO);
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(this.indices), gl.STATIC_DRAW);
}
SetModelMatrix (position = this.position, orientation = this.orientation, scale = this.scale) {
this.position = position;
this.orientation = [orientation[0] * Math.PI / 180, orientation[1] * Math.PI / 180, orientation[2] * Math.PI / 180]; // Convert the orientation to RAD
this.scale = scale;
this.modelMatrix = mat4.create();
mat4.translate(this.modelMatrix, this.modelMatrix, position);
mat4.rotate(this.modelMatrix, this.modelMatrix, this.orientation[0], [1, 0, 0]);
mat4.rotate(this.modelMatrix, this.modelMatrix, this.orientation[1], [0, 1, 0]);
mat4.rotate(this.modelMatrix, this.modelMatrix, this.orientation[2], [0, 0, 1]);
mat4.scale(this.modelMatrix, this.modelMatrix, scale);
}
UpdateUniforms () {
gl.useProgram(this.shader);
gl.uniformMatrix4fv(this.modelMatrixLoc, false, this.modelMatrix);
gl.uniform4fv(this.kaLoc, this.ka);
gl.uniform4fv(this.kdLoc, this.kd);
gl.uniform4fv(this.ksLoc, this.ks);
gl.uniform1f(this.specularExponentLoc, this.specularExponent);
}
Render() {
gl.useProgram(this.shader);
// Link data in VBO to shader variables
gl.bindBuffer(gl.ARRAY_BUFFER, this.posVBO);
gl.enableVertexAttribArray(this.posLoc);
gl.enableVertexAttribArray(this.normalLoc);
gl.vertexAttribPointer(this.posLoc, 3, gl.FLOAT, false, 2 * 3 * 4, 0);
gl.vertexAttribPointer(this.normalLoc, 3, gl.FLOAT, false, 2 * 3 * 4, 3 * 4);
this.UpdateUniforms();
// Render
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indexVBO);
gl.drawElements(gl.TRIANGLES, this.indices.length, gl.UNSIGNED_SHORT, 0);
}
}
class Island extends Object3D {
constructor(program) {
super(program = defaultProgram, [0.4, 0.2, 0.0, 1.0], [0.6, 0.3, 0.3, 1.0], [0.7, 0.7, 0.7, 1.0]);
this.positions = [
-0.344503,-0.106899,-2.313329,-0.011310,-0.533934,-0.845450,
0.254658,0.065420,-2.430170,-0.011310,-0.533934,-0.845450,
0.506020,-0.293147,-2.207084,-0.011310,-0.533934,-0.845450,
1.415955,0.064912,-1.957500,0.432419,-0.749451,-0.501335,
1.489208,-0.318759,-1.320762,0.432419,-0.749451,-0.501335,
0.506020,-0.293147,-2.207084,0.432419,-0.749451,-0.501335,
1.685851,0.084184,-1.268915,0.734904,-0.279119,-0.618068,
2.014675,-0.126122,-0.782958,0.734904,-0.279119,-0.618068,
1.489208,-0.318759,-1.320762,0.734904,-0.279119,-0.618068,
0.957233,-1.089151,-0.905606,0.146612,-0.480540,-0.864631,
0.454708,-1.256676,-0.897711,0.146612,-0.480540,-0.864631,
0.810208,-0.709404,-1.141590,0.146612,-0.480540,-0.864631,
0.454708,-1.256676,-0.897711,0.693344,-0.471028,-0.545351,
0.739686,-1.249709,-0.541415,0.693344,-0.471028,-0.545351,
0.231851,-1.904112,-0.621845,0.693344,-0.471028,-0.545351,
0.810208,-0.709404,-1.141590,0.250114,-0.538384,-0.804727,
0.052641,-1.633897,-0.758536,0.250114,-0.538384,-0.804727,
-0.020753,-0.743329,-1.377161,0.250114,-0.538384,-0.804727,
1.364762,-0.324582,0.647285,0.703998,-0.320406,0.633820,
2.074500,0.090083,0.068582,0.703998,-0.320406,0.633820,
1.608835,0.037777,0.559365,0.703998,-0.320406,0.633820,
1.364762,-0.324582,0.647285,0.168668,-0.983853,-0.059875,
2.014675,-0.126122,-0.782958,0.168668,-0.983853,-0.059875,
1.955554,-0.191974,0.132568,0.168668,-0.983853,-0.059875,
2.014675,-0.126122,-0.782958,0.923533,-0.382169,0.032149,
2.074500,0.090083,0.068582,0.923533,-0.382169,0.032149,
1.955554,-0.191974,0.132568,0.923533,-0.382169,0.032149,
1.364762,-0.324582,0.647285,0.782750,-0.569768,0.250335,
1.393132,0.037777,1.383312,0.782750,-0.569768,0.250335,
1.210661,-0.322174,1.134609,0.782750,-0.569768,0.250335,
1.393132,0.037777,1.383312,0.384202,-0.648684,0.656962,
0.514977,-0.286422,1.576757,0.384202,-0.648684,0.656962,
1.210661,-0.322174,1.134609,0.384202,-0.648684,0.656962,
0.507135,-1.581211,0.348922,0.899189,-0.417795,0.130026,
0.342563,-2.052501,-0.027325,0.899189,-0.417795,0.130026,
0.620568,-1.491335,-0.146730,0.899189,-0.417795,0.130026,
0.745909,-0.723539,0.485115,-0.053516,-0.142055,0.988411,
0.089439,-1.345612,0.360167,-0.053516,-0.142055,0.988411,
0.507135,-1.581211,0.348922,-0.053516,-0.142055,0.988411,
0.745909,-0.723539,0.485115,0.814255,-0.442316,0.375960,
0.620568,-1.491335,-0.146730,0.814255,-0.442316,0.375960,
1.089500,-0.770651,-0.314462,0.814255,-0.442316,0.375960,
-0.123718,-0.298339,1.611730,-0.310691,-0.613103,0.726344,
-0.930959,0.037777,1.550149,-0.310691,-0.613103,0.726344,
-0.866234,-0.291222,1.300128,-0.310691,-0.613103,0.726344,
0.514977,-0.286422,1.576757,0.057026,-0.467461,0.882173,
-0.414258,0.037777,1.808618,0.057026,-0.467461,0.882173,
-0.123718,-0.298339,1.611730,0.057026,-0.467461,0.882173,
-0.930959,0.037777,1.550149,-0.545079,-0.572608,0.612379,
-1.444312,-0.282136,0.794076,-0.545079,-0.572608,0.612379,
-0.866234,-0.291222,1.300128,-0.545079,-0.572608,0.612379,
-1.591571,0.097928,0.827036,-0.822073,-0.356985,0.443574,
-1.839477,-0.177971,0.145553,-0.822073,-0.356985,0.443574,
-1.444312,-0.282136,0.794076,-0.822073,-0.356985,0.443574,
-0.936850,-0.751093,-0.176985,-0.746557,-0.495575,0.443912,
-0.611777,-1.317411,-0.262516,-0.746557,-0.495575,0.443912,
-0.326162,-1.310280,0.225784,-0.746557,-0.495575,0.443912,
-0.326162,-1.310280,0.225784,-0.314567,-0.360829,0.877980,
0.089439,-1.345612,0.360167,-0.314567,-0.360829,0.877980,
0.289486,-0.743127,0.679448,-0.314567,-0.360829,0.877980,
-0.326162,-1.310280,0.225784,-0.308883,-0.016409,0.950958,
0.020776,-1.770522,0.330532,-0.308883,-0.016409,0.950958,
0.089439,-1.345612,0.360167,-0.308883,-0.016409,0.950958,
-1.675519,-0.336500,-0.606829,-0.437848,-0.846877,-0.301808,
-1.607249,0.010755,-1.680275,-0.437848,-0.846877,-0.301808,
-0.625318,-0.725192,-1.039731,-0.437848,-0.846877,-0.301808,
-1.607249,0.010755,-1.680275,-0.071156,0.995311,-0.065514,
-2.011082,0.043485,-0.744422,-0.071156,0.995311,-0.065514,
-1.247727,0.059337,-1.332687,-0.071156,0.995311,-0.065514,
-1.839477,-0.177971,0.145553,-0.745403,-0.666250,-0.022057,
-2.011082,0.043485,-0.744422,-0.745403,-0.666250,-0.022057,
-1.675519,-0.336500,-0.606829,-0.745403,-0.666250,-0.022057,
-1.607249,0.010755,-1.680275,-0.491811,-0.843645,-0.215370,
-0.934732,-0.314137,-1.943344,-0.491811,-0.843645,-0.215370,
-0.625318,-0.725192,-1.039731,-0.491811,-0.843645,-0.215370,
-0.934732,-0.314137,-1.943344,-0.290661,-0.558811,-0.776690,
-0.344503,-0.106899,-2.313329,-0.290661,-0.558811,-0.776690,
-0.184171,-0.491687,-2.096484,-0.290661,-0.558811,-0.776690,
-1.607249,0.010755,-1.680275,-0.468506,-0.295705,-0.832503,
-0.707720,0.065178,-2.205832,-0.468506,-0.295705,-0.832503,
-0.934732,-0.314137,-1.943344,-0.468506,-0.295705,-0.832503,
-0.707720,0.065178,-2.205832,-0.411171,-0.339377,-0.846027,
-0.344503,-0.106899,-2.313329,-0.411171,-0.339377,-0.846027,
-0.934732,-0.314137,-1.943344,-0.411171,-0.339377,-0.846027,
-0.625318,-0.725192,-1.039731,-0.315603,-0.487398,-0.814149,
0.052641,-1.633897,-0.758536,-0.315603,-0.487398,-0.814149,
-0.350659,-1.373304,-0.758204,-0.315603,-0.487398,-0.814149,
-0.350659,-1.373304,-0.758204,-0.316011,-0.488030,-0.813611,
0.052641,-1.633897,-0.758536,-0.316011,-0.488030,-0.813611,
-0.299529,-2.155551,-0.308846,-0.316011,-0.488030,-0.813611,
-0.625318,-0.725192,-1.039731,-0.842372,-0.435616,-0.317252,
-0.611777,-1.317411,-0.262516,-0.842372,-0.435616,-0.317252,
-0.936850,-0.751093,-0.176985,-0.842372,-0.435616,-0.317252,
-0.299529,-2.155551,-0.308846,-0.858317,-0.296621,-0.418698,
-0.611777,-1.317411,-0.262516,-0.858317,-0.296621,-0.418698,
-0.350659,-1.373304,-0.758204,-0.858317,-0.296621,-0.418698,
-0.299529,-2.155551,-0.308846,-0.076337,-0.710053,-0.699999,
0.231851,-1.904112,-0.621845,-0.076337,-0.710053,-0.699999,
-0.086080,-2.478361,-0.004677,-0.076337,-0.710053,-0.699999,
0.231851,-1.904112,-0.621845,0.799111,-0.586126,-0.133708,
0.091215,-2.267556,0.130842,0.799111,-0.586126,-0.133708,
-0.086080,-2.478361,-0.004677,0.799111,-0.586126,-0.133708,
0.091215,-2.267556,0.130842,-0.208503,-0.398745,0.893045,
-0.260030,-2.240649,0.060849,-0.208503,-0.398745,0.893045,
-0.086080,-2.478361,-0.004677,-0.208503,-0.398745,0.893045,
0.091215,-2.267556,0.130842,-0.196980,-0.021695,0.980167,
-0.470828,-1.954876,0.024811,-0.196980,-0.021695,0.980167,
-0.260030,-2.240649,0.060849,-0.196980,-0.021695,0.980167,
-0.260030,-2.240649,0.060849,-0.812251,-0.581408,-0.047047,
-0.299529,-2.155551,-0.308846,-0.812251,-0.581408,-0.047047,
-0.086080,-2.478361,-0.004677,-0.812251,-0.581408,-0.047047,
-0.278168,0.037777,-0.209083,0.064599,0.997623,0.023971,
-1.591571,0.097928,0.827036,0.064599,0.997623,0.023971,
-0.930959,0.037777,1.550149,0.064599,0.997623,0.023971,
-0.914878,0.210568,-1.267986,-0.451479,0.892219,0.010576,
-0.862298,0.231412,-0.781910,-0.451479,0.892219,0.010576,
-0.302799,0.520691,-1.301783,-0.451479,0.892219,0.010576,
-1.068480,0.101026,-0.360536,0.007341,0.999956,0.005841,
-1.736910,0.103204,0.106553,0.007341,0.999956,0.005841,
-1.591571,0.097928,0.827036,0.007341,0.999956,0.005841,
0.236277,0.037777,0.701510,0.000000,1.000000,-0.000000,
1.608835,0.037777,0.559365,0.000000,1.000000,-0.000000,
0.656348,0.037777,-0.098120,0.000000,1.000000,-0.000000,
-0.930959,0.037777,1.550149,0.000000,1.000000,-0.000000,
-0.278168,0.037777,-0.209083,0.000000,1.000000,-0.000000,
0.501631,0.037777,1.688231,0.000000,1.000000,0.000000,
1.393132,0.037777,1.383312,0.000000,1.000000,0.000000,
1.034499,0.275328,-1.269756,0.196507,0.940792,-0.276217,
0.471459,0.267036,-1.698558,0.196507,0.940792,-0.276217,
0.637660,0.376390,-1.207861,0.196507,0.940792,-0.276217,
0.812177,0.491673,-0.567514,-0.157696,0.796105,0.584251,
1.244986,0.398908,-0.324291,-0.157696,0.796105,0.584251,
1.002755,0.639249,-0.717163,-0.157696,0.796105,0.584251,
1.381545,0.288786,-0.765328,0.484775,0.872472,-0.061537,
1.685851,0.084184,-1.268915,0.484775,0.872472,-0.061537,
1.348978,0.284964,-1.076072,0.484775,0.872472,-0.061537,
-0.505260,0.213488,-1.704558,-0.341361,0.885806,-0.314358,
-1.247727,0.059337,-1.332687,-0.341361,0.885806,-0.314358,
-0.914878,0.210568,-1.267986,-0.341361,0.885806,-0.314358,
0.471459,0.267036,-1.698558,0.113029,0.948800,-0.294962,
0.254658,0.065420,-2.430170,0.113029,0.948800,-0.294962,
-0.221831,0.306144,-1.838428,0.113029,0.948800,-0.294962,
-0.221831,0.306144,-1.838428,-0.143666,0.903921,-0.402847,
-0.274246,0.065420,-2.359878,-0.143666,0.903921,-0.402847,
-0.707720,0.065178,-2.205832,-0.143666,0.903921,-0.402847,
-0.020753,-0.743329,-1.377161,0.203115,-0.908935,-0.364119,
-0.184171,-0.491687,-2.096484,0.203115,-0.908935,-0.364119,
0.506020,-0.293147,-2.207084,0.203115,-0.908935,-0.364119,
0.810208,-0.709404,-1.141590,0.065767,-0.508178,-0.858737,
1.489208,-0.318759,-1.320762,0.065767,-0.508178,-0.858737,
0.957233,-1.089151,-0.905606,0.065767,-0.508178,-0.858737,
1.489208,-0.318759,-1.320762,0.842649,-0.529682,0.096844,
1.089500,-0.770651,-0.314462,0.842649,-0.529682,0.096844,
0.957233,-1.089151,-0.905606,0.842649,-0.529682,0.096844,
1.089500,-0.770651,-0.314462,0.476105,-0.841849,0.254193,
1.364762,-0.324582,0.647285,0.476105,-0.841849,0.254193,
0.745909,-0.723539,0.485115,0.476105,-0.841849,0.254193,
1.089500,-0.770651,-0.314462,0.621220,-0.763538,0.176339,
2.014675,-0.126122,-0.782958,0.621220,-0.763538,0.176339,
1.364762,-0.324582,0.647285,0.621220,-0.763538,0.176339,
1.210661,-0.322174,1.134609,0.209165,-0.891710,0.401376,
0.289486,-0.743127,0.679448,0.209165,-0.891710,0.401376,
0.745909,-0.723539,0.485115,0.209165,-0.891710,0.401376,
0.289486,-0.743127,0.679448,0.112256,-0.692154,0.712966,
-0.866234,-0.291222,1.300128,0.112256,-0.692154,0.712966,
-0.326162,-1.310280,0.225784,0.112256,-0.692154,0.712966,
-0.866234,-0.291222,1.300128,-0.735865,-0.635739,0.233105,
-0.936850,-0.751093,-0.176985,-0.735865,-0.635739,0.233105,
-0.326162,-1.310280,0.225784,-0.735865,-0.635739,0.233105,
-0.934732,-0.314137,-1.943344,-0.217928,-0.914338,-0.341311,
-0.020753,-0.743329,-1.377161,-0.217928,-0.914338,-0.341311,
-0.625318,-0.725192,-1.039731,-0.217928,-0.914338,-0.341311,
0.506020,-0.293147,-2.207084,0.359758,-0.297920,-0.884205,
0.254658,0.065420,-2.430170,0.359758,-0.297920,-0.884205,
1.415955,0.064912,-1.957500,0.359758,-0.297920,-0.884205,
0.506020,-0.293147,-2.207084,0.001450,-0.490493,-0.871444,
-0.184171,-0.491687,-2.096484,0.001450,-0.490493,-0.871444,
-0.344503,-0.106899,-2.313329,0.001450,-0.490493,-0.871444,
-0.344503,-0.106899,-2.313329,-0.128825,-0.209322,-0.969324,
-0.274246,0.065420,-2.359878,-0.128825,-0.209322,-0.969324,
0.254658,0.065420,-2.430170,-0.128825,-0.209322,-0.969324,
0.810208,-0.709404,-1.141590,0.363550,-0.827846,-0.427204,
0.506020,-0.293147,-2.207084,0.363550,-0.827846,-0.427204,
1.489208,-0.318759,-1.320762,0.363550,-0.827846,-0.427204,
1.415955,0.064912,-1.957500,0.864833,-0.379805,-0.328348,
1.685851,0.084184,-1.268915,0.864833,-0.379805,-0.328348,
1.489208,-0.318759,-1.320762,0.864833,-0.379805,-0.328348,
1.685851,0.084184,-1.268915,0.843529,0.099206,-0.527842,
2.054775,0.091828,-0.677912,0.843529,0.099206,-0.527842,
2.014675,-0.126122,-0.782958,0.843529,0.099206,-0.527842,
0.957233,-1.089151,-0.905606,0.304896,-0.925237,-0.225775,
0.739686,-1.249709,-0.541415,0.304896,-0.925237,-0.225775,
0.454708,-1.256676,-0.897711,0.304896,-0.925237,-0.225775,
0.957233,-1.089151,-0.905606,0.754980,-0.632785,0.172010,
1.089500,-0.770651,-0.314462,0.754980,-0.632785,0.172010,
0.739686,-1.249709,-0.541415,0.754980,-0.632785,0.172010,
0.810208,-0.709404,-1.141590,0.158331,-0.485892,-0.859558,
0.454708,-1.256676,-0.897711,0.158331,-0.485892,-0.859558,
0.052641,-1.633897,-0.758536,0.158331,-0.485892,-0.859558,
0.454708,-1.256676,-0.897711,0.071930,-0.411827,-0.908419,
0.231851,-1.904112,-0.621845,0.071930,-0.411827,-0.908419,
0.052641,-1.633897,-0.758536,0.071930,-0.411827,-0.908419,
1.364762,-0.324582,0.647285,0.667049,-0.114290,0.736195,
1.955554,-0.191974,0.132568,0.667049,-0.114290,0.736195,
2.074500,0.090083,0.068582,0.667049,-0.114290,0.736195,
2.014675,-0.126122,-0.782958,0.985338,-0.168554,-0.026430,
2.054775,0.091828,-0.677912,0.985338,-0.168554,-0.026430,
2.074500,0.090083,0.068582,0.985338,-0.168554,-0.026430,
1.364762,-0.324582,0.647285,0.833133,-0.508251,0.218107,
1.608835,0.037777,0.559365,0.833133,-0.508251,0.218107,
1.393132,0.037777,1.383312,0.833133,-0.508251,0.218107,
1.393132,0.037777,1.383312,0.308934,-0.297855,0.903240,
0.501631,0.037777,1.688231,0.308934,-0.297855,0.903240,
0.514977,-0.286422,1.576757,0.308934,-0.297855,0.903240,
0.745909,-0.723539,0.485115,0.943374,-0.288606,0.163563,
0.507135,-1.581211,0.348922,0.943374,-0.288606,0.163563,
0.620568,-1.491335,-0.146730,0.943374,-0.288606,0.163563,
0.507135,-1.581211,0.348922,0.227638,-0.654831,0.720678,
0.020776,-1.770522,0.330532,0.227638,-0.654831,0.720678,
0.342563,-2.052501,-0.027325,0.227638,-0.654831,0.720678,
0.745909,-0.723539,0.485115,0.352005,-0.526859,0.773635,
0.289486,-0.743127,0.679448,0.352005,-0.526859,0.773635,
0.089439,-1.345612,0.360167,0.352005,-0.526859,0.773635,
0.507135,-1.581211,0.348922,-0.011353,-0.067744,0.997638,
0.089439,-1.345612,0.360167,-0.011353,-0.067744,0.997638,
0.020776,-1.770522,0.330532,-0.011353,-0.067744,0.997638,
1.089500,-0.770651,-0.314462,0.824551,-0.558121,-0.092827,
0.620568,-1.491335,-0.146730,0.824551,-0.558121,-0.092827,
0.739686,-1.249709,-0.541415,0.824551,-0.558121,-0.092827,
0.620568,-1.491335,-0.146730,0.895938,-0.444176,-0.001524,
0.342563,-2.052501,-0.027325,0.895938,-0.444176,-0.001524,
0.739686,-1.249709,-0.541415,0.895938,-0.444176,-0.001524,
-0.123718,-0.298339,1.611730,-0.330784,-0.673283,0.661265,
-0.414258,0.037777,1.808618,-0.330784,-0.673283,0.661265,
-0.930959,0.037777,1.550149,-0.330784,-0.673283,0.661265,
0.514977,-0.286422,1.576757,0.123552,-0.318115,0.939967,
0.501631,0.037777,1.688231,0.123552,-0.318115,0.939967,
-0.414258,0.037777,1.808618,0.123552,-0.318115,0.939967,
-0.930959,0.037777,1.550149,-0.710606,-0.329252,0.621798,
-1.591571,0.097928,0.827036,-0.710606,-0.329252,0.621798,
-1.444312,-0.282136,0.794076,-0.710606,-0.329252,0.621798,
-1.591571,0.097928,0.827036,-0.914230,0.359435,0.187055,
-1.736910,0.103204,0.106553,-0.914230,0.359435,0.187055,
-1.839477,-0.177971,0.145553,-0.914230,0.359435,0.187055,
-0.326162,-1.310280,0.225784,-0.862841,0.036460,0.504158,
-0.611777,-1.317411,-0.262516,-0.862841,0.036460,0.504158,
-0.470828,-1.954876,0.024811,-0.862841,0.036460,0.504158,
-0.148262,0.773865,-0.947432,-0.214448,0.783558,-0.583137,
0.101020,0.922236,-0.839739,-0.214448,0.783558,-0.583137,
0.312442,0.779166,-1.109731,-0.214448,0.783558,-0.583137,
-0.326162,-1.310280,0.225784,-0.476424,-0.162478,0.864073,
-0.470828,-1.954876,0.024811,-0.476424,-0.162478,0.864073,
0.020776,-1.770522,0.330532,-0.476424,-0.162478,0.864073,
-1.607249,0.010755,-1.680275,-0.672686,-0.690413,-0.266128,
-1.675519,-0.336500,-0.606829,-0.672686,-0.690413,-0.266128,
-2.011082,0.043485,-0.744422,-0.672686,-0.690413,-0.266128,
-1.839477,-0.177971,0.145553,-0.894170,0.362602,0.262642,
-1.736910,0.103204,0.106553,-0.894170,0.362602,0.262642,
-2.011082,0.043485,-0.744422,-0.894170,0.362602,0.262642,
-1.607249,0.010755,-1.680275,-0.088166,0.994955,-0.047871,
-1.247727,0.059337,-1.332687,-0.088166,0.994955,-0.047871,
-0.707720,0.065178,-2.205832,-0.088166,0.994955,-0.047871,
-0.707720,0.065178,-2.205832,-0.332492,-0.117227,-0.935792,
-0.274246,0.065420,-2.359878,-0.332492,-0.117227,-0.935792,
-0.344503,-0.106899,-2.313329,-0.332492,-0.117227,-0.935792,
-0.625318,-0.725192,-1.039731,-0.422393,-0.540336,-0.727751,
-0.020753,-0.743329,-1.377161,-0.422393,-0.540336,-0.727751,
0.052641,-1.633897,-0.758536,-0.422393,-0.540336,-0.727751,
-0.625318,-0.725192,-1.039731,-0.791668,-0.492524,-0.361499,
-0.350659,-1.373304,-0.758204,-0.791668,-0.492524,-0.361499,
-0.611777,-1.317411,-0.262516,-0.791668,-0.492524,-0.361499,
-0.299529,-2.155551,-0.308846,-0.906730,-0.322801,-0.271369,
-0.470828,-1.954876,0.024811,-0.906730,-0.322801,-0.271369,
-0.611777,-1.317411,-0.262516,-0.906730,-0.322801,-0.271369,
-0.299529,-2.155551,-0.308846,-0.214713,-0.550502,-0.806750,
0.052641,-1.633897,-0.758536,-0.214713,-0.550502,-0.806750,
0.231851,-1.904112,-0.621845,-0.214713,-0.550502,-0.806750,
0.231851,-1.904112,-0.621845,0.506337,-0.809792,-0.296411,
0.342563,-2.052501,-0.027325,0.506337,-0.809792,-0.296411,
0.091215,-2.267556,0.130842,0.506337,-0.809792,-0.296411,
0.231851,-1.904112,-0.621845,0.773863,-0.565481,-0.285251,
0.739686,-1.249709,-0.541415,0.773863,-0.565481,-0.285251,
0.342563,-2.052501,-0.027325,0.773863,-0.565481,-0.285251,
0.091215,-2.267556,0.130842,-0.375936,-0.390836,0.840190,
0.020776,-1.770522,0.330532,-0.375936,-0.390836,0.840190,
-0.470828,-1.954876,0.024811,-0.375936,-0.390836,0.840190,
0.342563,-2.052501,-0.027325,0.641356,-0.206036,0.739061,
0.020776,-1.770522,0.330532,0.641356,-0.206036,0.739061,
0.091215,-2.267556,0.130842,0.641356,-0.206036,0.739061,
-0.299529,-2.155551,-0.308846,-0.800525,-0.597048,-0.051900,
-0.260030,-2.240649,0.060849,-0.800525,-0.597048,-0.051900,
-0.470828,-1.954876,0.024811,-0.800525,-0.597048,-0.051900,
-0.278168,0.037777,-0.209083,0.073099,0.996717,0.034798,
-1.068480,0.101026,-0.360536,0.073099,0.996717,0.034798,
-1.591571,0.097928,0.827036,0.073099,0.996717,0.034798,
-1.247727,0.059337,-1.332687,-0.047039,0.998310,-0.034138,
-2.011082,0.043485,-0.744422,-0.047039,0.998310,-0.034138,
-1.068480,0.101026,-0.360536,-0.047039,0.998310,-0.034138,
-1.068480,0.101026,-0.360536,-0.037279,0.997620,-0.058000,
-2.011082,0.043485,-0.744422,-0.037279,0.997620,-0.058000,
-1.736910,0.103204,0.106553,-0.037279,0.997620,-0.058000,
-0.414258,0.037777,1.808618,0.000000,1.000000,0.000000,
1.685851,0.084184,-1.268915,0.251796,0.856047,-0.451423,
1.034499,0.275328,-1.269756,0.251796,0.856047,-0.451423,
1.348978,0.284964,-1.076072,0.251796,0.856047,-0.451423,
0.656348,0.037777,-0.098120,-0.044318,0.996952,0.064203,
1.608835,0.037777,0.559365,-0.044318,0.996952,0.064203,
2.074500,0.090083,0.068582,-0.044318,0.996952,0.064203,
1.244986,0.398908,-0.324291,0.295075,0.944490,-0.144463,
2.054775,0.091828,-0.677912,0.295075,0.944490,-0.144463,
1.381545,0.288786,-0.765328,0.295075,0.944490,-0.144463,
-0.221831,0.306144,-1.838428,-0.498034,0.480949,-0.721560,
-0.505260,0.213488,-1.704558,-0.498034,0.480949,-0.721560,
-0.262315,0.721321,-1.533752,-0.498034,0.480949,-0.721560,
0.471459,0.267036,-1.698558,0.121281,0.947158,-0.296955,
1.415955,0.064912,-1.957500,0.121281,0.947158,-0.296955,
0.254658,0.065420,-2.430170,0.121281,0.947158,-0.296955,
-0.221831,0.306144,-1.838428,-0.055013,0.908641,-0.413938,
0.254658,0.065420,-2.430170,-0.055013,0.908641,-0.413938,
-0.274246,0.065420,-2.359878,-0.055013,0.908641,-0.413938,
-0.020753,-0.743329,-1.377161,0.149389,-0.905792,-0.396515,
0.506020,-0.293147,-2.207084,0.149389,-0.905792,-0.396515,
0.810208,-0.709404,-1.141590,0.149389,-0.905792,-0.396515,
1.489208,-0.318759,-1.320762,0.497948,-0.847704,-0.182885,
2.014675,-0.126122,-0.782958,0.497948,-0.847704,-0.182885,
1.089500,-0.770651,-0.314462,0.497948,-0.847704,-0.182885,
1.364762,-0.324582,0.647285,0.503912,-0.848132,0.163537,
1.210661,-0.322174,1.134609,0.503912,-0.848132,0.163537,
0.745909,-0.723539,0.485115,0.503912,-0.848132,0.163537,
1.210661,-0.322174,1.134609,0.209218,-0.891736,0.401292,
0.514977,-0.286422,1.576757,0.209218,-0.891736,0.401292,
0.289486,-0.743127,0.679448,0.209218,-0.891736,0.401292,
0.289486,-0.743127,0.679448,-0.162145,-0.916603,0.365442,
-0.123718,-0.298339,1.611730,-0.162145,-0.916603,0.365442,
-0.866234,-0.291222,1.300128,-0.162145,-0.916603,0.365442,
0.289486,-0.743127,0.679448,0.041058,-0.894588,0.445002,
0.514977,-0.286422,1.576757,0.041058,-0.894588,0.445002,
-0.123718,-0.298339,1.611730,0.041058,-0.894588,0.445002,
-0.866234,-0.291222,1.300128,-0.275026,-0.914167,0.297757,
-1.444312,-0.282136,0.794076,-0.275026,-0.914167,0.297757,
-0.936850,-0.751093,-0.176985,-0.275026,-0.914167,0.297757,
-1.444312,-0.282136,0.794076,-0.487927,-0.858194,0.159466,
-1.839477,-0.177971,0.145553,-0.487927,-0.858194,0.159466,
-0.936850,-0.751093,-0.176985,-0.487927,-0.858194,0.159466,
-0.936850,-0.751093,-0.176985,-0.403728,-0.898421,-0.172756,
-1.675519,-0.336500,-0.606829,-0.403728,-0.898421,-0.172756,
-0.625318,-0.725192,-1.039731,-0.403728,-0.898421,-0.172756,
-0.936850,-0.751093,-0.176985,-0.517675,-0.852957,0.066909,
-1.839477,-0.177971,0.145553,-0.517675,-0.852957,0.066909,
-1.675519,-0.336500,-0.606829,-0.517675,-0.852957,0.066909,
-0.934732,-0.314137,-1.943344,-0.272460,-0.925814,-0.261981,
-0.184171,-0.491687,-2.096484,-0.272460,-0.925814,-0.261981,
-0.020753,-0.743329,-1.377161,-0.272460,-0.925814,-0.261981,
-0.862298,0.231412,-0.781910,0.062061,0.842272,0.535467,
-0.404757,0.197895,-0.782219,0.062061,0.842272,0.535467,
-0.302799,0.520691,-1.301783,0.062061,0.842272,0.535467,
0.568488,0.537125,-0.913448,-0.551248,0.683734,0.478156,
0.656348,0.037777,-0.098120,-0.551248,0.683734,0.478156,
0.812177,0.491673,-0.567514,-0.551248,0.683734,0.478156,
-0.262315,0.721321,-1.533752,-0.213818,0.757013,0.617424,
-0.302799,0.520691,-1.301783,-0.213818,0.757013,0.617424,
0.115069,0.760356,-1.450921,-0.213818,0.757013,0.617424,
-0.061115,0.654189,-0.643377,0.027941,0.579677,0.814367,
0.205810,0.801703,-0.757537,0.027941,0.579677,0.814367,
0.101020,0.922236,-0.839739,0.027941,0.579677,0.814367,
0.205810,0.801703,-0.757537,0.686999,0.708215,0.162680,
0.312442,0.779166,-1.109731,0.686999,0.708215,0.162680,
0.101020,0.922236,-0.839739,0.686999,0.708215,0.162680,
0.656348,0.037777,-0.098120,-0.265754,0.732275,0.627015,
0.312442,0.779166,-1.109731,-0.265754,0.732275,0.627015,
0.344937,0.262088,-0.492076,-0.265754,0.732275,0.627015,
0.312442,0.779166,-1.109731,0.609839,0.689476,-0.390794,
0.115069,0.760356,-1.450921,0.609839,0.689476,-0.390794,
0.077232,0.934717,-1.202342,0.609839,0.689476,-0.390794,
-0.278168,0.037777,-0.209083,0.191788,0.518516,0.833282,
0.344937,0.262088,-0.492076,0.191788,0.518516,0.833282,
-0.102879,0.422805,-0.489015,0.191788,0.518516,0.833282,
-0.269697,0.566033,-0.874217,-0.848104,0.523746,0.080063,
-0.148262,0.773865,-0.947432,-0.848104,0.523746,0.080063,
-0.186512,0.743264,-1.152426,-0.848104,0.523746,0.080063,
0.637660,0.376390,-1.207861,0.744297,0.644037,-0.176740,
0.312442,0.779166,-1.109731,0.744297,0.644037,-0.176740,
0.568488,0.537125,-0.913448,0.744297,0.644037,-0.176740,
-0.148262,0.773865,-0.947432,-0.588752,0.808241,-0.010797,
0.077232,0.934717,-1.202342,-0.588752,0.808241,-0.010797,
-0.186512,0.743264,-1.152426,-0.588752,0.808241,-0.010797,
-0.278168,0.037777,-0.209083,-0.063048,0.845033,0.530984,
0.656348,0.037777,-0.098120,-0.063048,0.845033,0.530984,
0.344937,0.262088,-0.492076,-0.063048,0.845033,0.530984,
-0.404757,0.197895,-0.782219,-0.774175,0.405487,0.486039,
-0.102879,0.422805,-0.489015,-0.774175,0.405487,0.486039,
-0.269697,0.566033,-0.874217,-0.774175,0.405487,0.486039,
1.002755,0.639249,-0.717163,0.009213,0.878584,-0.477499,
0.637660,0.376390,-1.207861,0.009213,0.878584,-0.477499,
0.568488,0.537125,-0.913448,0.009213,0.878584,-0.477499,
1.002755,0.639249,-0.717163,-0.368310,0.852282,0.371434,
0.568488,0.537125,-0.913448,-0.368310,0.852282,0.371434,
0.812177,0.491673,-0.567514,-0.368310,0.852282,0.371434,
1.002755,0.639249,-0.717163,0.680780,0.731952,0.028032,
1.244986,0.398908,-0.324291,0.680780,0.731952,0.028032,
1.381545,0.288786,-0.765328,0.680780,0.731952,0.028032,
1.002755,0.639249,-0.717163,0.292029,0.806373,-0.514278,
1.348978,0.284964,-1.076072,0.292029,0.806373,-0.514278,
1.034499,0.275328,-1.269756,0.292029,0.806373,-0.514278,
1.002755,0.639249,-0.717163,0.671521,0.736715,-0.079439,
1.381545,0.288786,-0.765328,0.671521,0.736715,-0.079439,
1.348978,0.284964,-1.076072,0.671521,0.736715,-0.079439,
0.656348,0.037777,-0.098120,-0.204323,0.736731,0.644577,
1.244986,0.398908,-0.324291,-0.204323,0.736731,0.644577,
0.812177,0.491673,-0.567514,-0.204323,0.736731,0.644577,
1.002755,0.639249,-0.717163,0.127518,0.831689,-0.540401,
1.034499,0.275328,-1.269756,0.127518,0.831689,-0.540401,
0.637660,0.376390,-1.207861,0.127518,0.831689,-0.540401,
1.034499,0.275328,-1.269756,0.148193,0.965691,-0.213260,
1.415955,0.064912,-1.957500,0.148193,0.965691,-0.213260,
0.471459,0.267036,-1.698558,0.148193,0.965691,-0.213260,
1.381545,0.288786,-0.765328,0.298863,0.933395,-0.198632,
2.054775,0.091828,-0.677912,0.298863,0.933395,-0.198632,
1.685851,0.084184,-1.268915,0.298863,0.933395,-0.198632,
1.685851,0.084184,-1.268915,0.279128,0.950573,-0.136011,
1.415955,0.064912,-1.957500,0.279128,0.950573,-0.136011,
1.034499,0.275328,-1.269756,0.279128,0.950573,-0.136011,
1.244986,0.398908,-0.324291,0.351847,0.936030,-0.007109,
2.074500,0.090083,0.068582,0.351847,0.936030,-0.007109,
2.054775,0.091828,-0.677912,0.351847,0.936030,-0.007109,
0.568488,0.537125,-0.913448,0.412774,0.795871,0.442952,
0.312442,0.779166,-1.109731,0.412774,0.795871,0.442952,
0.656348,0.037777,-0.098120,0.412774,0.795871,0.442952,
0.637660,0.376390,-1.207861,0.676300,0.636437,-0.370899,
0.471459,0.267036,-1.698558,0.676300,0.636437,-0.370899,
0.312442,0.779166,-1.109731,0.676300,0.636437,-0.370899,
0.656348,0.037777,-0.098120,-0.112175,0.652309,0.749606,
2.074500,0.090083,0.068582,-0.112175,0.652309,0.749606,
1.244986,0.398908,-0.324291,-0.112175,0.652309,0.749606,
0.312442,0.779166,-1.109731,0.900741,0.355212,0.249982,
0.205810,0.801703,-0.757537,0.900741,0.355212,0.249982,
0.344937,0.262088,-0.492076,0.900741,0.355212,0.249982,
-0.102879,0.422805,-0.489015,0.054740,0.547276,0.835160,
0.205810,0.801703,-0.757537,0.054740,0.547276,0.835160,
-0.061115,0.654189,-0.643377,0.054740,0.547276,0.835160,
-0.102879,0.422805,-0.489015,0.174787,0.470544,0.864892,
0.344937,0.262088,-0.492076,0.174787,0.470544,0.864892,
0.205810,0.801703,-0.757537,0.174787,0.470544,0.864892,
-0.148262,0.773865,-0.947432,-0.819420,0.413037,0.397430,
-0.102879,0.422805,-0.489015,-0.819420,0.413037,0.397430,
-0.061115,0.654189,-0.643377,-0.819420,0.413037,0.397430,
-0.302799,0.520691,-1.301783,-0.935367,0.351933,0.035096,
-0.404757,0.197895,-0.782219,-0.935367,0.351933,0.035096,
-0.269697,0.566033,-0.874217,-0.935367,0.351933,0.035096,
-0.302799,0.520691,-1.301783,-0.564513,0.642593,-0.518072,
-0.186512,0.743264,-1.152426,-0.564513,0.642593,-0.518072,
0.077232,0.934717,-1.202342,-0.564513,0.642593,-0.518072,
-0.302799,0.520691,-1.301783,-0.891873,0.451792,0.021139,
-0.269697,0.566033,-0.874217,-0.891873,0.451792,0.021139,
-0.186512,0.743264,-1.152426,-0.891873,0.451792,0.021139,
-0.302799,0.520691,-1.301783,-0.556071,0.638273,-0.532346,
0.077232,0.934717,-1.202342,-0.556071,0.638273,-0.532346,
0.115069,0.760356,-1.450921,-0.556071,0.638273,-0.532346,
-0.221831,0.306144,-1.838428,0.194953,0.548876,-0.812852,
0.115069,0.760356,-1.450921,0.194953,0.548876,-0.812852,
0.471459,0.267036,-1.698558,0.194953,0.548876,-0.812852,
-0.278168,0.037777,-0.209083,0.018057,0.952626,0.303607,
-0.862298,0.231412,-0.781910,0.018057,0.952626,0.303607,
-1.068480,0.101026,-0.360536,0.018057,0.952626,0.303607,
-0.302799,0.520691,-1.301783,-0.910049,0.378636,0.168656,
-0.262315,0.721321,-1.533752,-0.910049,0.378636,0.168656,
-0.505260,0.213488,-1.704558,-0.910049,0.378636,0.168656,
-0.302799,0.520691,-1.301783,-0.431763,0.808594,-0.399696,
-0.505260,0.213488,-1.704558,-0.431763,0.808594,-0.399696,
-0.914878,0.210568,-1.267986,-0.431763,0.808594,-0.399696,
-1.247727,0.059337,-1.332687,-0.414588,0.909991,0.005824,
-0.862298,0.231412,-0.781910,-0.414588,0.909991,0.005824,
-0.914878,0.210568,-1.267986,-0.414588,0.909991,0.005824,
-0.505260,0.213488,-1.704558,-0.279804,0.945470,-0.166723,
-0.707720,0.065178,-2.205832,-0.279804,0.945470,-0.166723,
-1.247727,0.059337,-1.332687,-0.279804,0.945470,-0.166723,
-0.221831,0.306144,-1.838428,-0.361917,0.923511,-0.127061,
-0.707720,0.065178,-2.205832,-0.361917,0.923511,-0.127061,
-0.505260,0.213488,-1.704558,-0.361917,0.923511,-0.127061,
0.312442,0.779166,-1.109731,0.633798,0.660195,-0.403040,
0.471459,0.267036,-1.698558,0.633798,0.660195,-0.403040,
0.115069,0.760356,-1.450921,0.633798,0.660195,-0.403040,
-0.269697,0.566033,-0.874217,-0.662414,0.561673,0.495713,
-0.102879,0.422805,-0.489015,-0.662414,0.561673,0.495713,
-0.148262,0.773865,-0.947432,-0.662414,0.561673,0.495713,
-0.148262,0.773865,-0.947432,0.221736,0.724107,0.653072,
0.312442,0.779166,-1.109731,0.221736,0.724107,0.653072,
0.077232,0.934717,-1.202342,0.221736,0.724107,0.653072,
-0.404757,0.197895,-0.782219,-0.747849,0.577950,0.326642,
-0.278168,0.037777,-0.209083,-0.747849,0.577950,0.326642,
-0.102879,0.422805,-0.489015,-0.747849,0.577950,0.326642,
-0.221831,0.306144,-1.838428,0.113113,0.594980,-0.795741,
-0.262315,0.721321,-1.533752,0.113113,0.594980,-0.795741,
0.115069,0.760356,-1.450921,0.113113,0.594980,-0.795741,
-0.278168,0.037777,-0.209083,0.070836,0.964646,0.253850,
-0.404757,0.197895,-0.782219,0.070836,0.964646,0.253850,
-0.862298,0.231412,-0.781910,0.070836,0.964646,0.253850,
-1.247727,0.059337,-1.332687,-0.462896,0.885145,0.047392,
-1.068480,0.101026,-0.360536,-0.462896,0.885145,0.047392,
-0.862298,0.231412,-0.781910,-0.462896,0.885145,0.047392,
-0.148262,0.773865,-0.947432,-0.591876,0.677685,0.436377,
-0.061115,0.654189,-0.643377,-0.591876,0.677685,0.436377,
0.101020,0.922236,-0.839739,-0.591876,0.677685,0.436377
];
this.indices = [
0,1,2,
3,4,5,
6,7,8,
9,10,11,
12,13,14,
15,16,17,
18,19,20,
21,22,23,
24,25,26,
27,28,29,
30,31,32,
33,34,35,
36,37,38,
39,40,41,
42,43,44,
45,46,47,
48,49,50,
51,52,53,
54,55,56,
57,58,59,
60,61,62,
63,64,65,
66,67,68,
69,70,71,
72,73,74,
75,76,77,
78,79,80,
81,82,83,
84,85,86,
87,88,89,
90,91,92,
93,94,95,
96,97,98,
99,100,101,
102,103,104,
105,106,107,
108,109,110,
111,112,113,
114,115,116,
117,118,119,
120,121,122,
123,120,124,
120,125,126,
127,128,129,
130,131,132,
133,134,135,
136,137,138,
139,140,141,
142,143,144,
145,146,147,
148,149,150,
151,152,153,
154,155,156,
157,158,159,
160,161,162,
163,164,165,
166,167,168,
169,170,171,
172,173,174,
175,176,177,
178,179,180,
181,182,183,
184,185,186,
187,188,189,
190,191,192,
193,194,195,
196,197,198,
199,200,201,
202,203,204,
205,206,207,
208,209,210,
211,212,213,
214,215,216,
217,218,219,
220,221,222,
223,224,225,
226,227,228,
229,230,231,
232,233,234,
235,236,237,
238,239,240,
241,242,243,
244,245,246,
247,248,249,
250,251,252,
253,254,255,
256,257,258,
259,260,261,
262,263,264,
265,266,267,
268,269,270,
271,272,273,
274,275,276,
277,278,279,
280,281,282,
283,284,285,
286,287,288,
289,290,291,
292,293,294,
295,296,297,
298,299,300,
120,126,121,
123,301,120,
120,301,125,
302,303,304,
305,306,307,
308,309,310,
311,312,313,
314,315,316,
317,318,319,
320,321,322,
323,324,325,
326,327,328,
329,330,331,
332,333,334,
335,336,337,
338,339,340,
341,342,343,
344,345,346,
347,348,349,
350,351,352,
353,354,355,
120,122,124,
356,357,358,
359,360,361,
362,363,364,
365,366,367,
368,369,370,
371,372,373,
374,375,376,
377,378,379,
380,381,382,
383,384,385,
386,387,388,
389,390,391,
392,393,394,
395,396,397,
398,399,400,
401,402,403,
404,405,406,
407,408,409,
410,411,412,
413,414,415,
416,417,418,
419,420,421,
422,423,424,
425,426,427,
428,429,430,
431,432,433,
434,435,436,
437,438,439,
440,441,442,
443,444,445,
446,447,448,
449,450,451,
452,453,454,
455,456,457,
458,459,460,
461,462,463,
464,465,466,
467,468,469,
470,471,472,
473,474,475,
476,477,478,
479,480,481,
482,483,484,
485,486,487,
488,489,490,
491,492,493,
494,495,496,
497,498,499,
500,501,502
];
this.colors = [];
for(var i = 0; i < this.positions.length; i += 3) {
this.colors.push(0.5, 0.5, 0.5, 1);
}
this.InitBuffers();
}
}
class River extends Object3D {
constructor(program) {
super(program = defaultProgram, [0.2, 0.2, 1.0, 1.0], [0.4, 0.4, 0.8, 1.0], [0.5, 0.5, 0.9, 1.0]);
this.positions = [
0.0, 0.0, 14.0, 0, 1, 0, // index 0
1.0, 0.0, 12.5, 0, 1, 0, // index 1
1.5, 0.0, 12.5, 0, 1, 0, // index 2
1.3, 0.0, 11.0, 0, 1, 0, // index 3
2.3, 0.0, 11.0, 0, 1, 0, // index 4
1.0, 0.0, 9.5, 0, 1, 0, // index 5
2.5, 0.0, 9.5, 0, 1, 0, // index 6
0.0, 0.0, 8.0, 0, 1, 0, // index 7
2.0, 0.0, 8.0, 0, 1, 0, // index 8
-2.4, 0.0, 6.0, 0, 1, 0, // index 9
0.1, 0.0, 6.0, 0, 1, 0, // index 10
-3.0, 0.0, 4.0, 0, 1, 0, // index 11
0.0, 0.0, 4.0, 0, 1, 0, // index 12
-2.4, 0.0, 2.0, 0, 1, 0, // index 13
1.1, 0.0, 2.0, 0, 1, 0, // index 14
0.0, 0.0, 0.0, 0, 1, 0, // index 15
4.0, 0.0, 0.0, 0, 1, 0, // index 16
0.0, -7.0, 0.0, 0, 0, 1, // index 17 -> additional for waterfall
4.0, -6.0, 0.0, 0, 0, 1 // index 18 -> additional for waterfall
];
this.indices = [
0, 1, 2,
1, 2, 3,
2, 3, 4,
3, 4, 5,
4, 5, 6,
5, 6, 7,
6, 7, 8,
7, 8, 9,
8, 9, 10,
9, 10, 11,
10, 11, 12,
11, 12, 13,
12, 13, 14,
13, 14, 15,
14, 15, 16,
15, 16, 17, // additional for waterfall
16, 17, 18 // additional for waterfall
];
this.InitBuffers();
}
}
class Tree extends Object3D {
constructor(program) {
super(program = defaultProgram, [0.2, 0.5, 0.0, 1.0], [0.4, 0.8, 0.2, 1.0], [0.2, 0.2, 0.5, 1.0]);
this.positions = [
-0.056969,0.301313,0.059775,-0.999612,-0.027868,0.000000,
-0.056969,0.301313,-0.040876,-0.999612,-0.027868,0.000000,
-0.055153,0.236174,-0.050744,-0.999612,-0.027868,0.000000,
-0.055153,0.236174,-0.050744,0.000000,0.000000,0.000000,
-0.055153,0.236174,-0.050744,0.000000,0.000000,0.000000,
0.045498,0.236174,-0.050744,0.000000,0.000000,0.000000,
0.045498,0.236174,-0.050744,0.385482,-0.922715,0.000000,
0.183358,0.293767,-0.010892,0.385482,-0.922715,0.000000,
0.183358,0.293767,0.016715,0.385482,-0.922715,0.000000,
-0.056969,0.301313,0.059775,0.000000,-0.149788,0.988718,
-0.055153,0.236174,0.049907,0.000000,-0.149788,0.988718,
0.045498,0.236174,0.049907,0.000000,-0.149788,0.988718,
-0.055153,0.236174,0.049907,0.000000,-0.000000,1.000000,
-0.055153,0.051740,0.049907,0.000000,-0.000000,1.000000,
0.045498,0.051740,0.049907,0.000000,-0.000000,1.000000,
0.043682,0.301313,0.059775,0.000000,-0.616587,0.787287,
-0.037898,0.415271,0.149025,0.000000,-0.616587,0.787287,
-0.093419,0.415271,0.149025,0.000000,-0.616587,0.787287,
-0.037898,0.415271,0.093504,-0.000000,1.000000,0.000000,
-0.093419,0.415271,0.093504,-0.000000,1.000000,0.000000,
-0.093419,0.415271,0.149025,-0.000000,1.000000,0.000000,
0.043682,0.301313,-0.040876,0.813124,0.582091,0.000000,
-0.037898,0.415271,0.093504,0.813124,0.582091,0.000000,
-0.037898,0.415271,0.149025,0.813124,0.582091,0.000000,
0.043682,0.301313,-0.040876,0.000000,0.762678,-0.646778,
-0.056969,0.301313,-0.040876,0.000000,0.762678,-0.646778,
-0.093419,0.415271,0.093504,0.000000,0.762678,-0.646778,
-0.056969,0.301313,-0.040876,-0.952465,-0.304649,-0.000000,
-0.056969,0.301313,0.059775,-0.952465,-0.304649,-0.000000,
-0.093419,0.415271,0.149025,-0.952465,-0.304649,-0.000000,
-0.055153,0.236174,-0.050744,-0.000000,-0.716953,-0.697121,
0.008874,0.422507,-0.242378,-0.000000,-0.716953,-0.697121,
0.069244,0.422507,-0.242378,-0.000000,-0.716953,-0.697121,
0.045498,0.236174,-0.050744,0.000000,0.000000,0.000000,
0.043682,0.301313,-0.040876,0.000000,0.000000,0.000000,
0.043682,0.301313,-0.040876,0.000000,0.000000,0.000000,
-0.056969,0.301313,-0.040876,0.000000,0.000000,0.000000,
-0.056969,0.301313,-0.040876,0.000000,0.000000,0.000000,
0.007785,0.461577,-0.236459,0.000000,0.149788,-0.988718,
0.068155,0.461577,-0.236459,0.000000,0.149788,-0.988718,
0.069244,0.422507,-0.242378,0.000000,0.149788,-0.988718,
0.043682,0.301313,-0.040876,0.991417,0.007868,0.130501,
0.045498,0.236174,-0.050744,0.991417,0.007868,0.130501,
0.069244,0.422507,-0.242378,0.991417,0.007868,0.130501,
-0.056969,0.301313,-0.040876,0.000000,0.773489,0.633810,
0.043682,0.301313,-0.040876,0.000000,0.773489,0.633810,
0.068155,0.461577,-0.236459,0.000000,0.773489,0.633810,
-0.056969,0.301313,-0.040876,-0.953672,0.018901,-0.300254,
0.007785,0.461577,-0.236459,-0.953672,0.018901,-0.300254,
0.008874,0.422507,-0.242378,-0.953672,0.018901,-0.300254,
0.182859,0.311634,0.019422,0.999612,0.027867,-0.000000,
0.183358,0.293767,0.016715,0.999612,0.027867,-0.000000,
0.183358,0.293767,-0.010892,0.999612,0.027867,-0.000000,
0.043682,0.301313,0.059775,0.285170,-0.135791,0.948809,
0.045498,0.236174,0.049907,0.285170,-0.135791,0.948809,
0.183358,0.293767,0.016715,0.285170,-0.135791,0.948809,
0.043682,0.301313,0.059775,-0.073956,0.997261,0.000000,
0.182859,0.311634,0.019422,-0.073956,0.997261,0.000000,
0.182859,0.311634,-0.008185,-0.073956,0.997261,0.000000,
0.045498,0.236174,-0.050744,0.215291,0.152140,-0.964626,
0.043682,0.301313,-0.040876,0.215291,0.152140,-0.964626,
0.182859,0.311634,-0.008185,0.215291,0.152140,-0.964626,
0.045498,0.051740,0.049907,-0.000000,0.502693,0.864465,
-0.055153,0.051740,0.049907,-0.000000,0.502693,0.864465,
-0.079447,0.009962,0.074201,-0.000000,0.502693,0.864465,
0.045498,0.236174,0.049907,1.000000,0.000000,0.000000,
0.045498,0.051740,0.049907,1.000000,0.000000,0.000000,
0.045498,0.051740,-0.050744,1.000000,0.000000,0.000000,
0.045498,0.236174,-0.050744,0.000000,0.000000,-1.000000,
0.045498,0.051740,-0.050744,0.000000,0.000000,-1.000000,
-0.055153,0.051740,-0.050744,0.000000,0.000000,-1.000000,
-0.055153,0.236174,-0.050744,-1.000000,0.000000,0.000000,
-0.055153,0.051740,-0.050744,-1.000000,0.000000,0.000000,
-0.055153,0.051740,0.049907,-1.000000,0.000000,0.000000,
-0.079447,0.009962,-0.075038,-0.000000,-1.000000,-0.000000,
0.069792,0.009962,-0.075038,-0.000000,-1.000000,-0.000000,
0.069792,0.009962,0.074201,-0.000000,-1.000000,-0.000000,
0.045498,0.051740,0.049907,0.864465,0.502693,-0.000000,
0.069792,0.009962,0.074201,0.864465,0.502693,-0.000000,
0.069792,0.009962,-0.075038,0.864465,0.502693,-0.000000,
-0.055153,0.051740,-0.050744,0.000000,0.502693,-0.864465,
0.045498,0.051740,-0.050744,0.000000,0.502693,-0.864465,
0.069792,0.009962,-0.075038,0.000000,0.502693,-0.864465,
-0.055153,0.051740,0.049907,-0.864465,0.502693,0.000000,
-0.055153,0.051740,-0.050744,-0.864465,0.502693,0.000000,
-0.079447,0.009962,-0.075038,-0.864465,0.502693,0.000000,
-0.023604,0.642852,-0.220543,-0.459289,0.372406,0.806454,
-0.139997,0.499304,-0.220543,-0.459289,0.372406,0.806454,
0.131748,0.574773,-0.100629,-0.459289,0.372406,0.806454,
0.281596,0.451252,-0.218185,0.587257,-0.056040,0.807458,
0.131748,0.574773,-0.100629,0.587257,-0.056040,0.807458,
0.128755,0.410586,-0.109847,0.587257,-0.056040,0.807458,
-0.139997,0.499304,-0.220543,-0.461953,-0.659562,0.592940,
0.128755,0.410586,-0.109847,-0.461953,-0.659562,0.592940,
0.070558,0.502573,-0.052865,-0.461953,-0.659562,0.592940,
-0.139997,0.499304,-0.220543,-0.463939,-0.636043,0.616611,
-0.127460,0.423836,-0.288955,-0.463939,-0.636043,0.616611,
0.128755,0.410586,-0.109847,-0.463939,-0.636043,0.616611,
0.128755,0.410586,-0.109847,0.653439,-0.054303,0.755029,
0.131748,0.574773,-0.100629,0.653439,-0.054303,0.755029,
0.070558,0.502573,-0.052865,0.653439,-0.054303,0.755029,
-0.139997,0.499304,-0.220543,-0.986479,-0.163888,0.000000,
-0.139997,0.499304,-0.357368,-0.986479,-0.163888,0.000000,
-0.127460,0.423836,-0.288955,-0.986479,-0.163888,0.000000,
-0.127460,0.423836,-0.288955,-0.313653,-0.665811,-0.676992,
-0.139997,0.499304,-0.357368,-0.313653,-0.665811,-0.676992,
0.164721,0.355756,-0.357368,-0.313653,-0.665811,-0.676992,
0.070558,0.497457,-0.498071,-0.358604,0.771341,-0.525772,
-0.023604,0.642852,-0.220543,-0.358604,0.771341,-0.525772,
0.202360,0.582881,-0.462644,-0.358604,0.771341,-0.525772,
0.128755,0.410586,-0.109847,-0.181038,-0.965427,0.187552,
-0.127460,0.423836,-0.288955,-0.181038,-0.965427,0.187552,
0.164721,0.355756,-0.357368,-0.181038,-0.965427,0.187552,
0.131748,0.574773,-0.100629,0.738343,0.343153,0.580599,
0.281596,0.451252,-0.218185,0.738343,0.343153,0.580599,
0.258592,0.543865,-0.243667,0.738343,0.343153,0.580599,
-0.139997,0.499304,-0.357368,-0.343767,0.778820,-0.524656,
-0.023604,0.642852,-0.220543,-0.343767,0.778820,-0.524656,
0.070558,0.497457,-0.498071,-0.343767,0.778820,-0.524656,
0.070558,0.497457,-0.498071,0.484743,-0.432671,-0.760145,
0.202360,0.582881,-0.462644,0.484743,-0.432671,-0.760145,
0.164721,0.355756,-0.357368,0.484743,-0.432671,-0.760145,
0.164721,0.355756,-0.357368,-0.361247,-0.766841,-0.530524,
-0.139997,0.499304,-0.357368,-0.361247,-0.766841,-0.530524,
0.070558,0.497457,-0.498071,-0.361247,-0.766841,-0.530524,
0.202360,0.582881,-0.462644,0.324771,0.942015,0.084446,
0.131748,0.574773,-0.100629,0.324771,0.942015,0.084446,
0.258592,0.543865,-0.243667,0.324771,0.942015,0.084446,
0.131748,0.574773,-0.100629,-0.436771,0.723669,0.534354,
-0.139997,0.499304,-0.220543,-0.436771,0.723669,0.534354,
0.070558,0.502573,-0.052865,-0.436771,0.723669,0.534354,
0.202360,0.582881,-0.462644,0.821800,-0.346013,-0.452681,
0.281596,0.451252,-0.218185,0.821800,-0.346013,-0.452681,
0.164721,0.355756,-0.357368,0.821800,-0.346013,-0.452681,
-0.023604,0.642852,-0.220543,-0.776749,0.629810,0.000000,
-0.139997,0.499304,-0.357368,-0.776749,0.629810,0.000000,
-0.139997,0.499304,-0.220543,-0.776749,0.629810,0.000000,
-0.023604,0.642852,-0.220543,0.342260,0.935502,0.087712,
0.131748,0.574773,-0.100629,0.342260,0.935502,0.087712,
0.202360,0.582881,-0.462644,0.342260,0.935502,0.087712,
0.258592,0.543865,-0.243667,0.960083,0.179444,-0.214569,
0.281596,0.451252,-0.218185,0.960083,0.179444,-0.214569,
0.202360,0.582881,-0.462644,0.960083,0.179444,-0.214569,
0.281596,0.451252,-0.218185,0.412630,-0.874842,0.253749,
0.128755,0.410586,-0.109847,0.412630,-0.874842,0.253749,
0.164721,0.355756,-0.357368,0.412630,-0.874842,0.253749,
0.239636,0.235546,-0.001961,0.293781,-0.849928,0.437395,
0.322547,0.294289,0.056497,0.293781,-0.849928,0.437395,
0.207968,0.275752,0.097434,0.293781,-0.849928,0.437395,
0.322547,0.294289,0.056497,0.640793,-0.752349,-0.152826,
0.239636,0.235546,-0.001961,0.640793,-0.752349,-0.152826,
0.290802,0.292476,-0.067686,0.640793,-0.752349,-0.152826,
0.239636,0.235546,-0.001961,-0.453223,-0.867180,0.206369,
0.207968,0.275752,0.097434,-0.453223,-0.867180,0.206369,
0.137152,0.290442,0.003639,-0.453223,-0.867180,0.206369,
0.239636,0.235546,-0.001961,-0.470754,-0.857811,-0.206282,
0.137152,0.290442,0.003639,-0.470754,-0.857811,-0.206282,
0.207968,0.279664,-0.113150,-0.470754,-0.857811,-0.206282,
0.239636,0.235546,-0.001961,0.364369,-0.825374,-0.431270,
0.207968,0.279664,-0.113150,0.364369,-0.825374,-0.431270,
0.290802,0.292476,-0.067686,0.364369,-0.825374,-0.431270,
0.322547,0.294289,0.056497,0.968265,0.031160,-0.247977,
0.290802,0.292476,-0.067686,0.968265,0.031160,-0.247977,
0.305492,0.374381,-0.000033,0.968265,0.031160,-0.247977,
0.207968,0.275752,0.097434,0.352065,-0.128808,0.927070,
0.322547,0.294289,0.056497,0.352065,-0.128808,0.927070,
0.271305,0.366839,0.086037,0.352065,-0.128808,0.927070,
0.137152,0.290442,0.003639,-0.797548,-0.190890,0.572257,
0.207968,0.275752,0.097434,-0.797548,-0.190890,0.572257,
0.156725,0.378237,0.060204,-0.797548,-0.190890,0.572257,
0.207968,0.279664,-0.113150,-0.849100,-0.173812,-0.498818,
0.137152,0.290442,0.003639,-0.849100,-0.173812,-0.498818,
0.156725,0.378237,-0.060271,-0.849100,-0.173812,-0.498818,
0.290802,0.292476,-0.067686,0.494621,-0.182931,-0.849639,
0.207968,0.279664,-0.113150,0.494621,-0.182931,-0.849639,
0.271305,0.378237,-0.097501,0.494621,-0.182931,-0.849639,
0.322547,0.294289,0.056497,0.823953,0.433247,0.365238,
0.305492,0.374381,-0.000033,0.823953,0.433247,0.365238,
0.271305,0.366839,0.086037,0.823953,0.433247,0.365238,
0.207968,0.275752,0.097434,-0.189168,0.250340,0.949497,
0.271305,0.366839,0.086037,-0.189168,0.250340,0.949497,
0.156725,0.378237,0.060204,-0.189168,0.250340,0.949497,
0.137152,0.290442,0.003639,-0.976038,0.217602,0.000000,
0.156725,0.378237,0.060204,-0.976038,0.217602,0.000000,
0.156725,0.378237,-0.060271,-0.976038,0.217602,0.000000,
0.207968,0.279664,-0.113150,-0.291714,0.329966,-0.897789,
0.156725,0.378237,-0.060271,-0.291714,0.329966,-0.897789,
0.271305,0.378237,-0.097501,-0.291714,0.329966,-0.897789,
0.290802,0.292476,-0.067686,0.940096,0.100469,-0.325770,
0.271305,0.378237,-0.097501,0.940096,0.100469,-0.325770,
0.305492,0.374381,-0.000033,0.940096,0.100469,-0.325770,
0.271305,0.366839,0.086037,0.498729,0.823547,0.270257,
0.305492,0.374381,-0.000033,0.498729,0.823547,0.270257,
0.239636,0.412997,0.003822,0.498729,0.823547,0.270257,
0.156725,0.378237,0.060204,-0.025750,0.867418,0.496913,
0.271305,0.366839,0.086037,-0.025750,0.867418,0.496913,
0.239636,0.412997,0.003822,-0.025750,0.867418,0.496913,
0.156725,0.378237,-0.060271,-0.386646,0.922228,0.000000,
0.156725,0.378237,0.060204,-0.386646,0.922228,0.000000,
0.239636,0.412997,0.003822,-0.386646,0.922228,0.000000,
0.271305,0.378237,-0.097501,-0.115138,0.927997,-0.354351,
0.156725,0.378237,-0.060271,-0.115138,0.927997,-0.354351,
0.239636,0.412997,0.003822,-0.115138,0.927997,-0.354351,
0.305492,0.374381,-0.000033,0.494777,0.857731,-0.139617,
0.271305,0.378237,-0.097501,0.494777,0.857731,-0.139617,
0.239636,0.412997,0.003822,0.494777,0.857731,-0.139617,
-0.036268,0.361529,0.163458,0.245614,-0.919073,0.308188,
0.091404,0.426523,0.255533,0.245614,-0.919073,0.308188,
-0.091304,0.397046,0.313238,0.245614,-0.919073,0.308188,
0.173261,0.530724,0.313832,0.678737,-0.683487,0.268630,
0.091404,0.426523,0.255533,0.678737,-0.683487,0.268630,
0.211194,0.504732,0.151857,0.678737,-0.683487,0.268630,
-0.036268,0.361529,0.163458,-0.371219,-0.924837,0.082904,
-0.091304,0.397046,0.313238,-0.371219,-0.924837,0.082904,
-0.199772,0.427673,0.169213,-0.371219,-0.924837,0.082904,
-0.036268,0.361529,0.163458,-0.372956,-0.903573,-0.210856,
-0.199772,0.427673,0.169213,-0.372956,-0.903573,-0.210856,
-0.091304,0.415891,0.027848,-0.372956,-0.903573,-0.210856,
-0.036268,0.361529,0.163458,-0.189963,-0.935499,-0.297919,
-0.091304,0.415891,0.027848,-0.189963,-0.935499,-0.297919,
0.084198,0.366894,0.069797,-0.189963,-0.935499,-0.297919,
0.173261,0.530724,0.313832,0.846323,-0.458157,0.271718,
0.211194,0.504732,0.151857,0.846323,-0.458157,0.271718,
0.241174,0.620887,0.254329,0.846323,-0.458157,0.271718,
-0.125322,0.487354,0.416054,-0.053405,-0.597611,0.800005,
0.033749,0.468629,0.412686,-0.053405,-0.597611,0.800005,
-0.042797,0.620887,0.521313,-0.053405,-0.597611,0.800005,
-0.309859,0.487355,0.162063,-0.916472,-0.199783,0.346649,
-0.248280,0.463910,0.311354,-0.916472,-0.199783,0.346649,
-0.326769,0.617539,0.192386,-0.916472,-0.199783,0.346649,
-0.125322,0.487354,-0.091928,-0.616355,-0.185357,-0.765343,
-0.248280,0.463910,0.012771,-0.616355,-0.185357,-0.765343,
-0.218301,0.620887,-0.049390,-0.616355,-0.185357,-0.765343,
0.173261,0.487354,0.005089,0.431612,-0.385516,-0.815530,
0.032055,0.467037,-0.060038,0.431612,-0.385516,-0.815530,
0.132707,0.620887,-0.079497,0.431612,-0.385516,-0.815530,
0.173261,0.530724,0.313832,0.789879,-0.216232,0.573877,
0.241174,0.620887,0.254329,0.789879,-0.216232,0.573877,
0.132707,0.620887,0.403623,0.789879,-0.216232,0.573877,
-0.125322,0.487354,0.416054,-0.714939,-0.103258,0.691520,
-0.042797,0.620887,0.521313,-0.714939,-0.103258,0.691520,
-0.218301,0.620887,0.339866,-0.714939,-0.103258,0.691520,
-0.309859,0.487355,0.162063,-0.991767,-0.128005,-0.003496,
-0.326769,0.617539,0.192386,-0.991767,-0.128005,-0.003496,
-0.326769,0.620887,0.069796,-0.991767,-0.128005,-0.003496,
-0.125322,0.487354,-0.091928,-0.520406,-0.091911,-0.848958,
-0.218301,0.620887,-0.049390,-0.520406,-0.091911,-0.848958,
-0.042797,0.615104,-0.156346,-0.520406,-0.091911,-0.848958,
0.173261,0.487354,0.005089,0.802609,-0.125627,-0.583126,
0.132707,0.620887,-0.079497,0.802609,-0.125627,-0.583126,
0.241174,0.620887,0.069796,0.802609,-0.125627,-0.583126,
0.053601,0.742690,0.364031,0.573608,0.462479,0.676082,
0.168557,0.738438,0.269407,0.573608,0.462479,0.676082,
0.005710,0.823999,0.349044,0.573608,0.462479,0.676082,
-0.258855,0.754420,0.319037,-0.471299,0.661699,0.583122,
-0.121286,0.777864,0.403622,-0.471299,0.661699,0.583122,
-0.169792,0.874880,0.254329,-0.471299,0.661699,0.583122,
-0.258855,0.754420,0.005089,-0.700224,0.661699,-0.268032,
-0.296788,0.777864,0.162063,-0.700224,0.661699,-0.268032,
-0.169792,0.874880,0.069797,-0.700224,0.661699,-0.268032,
0.010880,0.723391,-0.015800,0.508800,0.284327,-0.812576,
-0.121286,0.777864,-0.079496,0.508800,0.284327,-0.812576,
0.005710,0.846612,0.024079,0.508800,0.284327,-0.812576,
0.224265,0.754419,0.162063,0.626249,0.619385,-0.473470,
0.145085,0.753424,0.056032,0.626249,0.619385,-0.473470,
0.114178,0.853428,0.145975,0.626249,0.619385,-0.473470,
-0.091304,0.397046,0.313238,-0.076005,-0.761490,0.643705,
0.033749,0.468629,0.412686,-0.076005,-0.761490,0.643705,
-0.125322,0.487354,0.416054,-0.076005,-0.761490,0.643705,
-0.091304,0.397046,0.313238,0.252454,-0.907486,0.335763,
0.091404,0.426523,0.255533,0.252454,-0.907486,0.335763,
0.033749,0.468629,0.412686,0.252454,-0.907486,0.335763,
0.091404,0.426523,0.255533,0.595517,-0.694103,0.404452,
0.173261,0.530724,0.313832,0.595517,-0.694103,0.404452,
0.033749,0.468629,0.412686,0.595517,-0.694103,0.404452,
0.211194,0.504732,0.151857,0.765264,-0.631862,-0.122966,
0.084198,0.366894,0.069797,0.765264,-0.631862,-0.122966,
0.173261,0.487354,0.005089,0.765264,-0.631862,-0.122966,
0.211194,0.504732,0.151857,0.654543,-0.726862,0.207955,
0.091404,0.426523,0.255533,0.654543,-0.726862,0.207955,
0.084198,0.366894,0.069797,0.654543,-0.726862,0.207955,
0.091404,0.426523,0.255533,0.263121,-0.921510,0.285632,
-0.036268,0.361529,0.163458,0.263121,-0.921510,0.285632,
0.084198,0.366894,0.069797,0.263121,-0.921510,0.285632,
-0.199772,0.427673,0.169213,-0.478748,-0.875905,0.059918,
-0.248280,0.463910,0.311354,-0.478748,-0.875905,0.059918,
-0.309859,0.487355,0.162063,-0.478748,-0.875905,0.059918,
-0.199772,0.427673,0.169213,-0.390936,-0.914986,0.099848,
-0.091304,0.397046,0.313238,-0.390936,-0.914986,0.099848,
-0.248280,0.463910,0.311354,-0.390936,-0.914986,0.099848,
-0.091304,0.397046,0.313238,-0.330688,-0.760615,0.558669,
-0.125322,0.487354,0.416054,-0.330688,-0.760615,0.558669,
-0.248280,0.463910,0.311354,-0.330688,-0.760615,0.558669,
-0.091304,0.415891,0.027848,-0.220782,-0.863886,-0.452721,
-0.248280,0.463910,0.012771,-0.220782,-0.863886,-0.452721,
-0.125322,0.487354,-0.091928,-0.220782,-0.863886,-0.452721,
-0.091304,0.415891,0.027848,-0.278079,-0.951153,-0.134092,
-0.199772,0.427673,0.169213,-0.278079,-0.951153,-0.134092,
-0.248280,0.463910,0.012771,-0.278079,-0.951153,-0.134092,
-0.199772,0.427673,0.169213,-0.472960,-0.879238,-0.057007,
-0.309859,0.487355,0.162063,-0.472960,-0.879238,-0.057007,
-0.248280,0.463910,0.012771,-0.472960,-0.879238,-0.057007,
0.084198,0.366894,0.069797,0.394884,-0.643958,-0.655274,
0.032055,0.467037,-0.060038,0.394884,-0.643958,-0.655274,
0.173261,0.487354,0.005089,0.394884,-0.643958,-0.655274,
0.084198,0.366894,0.069797,-0.084448,-0.805117,-0.587074,
-0.091304,0.415891,0.027848,-0.084448,-0.805117,-0.587074,
0.032055,0.467037,-0.060038,-0.084448,-0.805117,-0.587074,
-0.091304,0.415891,0.027848,-0.007480,-0.859674,-0.510789,
-0.125322,0.487354,-0.091928,-0.007480,-0.859674,-0.510789,
0.032055,0.467037,-0.060038,-0.007480,-0.859674,-0.510789,
0.241174,0.620887,0.254329,0.992077,0.125628,-0.000000,
0.241174,0.620887,0.069796,0.992077,0.125628,-0.000000,
0.224265,0.754419,0.162063,0.992077,0.125628,-0.000000,
0.241174,0.620887,0.254329,0.968266,-0.249921,0.000000,
0.211194,0.504732,0.151857,0.968266,-0.249921,0.000000,
0.241174,0.620887,0.069796,0.968266,-0.249921,0.000000,
0.211194,0.504732,0.151857,0.909235,-0.369770,-0.191209,
0.173261,0.487354,0.005089,0.909235,-0.369770,-0.191209,
0.241174,0.620887,0.069796,0.909235,-0.369770,-0.191209,
-0.042797,0.620887,0.521313,0.470873,0.534057,0.702183,
0.132707,0.620887,0.403623,0.470873,0.534057,0.702183,
0.053601,0.742690,0.364031,0.470873,0.534057,0.702183,
-0.042797,0.620887,0.521313,0.531591,-0.298317,0.792728,
0.033749,0.468629,0.412686,0.531591,-0.298317,0.792728,
0.132707,0.620887,0.403623,0.531591,-0.298317,0.792728,
0.033749,0.468629,0.412686,0.641314,-0.377039,0.668250,
0.173261,0.530724,0.313832,0.641314,-0.377039,0.668250,
0.132707,0.620887,0.403623,0.641314,-0.377039,0.668250,
-0.326769,0.617539,0.192386,-0.794880,-0.149686,0.588013,
-0.218301,0.620887,0.339866,-0.794880,-0.149686,0.588013,
-0.258855,0.754420,0.319037,-0.794880,-0.149686,0.588013,
-0.326769,0.617539,0.192386,-0.805216,0.046407,0.591163,
-0.248280,0.463910,0.311354,-0.805216,0.046407,0.591163,
-0.218301,0.620887,0.339866,-0.805216,0.046407,0.591163,
-0.248280,0.463910,0.311354,-0.646577,-0.015045,0.762700,
-0.125322,0.487354,0.416054,-0.646577,-0.015045,0.762700,
-0.218301,0.620887,0.339866,-0.646577,-0.015045,0.762700,
-0.218301,0.620887,-0.049390,-0.738657,0.049925,-0.672230,
-0.326769,0.620887,0.069796,-0.738657,0.049925,-0.672230,
-0.258855,0.754420,0.005089,-0.738657,0.049925,-0.672230,
-0.218301,0.620887,-0.049390,-0.733843,-0.124312,-0.667848,
-0.248280,0.463910,0.012771,-0.733843,-0.124312,-0.667848,
-0.326769,0.620887,0.069796,-0.733843,-0.124312,-0.667848,
-0.248280,0.463910,0.012771,-0.889697,-0.330385,-0.315095,
-0.309859,0.487355,0.162063,-0.889697,-0.330385,-0.315095,
-0.326769,0.620887,0.069796,-0.889697,-0.330385,-0.315095,
0.132707,0.620887,-0.079497,0.260983,0.713943,-0.649749,
-0.042797,0.615104,-0.156346,0.260983,0.713943,-0.649749,
0.010880,0.723391,-0.015800,0.260983,0.713943,-0.649749,
0.132707,0.620887,-0.079497,0.384274,-0.358978,-0.850570,
0.032055,0.467037,-0.060038,0.384274,-0.358978,-0.850570,
-0.042797,0.615104,-0.156346,0.384274,-0.358978,-0.850570,
0.032055,0.467037,-0.060038,0.108863,-0.502748,-0.857551,
-0.125322,0.487354,-0.091928,0.108863,-0.502748,-0.857551,
-0.042797,0.615104,-0.156346,0.108863,-0.502748,-0.857551,
0.132707,0.620887,0.403623,0.540329,0.556171,0.631441,
0.168557,0.738438,0.269407,0.540329,0.556171,0.631441,
0.053601,0.742690,0.364031,0.540329,0.556171,0.631441,
0.132707,0.620887,0.403623,0.744731,0.390657,0.541076,
0.241174,0.620887,0.254329,0.744731,0.390657,0.541076,
0.168557,0.738438,0.269407,0.744731,0.390657,0.541076,
0.241174,0.620887,0.254329,0.778049,0.420814,0.466429,
0.224265,0.754419,0.162063,0.778049,0.420814,0.466429,
0.168557,0.738438,0.269407,0.778049,0.420814,0.466429,
-0.218301,0.620887,0.339866,-0.520517,-0.024952,0.853487,
-0.121286,0.777864,0.403622,-0.520517,-0.024952,0.853487,
-0.258855,0.754420,0.319037,-0.520517,-0.024952,0.853487,
-0.218301,0.620887,0.339866,-0.709548,0.159774,0.686305,
-0.042797,0.620887,0.521313,-0.709548,0.159774,0.686305,
-0.121286,0.777864,0.403622,-0.709548,0.159774,0.686305,
-0.042797,0.620887,0.521313,0.289628,0.662637,0.690672,
0.053601,0.742690,0.364031,0.289628,0.662637,0.690672,
-0.121286,0.777864,0.403622,0.289628,0.662637,0.690672,
-0.326769,0.620887,0.069796,-0.904989,0.330385,-0.268032,
-0.296788,0.777864,0.162063,-0.904989,0.330385,-0.268032,
-0.258855,0.754420,0.005089,-0.904989,0.330385,-0.268032,
-0.326769,0.620887,0.069796,-0.982776,0.184734,0.005046,
-0.326769,0.617539,0.192386,-0.982776,0.184734,0.005046,
-0.296788,0.777864,0.162063,-0.982776,0.184734,0.005046,
-0.326769,0.617539,0.192386,-0.938935,0.224846,0.260472,
-0.258855,0.754420,0.319037,-0.938935,0.224846,0.260472,
-0.296788,0.777864,0.162063,-0.938935,0.224846,0.260472,
-0.042797,0.615104,-0.156346,0.535505,0.557690,-0.634205,
-0.121286,0.777864,-0.079496,0.535505,0.557690,-0.634205,
0.010880,0.723391,-0.015800,0.535505,0.557690,-0.634205,
-0.042797,0.615104,-0.156346,-0.510565,0.153275,-0.846068,
-0.218301,0.620887,-0.049390,-0.510565,0.153275,-0.846068,
-0.121286,0.777864,-0.079496,-0.510565,0.153275,-0.846068,
-0.218301,0.620887,-0.049390,-0.537117,0.173640,-0.825442,
-0.258855,0.754420,0.005089,-0.537117,0.173640,-0.825442,
-0.121286,0.777864,-0.079496,-0.537117,0.173640,-0.825442,
0.241174,0.620887,0.069796,0.709751,0.459078,-0.534323,
0.145085,0.753424,0.056032,0.709751,0.459078,-0.534323,
0.224265,0.754419,0.162063,0.709751,0.459078,-0.534323,
0.241174,0.620887,0.069796,0.716157,0.465177,-0.520316,
0.132707,0.620887,-0.079497,0.716157,0.465177,-0.520316,
0.145085,0.753424,0.056032,0.716157,0.465177,-0.520316,
0.132707,0.620887,-0.079497,0.216745,0.687991,-0.692596,
0.010880,0.723391,-0.015800,0.216745,0.687991,-0.692596,
0.145085,0.753424,0.056032,0.216745,0.687991,-0.692596,
0.005710,0.823999,0.349044,0.338289,0.888695,0.309486,
0.114178,0.853428,0.145975,0.338289,0.888695,0.309486,
-0.042797,0.900194,0.183269,0.338289,0.888695,0.309486,
0.005710,0.823999,0.349044,0.573113,0.710094,0.409033,
0.168557,0.738438,0.269407,0.573113,0.710094,0.409033,
0.114178,0.853428,0.145975,0.573113,0.710094,0.409033,
0.168557,0.738438,0.269407,0.577848,0.708371,0.405342,
0.224265,0.754419,0.162063,0.577848,0.708371,0.405342,
0.114178,0.853428,0.145975,0.577848,0.708371,0.405342,
-0.169792,0.874880,0.254329,0.045372,0.912654,0.406208,
0.005710,0.823999,0.349044,0.045372,0.912654,0.406208,
-0.042797,0.900194,0.183269,0.045372,0.912654,0.406208,
-0.169792,0.874880,0.254329,-0.061013,0.827772,0.557737,
-0.121286,0.777864,0.403622,-0.061013,0.827772,0.557737,
0.005710,0.823999,0.349044,-0.061013,0.827772,0.557737,
-0.121286,0.777864,0.403622,0.270663,0.326360,0.905666,
0.053601,0.742690,0.364031,0.270663,0.326360,0.905666,
0.005710,0.823999,0.349044,0.270663,0.326360,0.905666,
-0.169792,0.874880,0.069797,-0.195487,0.980706,0.000000,
-0.169792,0.874880,0.254329,-0.195487,0.980706,0.000000,
-0.042797,0.900194,0.183269,-0.195487,0.980706,0.000000,
-0.169792,0.874880,0.069797,-0.607060,0.794656,0.000000,
-0.296788,0.777864,0.162063,-0.607060,0.794656,0.000000,
-0.169792,0.874880,0.254329,-0.607060,0.794656,0.000000,
-0.296788,0.777864,0.162063,-0.700224,0.661699,0.268032,
-0.258855,0.754420,0.319037,-0.700224,0.661699,0.268032,
-0.169792,0.874880,0.254329,-0.700224,0.661699,0.268032,
0.005710,0.846612,0.024079,0.075868,0.951784,-0.297241,
-0.169792,0.874880,0.069797,0.075868,0.951784,-0.297241,
-0.042797,0.900194,0.183269,0.075868,0.951784,-0.297241,
0.005710,0.846612,0.024079,-0.007516,0.837367,-0.546590,
-0.121286,0.777864,-0.079496,-0.007516,0.837367,-0.546590,
-0.169792,0.874880,0.069797,-0.007516,0.837367,-0.546590,
-0.121286,0.777864,-0.079496,-0.471299,0.661699,-0.583122,
-0.258855,0.754420,0.005089,-0.471299,0.661699,-0.583122,
-0.169792,0.874880,0.069797,-0.471299,0.661699,-0.583122,
0.114178,0.853428,0.145975,0.221484,0.942630,-0.249789,
0.005710,0.846612,0.024079,0.221484,0.942630,-0.249789,
-0.042797,0.900194,0.183269,0.221484,0.942630,-0.249789,
0.114178,0.853428,0.145975,0.552425,0.645299,-0.527651,
0.145085,0.753424,0.056032,0.552425,0.645299,-0.527651,
0.005710,0.846612,0.024079,0.552425,0.645299,-0.527651,
0.145085,0.753424,0.056032,0.397910,0.297556,-0.867829,
0.010880,0.723391,-0.015800,0.397910,0.297556,-0.867829,
0.005710,0.846612,0.024079,0.397910,0.297556,-0.867829,
0.008874,0.422507,-0.242378,0.000000,0.149788,-0.988718,
-0.055153,0.236174,0.049907,-0.999612,-0.027868,0.000000,
0.045498,0.236174,0.049907,0.385482,-0.922715,0.000000,
0.043682,0.301313,0.059775,0.000000,-0.149788,0.988718,
0.045498,0.236174,0.049907,0.000000,-0.000000,1.000000,
-0.056969,0.301313,0.059775,0.000000,-0.616587,0.787287,
-0.037898,0.415271,0.149025,-0.000000,1.000000,0.000000,
0.043682,0.301313,0.059775,0.813124,0.582091,-0.000000,
-0.037898,0.415271,0.093504,0.000000,0.762678,-0.646778,
-0.093419,0.415271,0.093504,-0.952465,-0.304649,0.000000,
0.045498,0.236174,-0.050744,0.000000,-0.716953,-0.697121,
0.068155,0.461577,-0.236459,0.991417,0.007869,0.130501,
0.043682,0.301313,-0.040876,0.991417,0.007869,0.130501,
0.069244,0.422507,-0.242378,0.991417,0.007869,0.130501,
0.007785,0.461577,-0.236459,0.000000,0.773489,0.633810,
-0.055153,0.236174,-0.050744,-0.953672,0.018901,-0.300255,
-0.056969,0.301313,-0.040876,-0.953672,0.018901,-0.300255,
0.008874,0.422507,-0.242378,-0.953672,0.018901,-0.300255,
0.182859,0.311634,-0.008185,0.999612,0.027867,0.000000,
0.182859,0.311634,0.019422,0.285170,-0.135791,0.948809,
0.043682,0.301313,-0.040876,-0.073956,0.997261,0.000000,
0.183358,0.293767,-0.010892,0.215291,0.152139,-0.964626,
0.045498,0.236174,-0.050744,0.215291,0.152139,-0.964626,
0.182859,0.311634,-0.008185,0.215291,0.152139,-0.964626,
0.069792,0.009962,0.074201,0.000000,0.502693,0.864465,
0.045498,0.236174,-0.050744,1.000000,-0.000000,0.000000,
-0.055153,0.236174,-0.050744,0.000000,0.000000,-1.000000,
-0.055153,0.236174,0.049907,-1.000000,0.000000,0.000000,
-0.079447,0.009962,0.074201,-0.000000,-1.000000,0.000000,
0.045498,0.051740,-0.050744,0.864465,0.502693,0.000000,
-0.079447,0.009962,-0.075038,0.000000,0.502693,-0.864465,
-0.079447,0.009962,0.074201,-0.864465,0.502693,0.000000
];
this.indices = [
0,1,2,
3,4,5,
6,7,8,
9,10,11,
12,13,14,
15,16,17,
18,19,20,
21,22,23,
24,25,26,
27,28,29,
30,31,32,
33,5,34,
35,34,36,
37,36,4,
38,39,40,
41,42,43,
44,45,46,
47,48,49,
50,51,52,
53,54,55,
56,57,58,
59,60,61,
62,63,64,
65,66,67,
68,69,70,
71,72,73,
74,75,76,
77,78,79,
80,81,82,
83,84,85,
86,87,88,
89,90,91,
92,93,94,
95,96,97,
98,99,100,
101,102,103,
104,105,106,
107,108,109,
110,111,112,
113,114,115,
116,117,118,
119,120,121,
122,123,124,
125,126,127,
128,129,130,
131,132,133,
134,135,136,
137,138,139,
140,141,142,
143,144,145,
146,147,148,
149,150,151,
152,153,154,
155,156,157,
158,159,160,
161,162,163,
164,165,166,
167,168,169,
170,171,172,
173,174,175,
176,177,178,
179,180,181,
182,183,184,
185,186,187,
188,189,190,
191,192,193,
194,195,196,
197,198,199,
200,201,202,
203,204,205,
206,207,208,
209,210,211,
212,213,214,
215,216,217,
218,219,220,
221,222,223,
224,225,226,
227,228,229,
230,231,232,
233,234,235,
236,237,238,
239,240,241,
242,243,244,
245,246,247,
248,249,250,
251,252,253,
254,255,256,
257,258,259,
260,261,262,
263,264,265,
266,267,268,
269,270,271,
272,273,274,
275,276,277,
278,279,280,
281,282,283,
284,285,286,
287,288,289,
290,291,292,
293,294,295,
296,297,298,
299,300,301,
302,303,304,
305,306,307,
308,309,310,
311,312,313,
314,315,316,
317,318,319,
320,321,322,
323,324,325,
326,327,328,
329,330,331,
332,333,334,
335,336,337,
338,339,340,
341,342,343,
344,345,346,
347,348,349,
350,351,352,
353,354,355,
356,357,358,
359,360,361,
362,363,364,
365,366,367,
368,369,370,
371,372,373,
374,375,376,
377,378,379,
380,381,382,
383,384,385,
386,387,388,
389,390,391,
392,393,394,
395,396,397,
398,399,400,
401,402,403,
404,405,406,
407,408,409,
410,411,412,
413,414,415,
416,417,418,
419,420,421,
422,423,424,
425,426,427,
428,429,430,
431,432,433,
434,435,436,
437,438,439,
440,441,442,
443,444,445,
446,38,40,
447,0,2,
33,3,5,
448,6,8,
449,9,11,
450,12,14,
451,15,17,
452,18,20,
453,21,23,
454,24,26,
455,27,29,
456,30,32,
35,33,34,
37,35,36,
3,37,4,
457,458,459,
460,44,46,
461,462,463,
464,50,52,
465,53,55,
466,56,58,
467,468,469,
470,62,64,
471,65,67,
472,68,70,
473,71,73,
474,74,76,
475,77,79,
476,80,82,
477,83,85
];
this.InitBuffers();
}
}
class Cloud extends Object3D {
constructor(program) {
super(program = defaultProgram, [0.9, 0.9, 0.9, 1.0], [0.9, 0.9, 0.9, 1.0], [1.0, 1.0, 1.0, 1.0]);
this.positions = [
-0.308265,-0.282990,-0.001417,-0.135946,-0.969316,0.204803,
0.101554,-0.243033,0.459730,-0.135946,-0.969316,0.204803,
-0.309308,-0.125191,0.744740,-0.135946,-0.969316,0.204803,
0.505238,-0.184567,0.783138,0.291647,-0.936493,-0.194738,
0.101554,-0.243033,0.459730,0.291647,-0.936493,-0.194738,
0.286346,-0.089592,-0.001417,0.291647,-0.936493,-0.194738,
-0.308265,-0.282990,-0.001417,0.093369,-0.974061,0.206127,
-0.309308,-0.125191,0.744740,0.093369,-0.974061,0.206127,
-0.681349,-0.318752,-0.001417,0.093369,-0.974061,0.206127,
-0.308265,-0.282990,-0.001417,0.095211,-0.993277,-0.065841,
-0.681349,-0.318752,-0.001417,0.095211,-0.993277,-0.065841,
-0.309308,-0.233630,-0.747573,0.095211,-0.993277,-0.065841,
-0.308265,-0.282990,-0.001417,0.413254,-0.908592,-0.060683,
-0.309308,-0.233630,-0.747573,0.413254,-0.908592,-0.060683,
0.101554,-0.065793,-0.462563,0.413254,-0.908592,-0.060683,
0.505238,-0.184567,0.783138,0.922555,-0.256327,-0.288425,
0.286346,-0.089592,-0.001417,0.922555,-0.256327,-0.288425,
0.469048,0.098790,0.415557,0.922555,-0.256327,-0.288425,
-0.193767,-0.184567,1.268031,-0.052729,-0.782841,0.619984,
0.183178,-0.259167,1.205894,-0.052729,-0.782841,0.619984,
-0.000570,0.000000,1.517511,-0.052729,-0.782841,0.619984,
-0.963457,-0.122647,-0.001417,-0.849021,-0.431906,0.304335,
-0.676801,-0.160374,0.744743,-0.849021,-0.431906,0.304335,
-0.860548,0.000000,0.459731,-0.849021,-0.431906,0.304335,
-0.193767,-0.184567,-1.270864,-0.631420,-0.566375,-0.529649,
-0.676801,-0.135416,-0.747576,-0.631420,-0.566375,-0.529649,
-0.411437,0.000000,-1.208735,-0.631420,-0.566375,-0.529649,
0.310058,-0.184567,-0.785971,0.461607,-0.847905,-0.260722,
0.183178,-0.123648,-1.208727,0.461607,-0.847905,-0.260722,
0.410298,0.000000,-1.208735,0.461607,-0.847905,-0.260722,
0.505238,-0.184567,0.783138,0.968062,0.235434,0.086178,
0.469048,0.098790,0.415557,0.968062,0.235434,0.086178,
0.410298,0.000000,1.345405,0.968062,0.235434,0.086178,
-0.193767,-0.184567,1.268031,-0.587674,-0.362560,0.723319,
-0.000570,0.000000,1.517511,-0.587674,-0.362560,0.723319,
-0.384104,0.000000,1.205901,-0.587674,-0.362560,0.723319,
-0.963457,-0.122647,-0.001417,-0.766059,0.642771,0.000000,
-0.860548,0.000000,0.459731,-0.766059,0.642771,0.000000,
-0.860548,0.000000,-0.462565,-0.766059,0.642771,0.000000,
-0.193767,-0.184567,-1.270864,-0.598629,-0.493639,-0.630844,
-0.411437,0.000000,-1.208735,-0.598629,-0.493639,-0.630844,
-0.000570,0.000000,-1.598620,-0.598629,-0.493639,-0.630844,
0.310058,-0.184567,-0.785971,0.937312,-0.340647,0.073525,
0.410298,0.000000,-1.208735,0.937312,-0.340647,0.073525,
0.384591,0.090319,-0.462565,0.937312,-0.340647,0.073525,
0.192628,0.380510,1.268031,0.055988,0.961332,-0.269640,
0.480481,0.216971,0.744743,0.055988,0.961332,-0.269640,
-0.002332,0.213378,0.631682,0.055988,0.961332,-0.269640,
-0.624286,0.240846,0.783138,-0.388910,0.891429,0.232601,
-0.184317,0.365906,1.039482,-0.388910,0.891429,0.232601,
-0.605569,0.380903,0.277674,-0.388910,0.891429,0.232601,
-0.701558,0.184567,-0.640105,-0.085287,0.993355,-0.077280,
-0.902876,0.216971,-0.001417,-0.085287,0.993355,-0.077280,
-0.352763,0.239456,-0.319506,-0.085287,0.993355,-0.077280,
0.192628,0.247332,-1.168216,0.402780,0.915012,0.022813,
-0.184317,0.414270,-1.208727,0.402780,0.915012,0.022813,
-0.014225,0.327900,-0.747573,0.402780,0.915012,0.022813,
0.272043,0.363024,-0.001417,-0.306094,0.949796,-0.064766,
0.344697,0.335558,-0.747576,-0.306094,0.949796,-0.064766,
0.012647,0.279427,-0.001417,-0.306094,0.949796,-0.064766,
-0.309308,-0.125191,0.744740,-0.204141,-0.976731,-0.065752,
0.183178,-0.259167,1.205894,-0.204141,-0.976731,-0.065752,
-0.193767,-0.184567,1.268031,-0.204141,-0.976731,-0.065752,
-0.309308,-0.125191,0.744740,-0.270091,-0.962795,0.008728,
0.101554,-0.243033,0.459730,-0.270091,-0.962795,0.008728,
0.183178,-0.259167,1.205894,-0.270091,-0.962795,0.008728,
0.101554,-0.243033,0.459730,0.174845,-0.983767,-0.040398,
0.505238,-0.184567,0.783138,0.174845,-0.983767,-0.040398,
0.183178,-0.259167,1.205894,0.174845,-0.983767,-0.040398,
0.286346,-0.089592,-0.001417,-0.370034,-0.923554,0.100617,
0.101554,-0.065793,-0.462563,-0.370034,-0.923554,0.100617,
0.310058,-0.184567,-0.785971,-0.370034,-0.923554,0.100617,
0.286346,-0.089592,-0.001417,0.325694,-0.928486,-0.178430,
0.101554,-0.243033,0.459730,0.325694,-0.928486,-0.178430,
0.101554,-0.065793,-0.462563,0.325694,-0.928486,-0.178430,
0.101554,-0.243033,0.459730,0.294445,-0.938496,-0.180354,
-0.308265,-0.282990,-0.001417,0.294445,-0.938496,-0.180354,
0.101554,-0.065793,-0.462563,0.294445,-0.938496,-0.180354,
-0.681349,-0.318752,-0.001417,-0.561972,-0.808428,0.175021,
-0.676801,-0.160374,0.744743,-0.561972,-0.808428,0.175021,
-0.963457,-0.122647,-0.001417,-0.561972,-0.808428,0.175021,
-0.681349,-0.318752,-0.001417,0.093254,-0.974059,0.206184,
-0.309308,-0.125191,0.744740,0.093254,-0.974059,0.206184,
-0.676801,-0.160374,0.744743,0.093254,-0.974059,0.206184,
-0.309308,-0.125191,0.744740,0.094455,-0.986631,-0.132804,
-0.193767,-0.184567,1.268031,0.094455,-0.986631,-0.132804,
-0.676801,-0.160374,0.744743,0.094455,-0.986631,-0.132804,
-0.309308,-0.233630,-0.747573,-0.255425,-0.955741,-0.146006,
-0.676801,-0.135416,-0.747576,-0.255425,-0.955741,-0.146006,
-0.193767,-0.184567,-1.270864,-0.255425,-0.955741,-0.146006,
-0.309308,-0.233630,-0.747573,-0.251121,-0.939641,-0.232406,
-0.681349,-0.318752,-0.001417,-0.251121,-0.939641,-0.232406,
-0.676801,-0.135416,-0.747576,-0.251121,-0.939641,-0.232406,
-0.681349,-0.318752,-0.001417,-0.559128,-0.804338,-0.201039,
-0.963457,-0.122647,-0.001417,-0.559128,-0.804338,-0.201039,
-0.676801,-0.135416,-0.747576,-0.559128,-0.804338,-0.201039,
0.101554,-0.065793,-0.462563,-0.475912,-0.879345,0.016121,
0.183178,-0.123648,-1.208727,-0.475912,-0.879345,0.016121,
0.310058,-0.184567,-0.785971,-0.475912,-0.879345,0.016121,
0.101554,-0.065793,-0.462563,0.311309,-0.944235,0.107268,
-0.309308,-0.233630,-0.747573,0.311309,-0.944235,0.107268,
0.183178,-0.123648,-1.208727,0.311309,-0.944235,0.107268,
-0.309308,-0.233630,-0.747573,0.168152,-0.984217,-0.055152,
-0.193767,-0.184567,-1.270864,0.168152,-0.984217,-0.055152,
0.183178,-0.123648,-1.208727,0.168152,-0.984217,-0.055152,
0.469048,0.098790,0.415557,0.859877,0.502936,-0.087555,
0.384591,0.090319,-0.462565,0.859877,0.502936,-0.087555,
0.272043,0.363024,-0.001417,0.859877,0.502936,-0.087555,
0.469048,0.098790,0.415557,0.789057,-0.610318,-0.070003,
0.286346,-0.089592,-0.001417,0.789057,-0.610318,-0.070003,
0.384591,0.090319,-0.462565,0.789057,-0.610318,-0.070003,
0.286346,-0.089592,-0.001417,0.939347,-0.335944,0.069059,
0.310058,-0.184567,-0.785971,0.939347,-0.335944,0.069059,
0.384591,0.090319,-0.462565,0.939347,-0.335944,0.069059,
-0.000570,0.000000,1.517511,0.357658,0.378218,0.853834,
0.410298,0.000000,1.345405,0.357658,0.378218,0.853834,
0.192628,0.380510,1.268031,0.357658,0.378218,0.853834,
-0.000570,0.000000,1.517511,0.296553,-0.640979,0.707956,
0.183178,-0.259167,1.205894,0.296553,-0.640979,0.707956,
0.410298,0.000000,1.345405,0.296553,-0.640979,0.707956,
0.183178,-0.259167,1.205894,0.609971,-0.716615,0.338228,
0.505238,-0.184567,0.783138,0.609971,-0.716615,0.338228,
0.410298,0.000000,1.345405,0.609971,-0.716615,0.338228,
-0.860548,0.000000,0.459731,-0.838303,0.103587,0.535273,
-0.384104,0.000000,1.205901,-0.838303,0.103587,0.535273,
-0.624286,0.240846,0.783138,-0.838303,0.103587,0.535273,
-0.860548,0.000000,0.459731,-0.842801,-0.009261,0.538145,
-0.676801,-0.160374,0.744743,-0.842801,-0.009261,0.538145,
-0.384104,0.000000,1.205901,-0.842801,-0.009261,0.538145,
-0.676801,-0.160374,0.744743,-0.655621,-0.479865,0.583001,
-0.193767,-0.184567,1.268031,-0.655621,-0.479865,0.583001,
-0.384104,0.000000,1.205901,-0.655621,-0.479865,0.583001,
-0.411437,0.000000,-1.208735,-0.832742,0.235206,-0.501218,
-0.860548,0.000000,-0.462565,-0.832742,0.235206,-0.501218,
-0.701558,0.184567,-0.640105,-0.832742,0.235206,-0.501218,
-0.411437,0.000000,-1.208735,-0.854236,-0.076976,-0.514155,
-0.676801,-0.135416,-0.747576,-0.854236,-0.076976,-0.514155,
-0.860548,0.000000,-0.462565,-0.854236,-0.076976,-0.514155,
-0.676801,-0.135416,-0.747576,-0.826542,-0.470153,-0.309491,
-0.963457,-0.122647,-0.001417,-0.826542,-0.470153,-0.309491,
-0.860548,0.000000,-0.462565,-0.826542,-0.470153,-0.309491,
0.410298,0.000000,-1.208735,0.557388,0.586769,-0.587385,
-0.000570,0.000000,-1.598620,0.557388,0.586769,-0.587385,
0.192628,0.247332,-1.168216,0.557388,0.586769,-0.587385,
0.410298,0.000000,-1.208735,0.426997,-0.784344,-0.449976,
0.183178,-0.123648,-1.208727,0.426997,-0.784344,-0.449976,
-0.000570,0.000000,-1.598620,0.426997,-0.784344,-0.449976,
0.183178,-0.123648,-1.208727,0.208625,-0.899617,-0.383620,
-0.193767,-0.184567,-1.270864,0.208625,-0.899617,-0.383620,
-0.000570,0.000000,-1.598620,0.208625,-0.899617,-0.383620,
0.410298,0.000000,1.345405,0.807034,0.518953,0.281752,
0.480481,0.216971,0.744743,0.807034,0.518953,0.281752,
0.192628,0.380510,1.268031,0.807034,0.518953,0.281752,
0.410298,0.000000,1.345405,0.977784,-0.205778,0.039916,
0.469048,0.098790,0.415557,0.977784,-0.205778,0.039916,
0.480481,0.216971,0.744743,0.977784,-0.205778,0.039916,
0.469048,0.098790,0.415557,0.901046,0.397319,-0.173935,
0.272043,0.363024,-0.001417,0.901046,0.397319,-0.173935,
0.480481,0.216971,0.744743,0.901046,0.397319,-0.173935,
-0.384104,0.000000,1.205901,-0.528009,0.573263,0.626559,
-0.184317,0.365906,1.039482,-0.528009,0.573263,0.626559,
-0.624286,0.240846,0.783138,-0.528009,0.573263,0.626559,
-0.384104,0.000000,1.205901,-0.517247,0.571971,0.636636,
-0.000570,0.000000,1.517511,-0.517247,0.571971,0.636636,
-0.184317,0.365906,1.039482,-0.517247,0.571971,0.636636,
-0.000570,0.000000,1.517511,-0.417595,0.636913,0.648041,
0.192628,0.380510,1.268031,-0.417595,0.636913,0.648041,
-0.184317,0.365906,1.039482,-0.417595,0.636913,0.648041,
-0.860548,0.000000,-0.462565,-0.845037,0.449764,-0.289178,
-0.902876,0.216971,-0.001417,-0.845037,0.449764,-0.289178,
-0.701558,0.184567,-0.640105,-0.845037,0.449764,-0.289178,
-0.860548,0.000000,-0.462565,-0.981498,-0.191474,-0.000000,
-0.860548,0.000000,0.459731,-0.981498,-0.191474,-0.000000,
-0.902876,0.216971,-0.001417,-0.981498,-0.191474,-0.000000,
-0.860548,0.000000,0.459731,-0.847800,0.445630,0.287486,
-0.624286,0.240846,0.783138,-0.847800,0.445630,0.287486,
-0.902876,0.216971,-0.001417,-0.847800,0.445630,0.287486,
-0.000570,0.000000,-1.598620,0.380518,0.717678,-0.583219,
-0.184317,0.414270,-1.208727,0.380518,0.717678,-0.583219,
0.192628,0.247332,-1.168216,0.380518,0.717678,-0.583219,
-0.000570,0.000000,-1.598620,-0.644007,0.353083,-0.678665,
-0.411437,0.000000,-1.208735,-0.644007,0.353083,-0.678665,
-0.184317,0.414270,-1.208727,-0.644007,0.353083,-0.678665,
-0.411437,0.000000,-1.208735,-0.750766,0.411610,-0.516650,
-0.701558,0.184567,-0.640105,-0.750766,0.411610,-0.516650,
-0.184317,0.414270,-1.208727,-0.750766,0.411610,-0.516650,
0.384591,0.090319,-0.462565,0.963299,0.254811,0.084418,
0.344697,0.335558,-0.747576,0.963299,0.254811,0.084418,
0.272043,0.363024,-0.001417,0.963299,0.254811,0.084418,
0.384591,0.090319,-0.462565,0.984494,0.174957,0.012740,
0.410298,0.000000,-1.208735,0.984494,0.174957,0.012740,
0.344697,0.335558,-0.747576,0.984494,0.174957,0.012740,
0.410298,0.000000,-1.208735,0.664307,0.646184,-0.375691,
0.192628,0.247332,-1.168216,0.664307,0.646184,-0.375691,
0.344697,0.335558,-0.747576,0.664307,0.646184,-0.375691,
-0.002332,0.213378,0.631682,0.652029,0.752355,0.093919,
0.012647,0.279427,-0.001417,0.652029,0.752355,0.093919,
-0.280090,0.522819,0.081168,0.652029,0.752355,0.093919,
-0.002332,0.213378,0.631682,-0.031512,0.994185,0.102975,
0.480481,0.216971,0.744743,-0.031512,0.994185,0.102975,
0.012647,0.279427,-0.001417,-0.031512,0.994185,0.102975,
0.480481,0.216971,0.744743,-0.295985,0.918428,0.262456,
0.272043,0.363024,-0.001417,-0.295985,0.918428,0.262456,
0.012647,0.279427,-0.001417,-0.295985,0.918428,0.262456,
-0.605569,0.380903,0.277674,-0.063420,0.855963,0.513132,
-0.002332,0.213378,0.631682,-0.063420,0.855963,0.513132,
-0.280090,0.522819,0.081168,-0.063420,0.855963,0.513132,
-0.605569,0.380903,0.277674,0.360510,0.914958,-0.181338,
-0.184317,0.365906,1.039482,0.360510,0.914958,-0.181338,
-0.002332,0.213378,0.631682,0.360510,0.914958,-0.181338,
-0.184317,0.365906,1.039482,0.140043,0.946283,-0.291440,
0.192628,0.380510,1.268031,0.140043,0.946283,-0.291440,
-0.002332,0.213378,0.631682,0.140043,0.946283,-0.291440,
-0.352763,0.239456,-0.319506,-0.560542,0.720651,-0.407989,
-0.605569,0.380903,0.277674,-0.560542,0.720651,-0.407989,
-0.280090,0.522819,0.081168,-0.560542,0.720651,-0.407989,
-0.352763,0.239456,-0.319506,-0.217812,0.925012,-0.311304,
-0.902876,0.216971,-0.001417,-0.217812,0.925012,-0.311304,
-0.605569,0.380903,0.277674,-0.217812,0.925012,-0.311304,
-0.902876,0.216971,-0.001417,-0.605675,0.772308,0.191568,
-0.624286,0.240846,0.783138,-0.605675,0.772308,0.191568,
-0.605569,0.380903,0.277674,-0.605675,0.772308,0.191568,
-0.014225,0.327900,-0.747573,-0.637840,0.678600,-0.364229,
-0.352763,0.239456,-0.319506,-0.637840,0.678600,-0.364229,
-0.280090,0.522819,0.081168,-0.637840,0.678600,-0.364229,
-0.014225,0.327900,-0.747573,-0.016355,0.981669,0.189891,
-0.184317,0.414270,-1.208727,-0.016355,0.981669,0.189891,
-0.352763,0.239456,-0.319506,-0.016355,0.981669,0.189891,
-0.184317,0.414270,-1.208727,-0.274149,0.952129,0.135250,
-0.701558,0.184567,-0.640105,-0.274149,0.952129,0.135250,
-0.352763,0.239456,-0.319506,-0.274149,0.952129,0.135250,
0.012647,0.279427,-0.001417,0.643510,0.764978,0.026520,
-0.014225,0.327900,-0.747573,0.643510,0.764978,0.026520,
-0.280090,0.522819,0.081168,0.643510,0.764978,0.026520,
0.012647,0.279427,-0.001417,-0.021286,0.997621,0.065575,
0.344697,0.335558,-0.747576,-0.021286,0.997621,0.065575,
-0.014225,0.327900,-0.747573,-0.021286,0.997621,0.065575,
0.344697,0.335558,-0.747576,-0.020912,0.979982,-0.197984,
0.192628,0.247332,-1.168216,-0.020912,0.979982,-0.197984,
-0.014225,0.327900,-0.747573,-0.020912,0.979982,-0.197984
];
this.indices = [
0,1,2,
3,4,5,
6,7,8,
9,10,11,
12,13,14,
15,16,17,
18,19,20,
21,22,23,
24,25,26,
27,28,29,
30,31,32,
33,34,35,
36,37,38,
39,40,41,
42,43,44,
45,46,47,
48,49,50,
51,52,53,
54,55,56,
57,58,59,
60,61,62,
63,64,65,
66,67,68,
69,70,71,
72,73,74,
75,76,77,
78,79,80,
81,82,83,
84,85,86,
87,88,89,
90,91,92,
93,94,95,
96,97,98,
99,100,101,
102,103,104,
105,106,107,
108,109,110,
111,112,113,
114,115,116,
117,118,119,
120,121,122,
123,124,125,
126,127,128,
129,130,131,
132,133,134,
135,136,137,
138,139,140,
141,142,143,
144,145,146,
147,148,149,
150,151,152,
153,154,155,
156,157,158,
159,160,161,
162,163,164,
165,166,167,
168,169,170,
171,172,173,
174,175,176,
177,178,179,
180,181,182,
183,184,185,
186,187,188,
189,190,191,
192,193,194,
195,196,197,
198,199,200,
201,202,203,
204,205,206,
207,208,209,
210,211,212,
213,214,215,
216,217,218,
219,220,221,
222,223,224,
225,226,227,
228,229,230,
231,232,233,
234,235,236,
237,238,239
];
this.InitBuffers();
}
}
function loadImage ( path )
{
return new Promise ( (resolve, reject) =>
{
const img = new Image() ;
img.crossOrigin = 'Anonymous'; // to avoid CORS if used with Canvas
img.src = path ;
img.onload = () => {
resolve(img) ;
}
img.onerror = e => {
reject(e) ;
}
} )
} ;
function handleTexture(image, texture)
{
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);
gl.generateMipmap(gl.TEXTURE_2D);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
gl.bindTexture(gl.TEXTURE_2D, null);
}
class Sea extends Object3D {
constructor(program) {
super(program = waterProgram, [0.2, 0.2, 1.0, 1.0], [0.4, 0.4, 0.8, 1.0], [0.5, 0.5, 0.9, 1.0]);
this.texCoordLoc = gl.getAttribLocation(this.shader, "vTexCoord");
this.diffuseMapLoc = gl.getUniformLocation(this.shader, "diffuseMap");
// TODO 1.3: Hole Speicheradresse der Normal-Map-Shadervariable.
this.normalMapLoc = gl.getUniformLocation(this.shader, "normalMap")
for(let i = -10; i < 10; i += 0.5) {
for(let j = -10; j < 10; j += 0.5) {
let firstIndex = this.positions.length / 8;
this.indices.push(firstIndex, firstIndex + 1, firstIndex + 2);
this.indices.push(firstIndex + 2, firstIndex + 1, firstIndex + 3);
this.positions.push(i, -0.3, j, 0, 1, 0, 0, 0);
this.positions.push(i+0.5, -0.3, j, 0, 1, 0, 1, 0);
this.positions.push(i, -0.3, j+0.5, 0, 1, 0, 0, 1);
this.positions.push(i+0.5, -0.3, j+0.5, 0, 1, 0, 1, 1);
}
}
this.handleTextures();
}
async handleTextures(){
this.diffuseTexture = gl.createTexture();
let waterImage = await loadImage("water_diffuse.jpg");
handleTexture(waterImage, this.diffuseTexture);
// TODO 1.1: Erstelle analog zu diffuser Textur eine Normal Map für das Meer.
this.normalTexture = gl.createTexture();
let waterNormal = await loadImage("water_normal.jpg");
handleTexture(waterNormal, this.normalTexture);
this.InitBuffers();
}
Render() {
// Link data in VBO to shader variables
gl.bindBuffer(gl.ARRAY_BUFFER, this.posVBO);
gl.enableVertexAttribArray(this.posLoc);
gl.enableVertexAttribArray(this.normalLoc);
gl.enableVertexAttribArray(this.texCoordLoc);
gl.vertexAttribPointer(this.posLoc, 3, gl.FLOAT, false, 8 * 4, 0);
gl.vertexAttribPointer(this.normalLoc, 3, gl.FLOAT, false, 8 * 4, 3 * 4);
gl.vertexAttribPointer(this.texCoordLoc, 2, gl.FLOAT, false, 8 * 4, 6 * 4);
this.UpdateUniforms();
gl.activeTexture(gl.TEXTURE0);
gl.bindTexture(gl.TEXTURE_2D, this.diffuseTexture);
gl.uniform1i(this.diffuseMapLoc, 0);
// TODO 1.4: Verknüpfe Normal Map analog zu diffuser Map mit Shader.
gl.activeTexture(gl.TEXTURE1);
gl.bindTexture(gl.TEXTURE_2D, this.normalTexture);
gl.uniform1i(this.normalMapLoc, 1);
// Render
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indexVBO);
gl.drawElements(gl.TRIANGLES, this.indices.length, gl.UNSIGNED_SHORT, 0);
}
}