diff --git a/public/cube.js b/public/cube.js index 0f25fb6..31079cb 100644 --- a/public/cube.js +++ b/public/cube.js @@ -5,6 +5,9 @@ const main = () => { var Renderer = new GL.Renderer() var Scene = new GL.Scene() var Camera = new GL.Camera() + Camera.position.y = 1 + Camera.rotation.x = 30 + var SimpleController = new GL.SimpleController(Camera) var Shader = GL.SimpleShader() @@ -14,7 +17,7 @@ const main = () => { var Mesh = GL.Cube() var Cube = new GL.Entity(Mesh) - Cube.position.z = 10 + Cube.position.z = 2 Scene.add(Material, Cube) @@ -22,7 +25,7 @@ const main = () => { GL.Loop(() => { Renderer.draw(Scene, Camera) - Cube.rotation.add(new GL.Vec3(1,1,1)) + Cube.rotation.add(new GL.Vec3(0,1,0)) SimpleController.update(GL.DT) }); } diff --git a/public/gl/core/Camera.js b/public/gl/core/Camera.js index 353b5e9..b9b7686 100644 --- a/public/gl/core/Camera.js +++ b/public/gl/core/Camera.js @@ -26,15 +26,15 @@ export class Camera { d[0] = u.x; d[1] = v.x; d[2] = w.x; - d[3] = 1 + d[3] = 0 d[4] = u.y; d[5] = v.y; d[6] = w.y; - d[7] = 1 + d[7] = 0 d[8] = u.z; d[9] = v.z; d[10] = w.z; - d[11] = 1 + d[11] = 0 d[12] = -u.dot(this.position) d[13] = -v.dot(this.position) d[14] = -w.dot(this.position) diff --git a/public/gl/core/Mesh.js b/public/gl/core/Mesh.js index b35c13c..0d80205 100644 --- a/public/gl/core/Mesh.js +++ b/public/gl/core/Mesh.js @@ -8,6 +8,7 @@ export class Mesh { #vertexCount #count #id + #indicies constructor(vertexCount) { this.#id = ext.createVertexArrayOES() @@ -15,6 +16,7 @@ export class Mesh { Mesh.#vaos.push(this.#id) this.#vertexCount = vertexCount this.#count = 0 + this.#indicies = 0 } store(data, dim) { @@ -22,12 +24,21 @@ export class Mesh { Mesh.#vbos.push(id) gl.bindBuffer(gl.ARRAY_BUFFER, id) gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(data), gl.STATIC_DRAW) - gl.vertexAttribPointer(this.#count, dim, gl.FLOAT, false, Float32Array.BYTES_PER_ELEMENT * dim, 0) + gl.vertexAttribPointer(this.#count, dim, gl.FLOAT, gl.FALSE, 0, 0) gl.enableVertexAttribArray(this.#count) this.#count++; return this } + indicies(data) { + let id = gl.createBuffer() + Mesh.#vbos.push(id) + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, id) + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(data), gl.STATIC_DRAW) + this.#indicies = data.length + return this + } + finish() { this.unbind() return this @@ -35,14 +46,24 @@ export class Mesh { bind() { ext.bindVertexArrayOES(this.#id) + for(let i = 0; i < this.#count; i++) { + gl.enableVertexAttribArray(i) + } } unbind() { ext.bindVertexArrayOES(null) + for(let i = 0; i < this.#count; i++) { + gl.disableVertexAttribArray(i) + } } draw() { - gl.drawArrays(gl.TRIANGLES, 0, this.#vertexCount) + if(this.#indicies > 0) { + gl.drawElements(gl.TRIANGLES, this.#indicies, gl.UNSIGNED_SHORT, 0) + } else { + gl.drawArrays(gl.TRIANGLES, 0, this.#vertexCount) + } } } \ No newline at end of file diff --git a/public/gl/core/Renderer.js b/public/gl/core/Renderer.js index 38a7974..76dfb82 100644 --- a/public/gl/core/Renderer.js +++ b/public/gl/core/Renderer.js @@ -43,9 +43,7 @@ export class Renderer { const material = scene.materials[material_id] gl.enable(gl.DEPTH_TEST); gl.enable(gl.CULL_FACE); - gl.cullFace(gl.BACK); - gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); - gl.clearColor(0, 0, 0, 1); + gl.cullFace(gl.FRONT); material.bind() material.shader.loadMat4("proj", this.proj()) material.shader.loadMat4("view", camera.view()) @@ -64,14 +62,14 @@ export class Renderer { const proj = new Mat4() const d = proj.data - const tanHalfFovy = Math.tan((this.FOV * (Math.PI/180))/ 2.0); + const tanHalfFovy = Math.tan((this.FOV * (Math.PI/180)) / 2.0); const aspect = canvas.width / canvas.height d[0] = 1.0 / (aspect * tanHalfFovy) d[5] = 1.0 / tanHalfFovy d[10] = this.FAR / (this.FAR - this.NEAR) d[11] = 1.0 - d[14] = -(this.FAR * this.NEAR) / (this.FAR) + d[14] = -(this.FAR * this.NEAR) / (this.FAR - this.NEAR) return proj } diff --git a/public/gl/geometry/Cube.js b/public/gl/geometry/Cube.js new file mode 100644 index 0000000..d488fc7 --- /dev/null +++ b/public/gl/geometry/Cube.js @@ -0,0 +1,40 @@ +import { OBJ } from './OBJ.js' + +export const Cube = () => { + + const obj = ` + v -0.500000 -0.500000 0.500000 + v 0.500000 -0.500000 0.500000 + v -0.500000 0.500000 0.500000 + v 0.500000 0.500000 0.500000 + v -0.500000 0.500000 -0.500000 + v 0.500000 0.500000 -0.500000 + v -0.500000 -0.500000 -0.500000 + v 0.500000 -0.500000 -0.500000 + vt 0.000000 0.000000 + vt 1.000000 0.000000 + vt 0.000000 1.000000 + vt 1.000000 1.000000 + vn 0.000000 0.000000 1.000000 + vn 0.000000 1.000000 0.000000 + vn 0.000000 0.000000 -1.000000 + vn 0.000000 -1.000000 0.000000 + vn 1.000000 0.000000 0.000000 + vn -1.000000 0.000000 0.000000 + f 1/1/1 2/2/1 3/3/1 + f 3/3/1 2/2/1 4/4/1 + f 3/1/2 4/2/2 5/3/2 + f 5/3/2 4/2/2 6/4/2 + f 5/4/3 6/3/3 7/2/3 + f 7/2/3 6/3/3 8/1/3 + f 7/1/4 8/2/4 1/3/4 + f 1/3/4 8/2/4 2/4/4 + f 2/1/5 8/2/5 4/3/5 + f 4/3/5 8/2/5 6/4/5 + f 7/1/6 1/2/6 5/3/6 + f 5/3/6 1/2/6 3/4/6 + ` + + return OBJ(obj) + +} \ No newline at end of file diff --git a/public/gl/geometry/OBJ.js b/public/gl/geometry/OBJ.js new file mode 100644 index 0000000..49fd802 --- /dev/null +++ b/public/gl/geometry/OBJ.js @@ -0,0 +1,47 @@ +import { Mesh } from '../core/Mesh.js' + +export const OBJ = (obj) => { + + var verticies = [] + var indicies = [] + var normals = [] + var uvs = [] + + var indexedNormals = []; + var indexedUvs = []; + + obj.split('\n').forEach((line) => { + const tokens = line.toLowerCase().trim().split(' ').filter((str) => str !== '') + if(tokens.length < 1) return; + if(tokens[0] === 'v') { + verticies.push(parseFloat(tokens[1])) + verticies.push(parseFloat(tokens[2])) + verticies.push(parseFloat(tokens[3])) + } else if(tokens[0] === 'vt') { + uvs.push(parseFloat(tokens[1])) + uvs.push(parseFloat(tokens[2])) + } else if(tokens[0] === 'vn') { + normals.push(parseFloat(tokens[1])) + normals.push(parseFloat(tokens[2])) + normals.push(parseFloat(tokens[3])) + } else if(tokens[0] === 'f') { + for (let i = 1; i < 4; i++) { + const index = tokens[i].split('/').filter((str) => str !== '').map((s) => parseInt(s) - 1) + indicies.push(index[0]) + indexedUvs[index[0]*2] = uvs[index[1]*2] + indexedUvs[index[0]*2+1] = uvs[index[1]*2+1] + indexedNormals[index[0]*3] = normals[index[2]*3] + indexedNormals[index[0]*3+1] = normals[index[2]*3+1] + indexedNormals[index[0]*3+2] = normals[index[2]*3+2] + } + } + }) + + return new Mesh(indicies.length) + .indicies(indicies) + .store(verticies, 3) + .store(indexedNormals, 3) + .store(indexedUvs, 2) + .finish() + +} \ No newline at end of file diff --git a/public/gl/geometry/Sphere.js b/public/gl/geometry/Sphere.js new file mode 100644 index 0000000..1cf5ec3 --- /dev/null +++ b/public/gl/geometry/Sphere.js @@ -0,0 +1,2497 @@ +import { OBJ } from './OBJ.js' + +export const Sphere = () => { + + const obj = ` + v 0.000000 1.000000 -0.000000 + v -0.000000 0.980785 -0.195090 + v -0.038060 0.980785 -0.191342 + v -0.074658 0.980785 -0.180240 + v -0.108386 0.980785 -0.162212 + v -0.137950 0.980785 -0.137950 + v -0.162212 0.980785 -0.108386 + v -0.180240 0.980785 -0.074658 + v -0.191342 0.980785 -0.038060 + v -0.195090 0.980785 0.000000 + v -0.191342 0.980785 0.038060 + v -0.180240 0.980785 0.074658 + v -0.162212 0.980785 0.108386 + v -0.137950 0.980785 0.137950 + v -0.108386 0.980785 0.162212 + v -0.074658 0.980785 0.180240 + v -0.038060 0.980785 0.191342 + v 0.000000 0.980785 0.195090 + v 0.038060 0.980785 0.191342 + v 0.074658 0.980785 0.180240 + v 0.108387 0.980785 0.162212 + v 0.137950 0.980785 0.137950 + v 0.162212 0.980785 0.108386 + v 0.180240 0.980785 0.074658 + v 0.191342 0.980785 0.038060 + v 0.195090 0.980785 -0.000000 + v 0.191342 0.980785 -0.038061 + v 0.180240 0.980785 -0.074658 + v 0.162211 0.980785 -0.108387 + v 0.137949 0.980785 -0.137950 + v 0.108386 0.980785 -0.162212 + v 0.074657 0.980785 -0.180240 + v 0.038060 0.980785 -0.191342 + v -0.000000 0.923880 -0.382683 + v -0.074658 0.923880 -0.375330 + v -0.146447 0.923880 -0.353553 + v -0.212607 0.923880 -0.318190 + v -0.270598 0.923880 -0.270598 + v -0.318190 0.923880 -0.212607 + v -0.353553 0.923880 -0.146447 + v -0.375330 0.923880 -0.074658 + v -0.382683 0.923880 0.000000 + v -0.375330 0.923880 0.074658 + v -0.353553 0.923880 0.146447 + v -0.318190 0.923880 0.212608 + v -0.270598 0.923880 0.270598 + v -0.212607 0.923880 0.318190 + v -0.146446 0.923880 0.353554 + v -0.074657 0.923880 0.375330 + v 0.000000 0.923880 0.382683 + v 0.074658 0.923880 0.375330 + v 0.146447 0.923880 0.353553 + v 0.212608 0.923880 0.318189 + v 0.270598 0.923880 0.270598 + v 0.318190 0.923880 0.212607 + v 0.353554 0.923880 0.146446 + v 0.375330 0.923880 0.074657 + v 0.382683 0.923880 -0.000001 + v 0.375330 0.923880 -0.074658 + v 0.353553 0.923880 -0.146447 + v 0.318189 0.923880 -0.212608 + v 0.270598 0.923880 -0.270599 + v 0.212607 0.923880 -0.318190 + v 0.146446 0.923880 -0.353554 + v 0.074657 0.923880 -0.375330 + v -0.000000 0.831470 -0.555570 + v -0.108386 0.831470 -0.544895 + v -0.212607 0.831470 -0.513280 + v -0.308658 0.831470 -0.461940 + v -0.392847 0.831470 -0.392847 + v -0.461940 0.831470 -0.308658 + v -0.513280 0.831470 -0.212607 + v -0.544895 0.831470 -0.108386 + v -0.555570 0.831470 0.000000 + v -0.544895 0.831470 0.108387 + v -0.513280 0.831470 0.212608 + v -0.461940 0.831470 0.308659 + v -0.392847 0.831470 0.392848 + v -0.308658 0.831470 0.461940 + v -0.212607 0.831470 0.513280 + v -0.108386 0.831470 0.544895 + v 0.000001 0.831470 0.555570 + v 0.108387 0.831470 0.544895 + v 0.212608 0.831470 0.513280 + v 0.308659 0.831470 0.461939 + v 0.392848 0.831470 0.392847 + v 0.461940 0.831470 0.308658 + v 0.513280 0.831470 0.212607 + v 0.544895 0.831470 0.108386 + v 0.555570 0.831470 -0.000001 + v 0.544895 0.831470 -0.108387 + v 0.513280 0.831470 -0.212608 + v 0.461939 0.831470 -0.308659 + v 0.392847 0.831470 -0.392848 + v 0.308657 0.831470 -0.461940 + v 0.212606 0.831470 -0.513280 + v 0.108385 0.831470 -0.544895 + v -0.000000 0.707107 -0.707107 + v -0.137950 0.707107 -0.693520 + v -0.270598 0.707107 -0.653282 + v -0.392847 0.707107 -0.587938 + v -0.500000 0.707107 -0.500000 + v -0.587938 0.707107 -0.392847 + v -0.653282 0.707107 -0.270598 + v -0.693520 0.707107 -0.137950 + v -0.707107 0.707107 0.000000 + v -0.693520 0.707107 0.137950 + v -0.653281 0.707107 0.270598 + v -0.587938 0.707107 0.392848 + v -0.500000 0.707107 0.500000 + v -0.392847 0.707107 0.587938 + v -0.270598 0.707107 0.653282 + v -0.137949 0.707107 0.693520 + v 0.000001 0.707107 0.707107 + v 0.137950 0.707107 0.693520 + v 0.270599 0.707107 0.653281 + v 0.392848 0.707107 0.587937 + v 0.500001 0.707107 0.499999 + v 0.587938 0.707107 0.392847 + v 0.653282 0.707107 0.270597 + v 0.693520 0.707107 0.137949 + v 0.707107 0.707107 -0.000001 + v 0.693520 0.707107 -0.137951 + v 0.653281 0.707107 -0.270599 + v 0.587937 0.707107 -0.392849 + v 0.499999 0.707107 -0.500001 + v 0.392846 0.707107 -0.587939 + v 0.270597 0.707107 -0.653282 + v 0.137948 0.707107 -0.693520 + v -0.000000 0.555570 -0.831470 + v -0.162212 0.555570 -0.815493 + v -0.318190 0.555570 -0.768178 + v -0.461940 0.555570 -0.691342 + v -0.587938 0.555570 -0.587938 + v -0.691342 0.555570 -0.461940 + v -0.768178 0.555570 -0.318190 + v -0.815493 0.555570 -0.162211 + v -0.831470 0.555570 0.000000 + v -0.815493 0.555570 0.162212 + v -0.768178 0.555570 0.318190 + v -0.691341 0.555570 0.461940 + v -0.587937 0.555570 0.587938 + v -0.461939 0.555570 0.691342 + v -0.318189 0.555570 0.768178 + v -0.162211 0.555570 0.815493 + v 0.000001 0.555570 0.831470 + v 0.162213 0.555570 0.815493 + v 0.318190 0.555570 0.768177 + v 0.461941 0.555570 0.691341 + v 0.587939 0.555570 0.587937 + v 0.691342 0.555570 0.461939 + v 0.768178 0.555570 0.318189 + v 0.815493 0.555570 0.162210 + v 0.831470 0.555570 -0.000001 + v 0.815493 0.555570 -0.162213 + v 0.768177 0.555570 -0.318191 + v 0.691341 0.555570 -0.461941 + v 0.587937 0.555570 -0.587939 + v 0.461938 0.555570 -0.691343 + v 0.318188 0.555570 -0.768178 + v 0.162210 0.555570 -0.815494 + v -0.000000 0.382683 -0.923880 + v -0.180240 0.382683 -0.906127 + v -0.353553 0.382683 -0.853553 + v -0.513280 0.382683 -0.768178 + v -0.653281 0.382683 -0.653281 + v -0.768178 0.382683 -0.513280 + v -0.853553 0.382683 -0.353553 + v -0.906127 0.382683 -0.180240 + v -0.923880 0.382683 0.000000 + v -0.906127 0.382683 0.180240 + v -0.853553 0.382683 0.353554 + v -0.768178 0.382683 0.513280 + v -0.653281 0.382683 0.653282 + v -0.513279 0.382683 0.768178 + v -0.353553 0.382683 0.853554 + v -0.180239 0.382683 0.906128 + v 0.000001 0.382683 0.923880 + v 0.180241 0.382683 0.906127 + v 0.353554 0.382683 0.853553 + v 0.513281 0.382683 0.768177 + v 0.653282 0.382683 0.653281 + v 0.768178 0.382683 0.513279 + v 0.853554 0.382683 0.353552 + v 0.906128 0.382683 0.180239 + v 0.923880 0.382683 -0.000001 + v 0.906127 0.382683 -0.180242 + v 0.853553 0.382683 -0.353555 + v 0.768177 0.382683 -0.513281 + v 0.653280 0.382683 -0.653283 + v 0.513278 0.382683 -0.768179 + v 0.353552 0.382683 -0.853554 + v 0.180238 0.382683 -0.906128 + v -0.000000 0.195090 -0.980785 + v -0.191342 0.195090 -0.961940 + v -0.375330 0.195090 -0.906127 + v -0.544895 0.195090 -0.815493 + v -0.693520 0.195090 -0.693520 + v -0.815493 0.195090 -0.544895 + v -0.906127 0.195090 -0.375330 + v -0.961940 0.195090 -0.191341 + v -0.980785 0.195090 0.000000 + v -0.961940 0.195090 0.191342 + v -0.906127 0.195090 0.375331 + v -0.815493 0.195090 0.544896 + v -0.693519 0.195090 0.693520 + v -0.544895 0.195090 0.815494 + v -0.375330 0.195090 0.906128 + v -0.191341 0.195090 0.961940 + v 0.000001 0.195090 0.980785 + v 0.191343 0.195090 0.961940 + v 0.375331 0.195090 0.906127 + v 0.544896 0.195090 0.815492 + v 0.693521 0.195090 0.693519 + v 0.815494 0.195090 0.544894 + v 0.906128 0.195090 0.375329 + v 0.961940 0.195090 0.191340 + v 0.980785 0.195090 -0.000002 + v 0.961939 0.195090 -0.191343 + v 0.906127 0.195090 -0.375332 + v 0.815492 0.195090 -0.544897 + v 0.693519 0.195090 -0.693521 + v 0.544893 0.195090 -0.815494 + v 0.375328 0.195090 -0.906128 + v 0.191340 0.195090 -0.961940 + v -0.000000 0.000000 -1.000000 + v -0.195090 0.000000 -0.980785 + v -0.382683 0.000000 -0.923880 + v -0.555570 0.000000 -0.831470 + v -0.707107 0.000000 -0.707107 + v -0.831470 0.000000 -0.555570 + v -0.923880 0.000000 -0.382683 + v -0.980785 0.000000 -0.195090 + v -1.000000 0.000000 0.000000 + v -0.980785 0.000000 0.195091 + v -0.923879 0.000000 0.382684 + v -0.831469 0.000000 0.555571 + v -0.707106 0.000000 0.707107 + v -0.555570 0.000000 0.831470 + v -0.382683 0.000000 0.923880 + v -0.195089 0.000000 0.980785 + v 0.000001 0.000000 1.000000 + v 0.195091 0.000000 0.980785 + v 0.382684 0.000000 0.923879 + v 0.555571 0.000000 0.831469 + v 0.707108 0.000000 0.707106 + v 0.831470 0.000000 0.555569 + v 0.923880 0.000000 0.382682 + v 0.980786 0.000000 0.195089 + v 1.000000 0.000000 -0.000002 + v 0.980785 0.000000 -0.195092 + v 0.923879 0.000000 -0.382685 + v 0.831469 0.000000 -0.555572 + v 0.707105 0.000000 -0.707108 + v 0.555569 0.000000 -0.831471 + v 0.382681 0.000000 -0.923880 + v 0.195088 0.000000 -0.980786 + v -0.000000 -0.195090 -0.980785 + v -0.191342 -0.195090 -0.961940 + v -0.375330 -0.195090 -0.906127 + v -0.544895 -0.195090 -0.815493 + v -0.693520 -0.195090 -0.693520 + v -0.815493 -0.195090 -0.544895 + v -0.906128 -0.195090 -0.375330 + v -0.961940 -0.195090 -0.191341 + v -0.980785 -0.195090 0.000000 + v -0.961940 -0.195090 0.191342 + v -0.906127 -0.195090 0.375331 + v -0.815493 -0.195090 0.544896 + v -0.693519 -0.195090 0.693520 + v -0.544895 -0.195090 0.815494 + v -0.375330 -0.195090 0.906128 + v -0.191341 -0.195090 0.961940 + v 0.000001 -0.195090 0.980785 + v 0.191343 -0.195090 0.961940 + v 0.375331 -0.195090 0.906127 + v 0.544896 -0.195090 0.815492 + v 0.693521 -0.195090 0.693519 + v 0.815494 -0.195090 0.544894 + v 0.906128 -0.195090 0.375329 + v 0.961940 -0.195090 0.191340 + v 0.980785 -0.195090 -0.000002 + v 0.961939 -0.195090 -0.191343 + v 0.906127 -0.195090 -0.375332 + v 0.815492 -0.195090 -0.544897 + v 0.693519 -0.195090 -0.693521 + v 0.544894 -0.195090 -0.815494 + v 0.375328 -0.195090 -0.906128 + v 0.191340 -0.195090 -0.961940 + v -0.000000 -0.382683 -0.923880 + v -0.180240 -0.382683 -0.906127 + v -0.353553 -0.382683 -0.853553 + v -0.513280 -0.382683 -0.768178 + v -0.653282 -0.382683 -0.653282 + v -0.768178 -0.382683 -0.513280 + v -0.853553 -0.382683 -0.353553 + v -0.906128 -0.382683 -0.180240 + v -0.923880 -0.382683 0.000000 + v -0.906127 -0.382683 0.180240 + v -0.853553 -0.382683 0.353554 + v -0.768178 -0.382683 0.513280 + v -0.653281 -0.382683 0.653282 + v -0.513279 -0.382683 0.768178 + v -0.353553 -0.382683 0.853554 + v -0.180239 -0.382683 0.906128 + v 0.000001 -0.382683 0.923880 + v 0.180241 -0.382683 0.906127 + v 0.353554 -0.382683 0.853553 + v 0.513281 -0.382683 0.768177 + v 0.653282 -0.382683 0.653281 + v 0.768179 -0.382683 0.513279 + v 0.853554 -0.382683 0.353552 + v 0.906128 -0.382683 0.180239 + v 0.923880 -0.382683 -0.000001 + v 0.906127 -0.382683 -0.180242 + v 0.853553 -0.382683 -0.353555 + v 0.768177 -0.382683 -0.513281 + v 0.653280 -0.382683 -0.653283 + v 0.513278 -0.382683 -0.768179 + v 0.353552 -0.382683 -0.853554 + v 0.180238 -0.382683 -0.906128 + v -0.000000 -0.555570 -0.831470 + v -0.162212 -0.555570 -0.815493 + v -0.318190 -0.555570 -0.768178 + v -0.461940 -0.555570 -0.691342 + v -0.587938 -0.555570 -0.587938 + v -0.691342 -0.555570 -0.461940 + v -0.768178 -0.555570 -0.318190 + v -0.815493 -0.555570 -0.162211 + v -0.831470 -0.555570 0.000000 + v -0.815493 -0.555570 0.162212 + v -0.768178 -0.555570 0.318190 + v -0.691342 -0.555570 0.461940 + v -0.587937 -0.555570 0.587938 + v -0.461939 -0.555570 0.691342 + v -0.318189 -0.555570 0.768178 + v -0.162211 -0.555570 0.815493 + v 0.000001 -0.555570 0.831470 + v 0.162213 -0.555570 0.815493 + v 0.318191 -0.555570 0.768177 + v 0.461941 -0.555570 0.691341 + v 0.587939 -0.555570 0.587937 + v 0.691342 -0.555570 0.461939 + v 0.768178 -0.555570 0.318189 + v 0.815493 -0.555570 0.162210 + v 0.831470 -0.555570 -0.000001 + v 0.815493 -0.555570 -0.162213 + v 0.768177 -0.555570 -0.318191 + v 0.691341 -0.555570 -0.461941 + v 0.587937 -0.555570 -0.587939 + v 0.461938 -0.555570 -0.691343 + v 0.318188 -0.555570 -0.768178 + v 0.162210 -0.555570 -0.815494 + v -0.000000 -0.707107 -0.707107 + v -0.137950 -0.707107 -0.693520 + v -0.270598 -0.707107 -0.653281 + v -0.392847 -0.707107 -0.587938 + v -0.500000 -0.707107 -0.500000 + v -0.587938 -0.707107 -0.392847 + v -0.653282 -0.707107 -0.270598 + v -0.693520 -0.707107 -0.137950 + v -0.707107 -0.707107 0.000000 + v -0.693520 -0.707107 0.137950 + v -0.653281 -0.707107 0.270598 + v -0.587938 -0.707107 0.392848 + v -0.500000 -0.707107 0.500000 + v -0.392847 -0.707107 0.587938 + v -0.270598 -0.707107 0.653282 + v -0.137949 -0.707107 0.693520 + v 0.000001 -0.707107 0.707107 + v 0.137950 -0.707107 0.693520 + v 0.270599 -0.707107 0.653281 + v 0.392848 -0.707107 0.587937 + v 0.500001 -0.707107 0.499999 + v 0.587938 -0.707107 0.392847 + v 0.653282 -0.707107 0.270597 + v 0.693520 -0.707107 0.137949 + v 0.707107 -0.707107 -0.000001 + v 0.693520 -0.707107 -0.137951 + v 0.653281 -0.707107 -0.270599 + v 0.587937 -0.707107 -0.392849 + v 0.499999 -0.707107 -0.500001 + v 0.392846 -0.707107 -0.587939 + v 0.270597 -0.707107 -0.653282 + v 0.137948 -0.707107 -0.693520 + v -0.000000 -0.831470 -0.555570 + v -0.108386 -0.831470 -0.544895 + v -0.212607 -0.831470 -0.513280 + v -0.308658 -0.831470 -0.461940 + v -0.392847 -0.831470 -0.392847 + v -0.461940 -0.831470 -0.308658 + v -0.513280 -0.831470 -0.212607 + v -0.544895 -0.831470 -0.108386 + v -0.555570 -0.831470 0.000000 + v -0.544895 -0.831470 0.108387 + v -0.513280 -0.831470 0.212608 + v -0.461940 -0.831470 0.308659 + v -0.392847 -0.831470 0.392848 + v -0.308658 -0.831470 0.461940 + v -0.212607 -0.831470 0.513280 + v -0.108386 -0.831470 0.544895 + v 0.000001 -0.831470 0.555570 + v 0.108387 -0.831470 0.544895 + v 0.212608 -0.831470 0.513280 + v 0.308659 -0.831470 0.461939 + v 0.392848 -0.831470 0.392847 + v 0.461940 -0.831470 0.308658 + v 0.513280 -0.831470 0.212607 + v 0.544895 -0.831470 0.108386 + v 0.555570 -0.831470 -0.000001 + v 0.544895 -0.831470 -0.108387 + v 0.513280 -0.831470 -0.212608 + v 0.461939 -0.831470 -0.308659 + v 0.392847 -0.831470 -0.392848 + v 0.308657 -0.831470 -0.461940 + v 0.212606 -0.831470 -0.513280 + v 0.108385 -0.831470 -0.544895 + v -0.000000 -0.923880 -0.382683 + v -0.074658 -0.923880 -0.375330 + v -0.146447 -0.923880 -0.353553 + v -0.212607 -0.923880 -0.318190 + v -0.270598 -0.923880 -0.270598 + v -0.318190 -0.923880 -0.212607 + v -0.353553 -0.923880 -0.146446 + v -0.375330 -0.923880 -0.074658 + v -0.382683 -0.923880 0.000000 + v -0.375330 -0.923880 0.074658 + v -0.353553 -0.923880 0.146447 + v -0.318189 -0.923880 0.212608 + v -0.270598 -0.923880 0.270598 + v -0.212607 -0.923880 0.318190 + v -0.146446 -0.923880 0.353553 + v -0.074657 -0.923880 0.375330 + v 0.000000 -0.923880 0.382683 + v 0.074658 -0.923880 0.375330 + v 0.146447 -0.923880 0.353553 + v 0.212608 -0.923880 0.318189 + v 0.270598 -0.923880 0.270598 + v 0.318190 -0.923880 0.212607 + v 0.353553 -0.923880 0.146446 + v 0.375330 -0.923880 0.074657 + v 0.382683 -0.923880 -0.000001 + v 0.375330 -0.923880 -0.074658 + v 0.353553 -0.923880 -0.146447 + v 0.318189 -0.923880 -0.212608 + v 0.270597 -0.923880 -0.270598 + v 0.212607 -0.923880 -0.318190 + v 0.146446 -0.923880 -0.353554 + v 0.074657 -0.923880 -0.375330 + v -0.000000 -0.980785 -0.195090 + v -0.038060 -0.980785 -0.191341 + v -0.074658 -0.980785 -0.180240 + v -0.108386 -0.980785 -0.162211 + v -0.137950 -0.980785 -0.137950 + v -0.162211 -0.980785 -0.108386 + v -0.180240 -0.980785 -0.074658 + v -0.191341 -0.980785 -0.038060 + v -0.195090 -0.980785 0.000000 + v -0.191341 -0.980785 0.038060 + v -0.180240 -0.980785 0.074658 + v -0.162211 -0.980785 0.108386 + v -0.137949 -0.980785 0.137950 + v -0.108386 -0.980785 0.162212 + v -0.074658 -0.980785 0.180240 + v -0.038060 -0.980785 0.191342 + v 0.000000 -0.980785 0.195090 + v 0.038060 -0.980785 0.191341 + v 0.074658 -0.980785 0.180240 + v 0.108386 -0.980785 0.162211 + v 0.137950 -0.980785 0.137949 + v 0.162212 -0.980785 0.108386 + v 0.180240 -0.980785 0.074657 + v 0.191342 -0.980785 0.038060 + v 0.195090 -0.980785 -0.000000 + v 0.191341 -0.980785 -0.038060 + v 0.180240 -0.980785 -0.074658 + v 0.162211 -0.980785 -0.108387 + v 0.137949 -0.980785 -0.137950 + v 0.108386 -0.980785 -0.162212 + v 0.074657 -0.980785 -0.180240 + v 0.038060 -0.980785 -0.191342 + v 0.000000 -1.000000 -0.000000 + + vt 0.000000 1.000000 0.000000 + vt 0.031250 1.000000 0.000000 + vt 0.062500 1.000000 0.000000 + vt 0.093750 1.000000 0.000000 + vt 0.125000 1.000000 0.000000 + vt 0.156250 1.000000 0.000000 + vt 0.187500 1.000000 0.000000 + vt 0.218750 1.000000 0.000000 + vt 0.250000 1.000000 0.000000 + vt 0.281250 1.000000 0.000000 + vt 0.312500 1.000000 0.000000 + vt 0.343750 1.000000 0.000000 + vt 0.375000 1.000000 0.000000 + vt 0.406250 1.000000 0.000000 + vt 0.437500 1.000000 0.000000 + vt 0.468750 1.000000 0.000000 + vt 0.500000 1.000000 0.000000 + vt 0.531250 1.000000 0.000000 + vt 0.562500 1.000000 0.000000 + vt 0.593750 1.000000 0.000000 + vt 0.625000 1.000000 0.000000 + vt 0.656250 1.000000 0.000000 + vt 0.687500 1.000000 0.000000 + vt 0.718750 1.000000 0.000000 + vt 0.750000 1.000000 0.000000 + vt 0.781250 1.000000 0.000000 + vt 0.812500 1.000000 0.000000 + vt 0.843750 1.000000 0.000000 + vt 0.875000 1.000000 0.000000 + vt 0.906250 1.000000 0.000000 + vt 0.937500 1.000000 0.000000 + vt 0.968750 1.000000 0.000000 + vt 1.000000 1.000000 0.000000 + vt 0.000000 0.937500 0.000000 + vt 0.031250 0.937500 0.000000 + vt 0.062500 0.937500 0.000000 + vt 0.093750 0.937500 0.000000 + vt 0.125000 0.937500 0.000000 + vt 0.156250 0.937500 0.000000 + vt 0.187500 0.937500 0.000000 + vt 0.218750 0.937500 0.000000 + vt 0.250000 0.937500 0.000000 + vt 0.281250 0.937500 0.000000 + vt 0.312500 0.937500 0.000000 + vt 0.343750 0.937500 0.000000 + vt 0.375000 0.937500 0.000000 + vt 0.406250 0.937500 0.000000 + vt 0.437500 0.937500 0.000000 + vt 0.468750 0.937500 0.000000 + vt 0.500000 0.937500 0.000000 + vt 0.531250 0.937500 0.000000 + vt 0.562500 0.937500 0.000000 + vt 0.593750 0.937500 0.000000 + vt 0.625000 0.937500 0.000000 + vt 0.656250 0.937500 0.000000 + vt 0.687500 0.937500 0.000000 + vt 0.718750 0.937500 0.000000 + vt 0.750000 0.937500 0.000000 + vt 0.781250 0.937500 0.000000 + vt 0.812500 0.937500 0.000000 + vt 0.843750 0.937500 0.000000 + vt 0.875000 0.937500 0.000000 + vt 0.906250 0.937500 0.000000 + vt 0.937500 0.937500 0.000000 + vt 0.968750 0.937500 0.000000 + vt 1.000000 0.937500 0.000000 + vt 0.000000 0.875000 0.000000 + vt 0.031250 0.875000 0.000000 + vt 0.062500 0.875000 0.000000 + vt 0.093750 0.875000 0.000000 + vt 0.125000 0.875000 0.000000 + vt 0.156250 0.875000 0.000000 + vt 0.187500 0.875000 0.000000 + vt 0.218750 0.875000 0.000000 + vt 0.250000 0.875000 0.000000 + vt 0.281250 0.875000 0.000000 + vt 0.312500 0.875000 0.000000 + vt 0.343750 0.875000 0.000000 + vt 0.375000 0.875000 0.000000 + vt 0.406250 0.875000 0.000000 + vt 0.437500 0.875000 0.000000 + vt 0.468750 0.875000 0.000000 + vt 0.500000 0.875000 0.000000 + vt 0.531250 0.875000 0.000000 + vt 0.562500 0.875000 0.000000 + vt 0.593750 0.875000 0.000000 + vt 0.625000 0.875000 0.000000 + vt 0.656250 0.875000 0.000000 + vt 0.687500 0.875000 0.000000 + vt 0.718750 0.875000 0.000000 + vt 0.750000 0.875000 0.000000 + vt 0.781250 0.875000 0.000000 + vt 0.812500 0.875000 0.000000 + vt 0.843750 0.875000 0.000000 + vt 0.875000 0.875000 0.000000 + vt 0.906250 0.875000 0.000000 + vt 0.937500 0.875000 0.000000 + vt 0.968750 0.875000 0.000000 + vt 1.000000 0.875000 0.000000 + vt 0.000000 0.812500 0.000000 + vt 0.031250 0.812500 0.000000 + vt 0.062500 0.812500 0.000000 + vt 0.093750 0.812500 0.000000 + vt 0.125000 0.812500 0.000000 + vt 0.156250 0.812500 0.000000 + vt 0.187500 0.812500 0.000000 + vt 0.218750 0.812500 0.000000 + vt 0.250000 0.812500 0.000000 + vt 0.281250 0.812500 0.000000 + vt 0.312500 0.812500 0.000000 + vt 0.343750 0.812500 0.000000 + vt 0.375000 0.812500 0.000000 + vt 0.406250 0.812500 0.000000 + vt 0.437500 0.812500 0.000000 + vt 0.468750 0.812500 0.000000 + vt 0.500000 0.812500 0.000000 + vt 0.531250 0.812500 0.000000 + vt 0.562500 0.812500 0.000000 + vt 0.593750 0.812500 0.000000 + vt 0.625000 0.812500 0.000000 + vt 0.656250 0.812500 0.000000 + vt 0.687500 0.812500 0.000000 + vt 0.718750 0.812500 0.000000 + vt 0.750000 0.812500 0.000000 + vt 0.781250 0.812500 0.000000 + vt 0.812500 0.812500 0.000000 + vt 0.843750 0.812500 0.000000 + vt 0.875000 0.812500 0.000000 + vt 0.906250 0.812500 0.000000 + vt 0.937500 0.812500 0.000000 + vt 0.968750 0.812500 0.000000 + vt 1.000000 0.812500 0.000000 + vt 0.000000 0.750000 0.000000 + vt 0.031250 0.750000 0.000000 + vt 0.062500 0.750000 0.000000 + vt 0.093750 0.750000 0.000000 + vt 0.125000 0.750000 0.000000 + vt 0.156250 0.750000 0.000000 + vt 0.187500 0.750000 0.000000 + vt 0.218750 0.750000 0.000000 + vt 0.250000 0.750000 0.000000 + vt 0.281250 0.750000 0.000000 + vt 0.312500 0.750000 0.000000 + vt 0.343750 0.750000 0.000000 + vt 0.375000 0.750000 0.000000 + vt 0.406250 0.750000 0.000000 + vt 0.437500 0.750000 0.000000 + vt 0.468750 0.750000 0.000000 + vt 0.500000 0.750000 0.000000 + vt 0.531250 0.750000 0.000000 + vt 0.562500 0.750000 0.000000 + vt 0.593750 0.750000 0.000000 + vt 0.625000 0.750000 0.000000 + vt 0.656250 0.750000 0.000000 + vt 0.687500 0.750000 0.000000 + vt 0.718750 0.750000 0.000000 + vt 0.750000 0.750000 0.000000 + vt 0.781250 0.750000 0.000000 + vt 0.812500 0.750000 0.000000 + vt 0.843750 0.750000 0.000000 + vt 0.875000 0.750000 0.000000 + vt 0.906250 0.750000 0.000000 + vt 0.937500 0.750000 0.000000 + vt 0.968750 0.750000 0.000000 + vt 1.000000 0.750000 0.000000 + vt 0.000000 0.687500 0.000000 + vt 0.031250 0.687500 0.000000 + vt 0.062500 0.687500 0.000000 + vt 0.093750 0.687500 0.000000 + vt 0.125000 0.687500 0.000000 + vt 0.156250 0.687500 0.000000 + vt 0.187500 0.687500 0.000000 + vt 0.218750 0.687500 0.000000 + vt 0.250000 0.687500 0.000000 + vt 0.281250 0.687500 0.000000 + vt 0.312500 0.687500 0.000000 + vt 0.343750 0.687500 0.000000 + vt 0.375000 0.687500 0.000000 + vt 0.406250 0.687500 0.000000 + vt 0.437500 0.687500 0.000000 + vt 0.468750 0.687500 0.000000 + vt 0.500000 0.687500 0.000000 + vt 0.531250 0.687500 0.000000 + vt 0.562500 0.687500 0.000000 + vt 0.593750 0.687500 0.000000 + vt 0.625000 0.687500 0.000000 + vt 0.656250 0.687500 0.000000 + vt 0.687500 0.687500 0.000000 + vt 0.718750 0.687500 0.000000 + vt 0.750000 0.687500 0.000000 + vt 0.781250 0.687500 0.000000 + vt 0.812500 0.687500 0.000000 + vt 0.843750 0.687500 0.000000 + vt 0.875000 0.687500 0.000000 + vt 0.906250 0.687500 0.000000 + vt 0.937500 0.687500 0.000000 + vt 0.968750 0.687500 0.000000 + vt 1.000000 0.687500 0.000000 + vt 0.000000 0.625000 0.000000 + vt 0.031250 0.625000 0.000000 + vt 0.062500 0.625000 0.000000 + vt 0.093750 0.625000 0.000000 + vt 0.125000 0.625000 0.000000 + vt 0.156250 0.625000 0.000000 + vt 0.187500 0.625000 0.000000 + vt 0.218750 0.625000 0.000000 + vt 0.250000 0.625000 0.000000 + vt 0.281250 0.625000 0.000000 + vt 0.312500 0.625000 0.000000 + vt 0.343750 0.625000 0.000000 + vt 0.375000 0.625000 0.000000 + vt 0.406250 0.625000 0.000000 + vt 0.437500 0.625000 0.000000 + vt 0.468750 0.625000 0.000000 + vt 0.500000 0.625000 0.000000 + vt 0.531250 0.625000 0.000000 + vt 0.562500 0.625000 0.000000 + vt 0.593750 0.625000 0.000000 + vt 0.625000 0.625000 0.000000 + vt 0.656250 0.625000 0.000000 + vt 0.687500 0.625000 0.000000 + vt 0.718750 0.625000 0.000000 + vt 0.750000 0.625000 0.000000 + vt 0.781250 0.625000 0.000000 + vt 0.812500 0.625000 0.000000 + vt 0.843750 0.625000 0.000000 + vt 0.875000 0.625000 0.000000 + vt 0.906250 0.625000 0.000000 + vt 0.937500 0.625000 0.000000 + vt 0.968750 0.625000 0.000000 + vt 1.000000 0.625000 0.000000 + vt 0.000000 0.562500 0.000000 + vt 0.031250 0.562500 0.000000 + vt 0.062500 0.562500 0.000000 + vt 0.093750 0.562500 0.000000 + vt 0.125000 0.562500 0.000000 + vt 0.156250 0.562500 0.000000 + vt 0.187500 0.562500 0.000000 + vt 0.218750 0.562500 0.000000 + vt 0.250000 0.562500 0.000000 + vt 0.281250 0.562500 0.000000 + vt 0.312500 0.562500 0.000000 + vt 0.343750 0.562500 0.000000 + vt 0.375000 0.562500 0.000000 + vt 0.406250 0.562500 0.000000 + vt 0.437500 0.562500 0.000000 + vt 0.468750 0.562500 0.000000 + vt 0.500000 0.562500 0.000000 + vt 0.531250 0.562500 0.000000 + vt 0.562500 0.562500 0.000000 + vt 0.593750 0.562500 0.000000 + vt 0.625000 0.562500 0.000000 + vt 0.656250 0.562500 0.000000 + vt 0.687500 0.562500 0.000000 + vt 0.718750 0.562500 0.000000 + vt 0.750000 0.562500 0.000000 + vt 0.781250 0.562500 0.000000 + vt 0.812500 0.562500 0.000000 + vt 0.843750 0.562500 0.000000 + vt 0.875000 0.562500 0.000000 + vt 0.906250 0.562500 0.000000 + vt 0.937500 0.562500 0.000000 + vt 0.968750 0.562500 0.000000 + vt 1.000000 0.562500 0.000000 + vt 0.000000 0.500000 0.000000 + vt 0.031250 0.500000 0.000000 + vt 0.062500 0.500000 0.000000 + vt 0.093750 0.500000 0.000000 + vt 0.125000 0.500000 0.000000 + vt 0.156250 0.500000 0.000000 + vt 0.187500 0.500000 0.000000 + vt 0.218750 0.500000 0.000000 + vt 0.250000 0.500000 0.000000 + vt 0.281250 0.500000 0.000000 + vt 0.312500 0.500000 0.000000 + vt 0.343750 0.500000 0.000000 + vt 0.375000 0.500000 0.000000 + vt 0.406250 0.500000 0.000000 + vt 0.437500 0.500000 0.000000 + vt 0.468750 0.500000 0.000000 + vt 0.500000 0.500000 0.000000 + vt 0.531250 0.500000 0.000000 + vt 0.562500 0.500000 0.000000 + vt 0.593750 0.500000 0.000000 + vt 0.625000 0.500000 0.000000 + vt 0.656250 0.500000 0.000000 + vt 0.687500 0.500000 0.000000 + vt 0.718750 0.500000 0.000000 + vt 0.750000 0.500000 0.000000 + vt 0.781250 0.500000 0.000000 + vt 0.812500 0.500000 0.000000 + vt 0.843750 0.500000 0.000000 + vt 0.875000 0.500000 0.000000 + vt 0.906250 0.500000 0.000000 + vt 0.937500 0.500000 0.000000 + vt 0.968750 0.500000 0.000000 + vt 1.000000 0.500000 0.000000 + vt 0.000000 0.437500 0.000000 + vt 0.031250 0.437500 0.000000 + vt 0.062500 0.437500 0.000000 + vt 0.093750 0.437500 0.000000 + vt 0.125000 0.437500 0.000000 + vt 0.156250 0.437500 0.000000 + vt 0.187500 0.437500 0.000000 + vt 0.218750 0.437500 0.000000 + vt 0.250000 0.437500 0.000000 + vt 0.281250 0.437500 0.000000 + vt 0.312500 0.437500 0.000000 + vt 0.343750 0.437500 0.000000 + vt 0.375000 0.437500 0.000000 + vt 0.406250 0.437500 0.000000 + vt 0.437500 0.437500 0.000000 + vt 0.468750 0.437500 0.000000 + vt 0.500000 0.437500 0.000000 + vt 0.531250 0.437500 0.000000 + vt 0.562500 0.437500 0.000000 + vt 0.593750 0.437500 0.000000 + vt 0.625000 0.437500 0.000000 + vt 0.656250 0.437500 0.000000 + vt 0.687500 0.437500 0.000000 + vt 0.718750 0.437500 0.000000 + vt 0.750000 0.437500 0.000000 + vt 0.781250 0.437500 0.000000 + vt 0.812500 0.437500 0.000000 + vt 0.843750 0.437500 0.000000 + vt 0.875000 0.437500 0.000000 + vt 0.906250 0.437500 0.000000 + vt 0.937500 0.437500 0.000000 + vt 0.968750 0.437500 0.000000 + vt 1.000000 0.437500 0.000000 + vt 0.000000 0.375000 0.000000 + vt 0.031250 0.375000 0.000000 + vt 0.062500 0.375000 0.000000 + vt 0.093750 0.375000 0.000000 + vt 0.125000 0.375000 0.000000 + vt 0.156250 0.375000 0.000000 + vt 0.187500 0.375000 0.000000 + vt 0.218750 0.375000 0.000000 + vt 0.250000 0.375000 0.000000 + vt 0.281250 0.375000 0.000000 + vt 0.312500 0.375000 0.000000 + vt 0.343750 0.375000 0.000000 + vt 0.375000 0.375000 0.000000 + vt 0.406250 0.375000 0.000000 + vt 0.437500 0.375000 0.000000 + vt 0.468750 0.375000 0.000000 + vt 0.500000 0.375000 0.000000 + vt 0.531250 0.375000 0.000000 + vt 0.562500 0.375000 0.000000 + vt 0.593750 0.375000 0.000000 + vt 0.625000 0.375000 0.000000 + vt 0.656250 0.375000 0.000000 + vt 0.687500 0.375000 0.000000 + vt 0.718750 0.375000 0.000000 + vt 0.750000 0.375000 0.000000 + vt 0.781250 0.375000 0.000000 + vt 0.812500 0.375000 0.000000 + vt 0.843750 0.375000 0.000000 + vt 0.875000 0.375000 0.000000 + vt 0.906250 0.375000 0.000000 + vt 0.937500 0.375000 0.000000 + vt 0.968750 0.375000 0.000000 + vt 1.000000 0.375000 0.000000 + vt 0.000000 0.312500 0.000000 + vt 0.031250 0.312500 0.000000 + vt 0.062500 0.312500 0.000000 + vt 0.093750 0.312500 0.000000 + vt 0.125000 0.312500 0.000000 + vt 0.156250 0.312500 0.000000 + vt 0.187500 0.312500 0.000000 + vt 0.218750 0.312500 0.000000 + vt 0.250000 0.312500 0.000000 + vt 0.281250 0.312500 0.000000 + vt 0.312500 0.312500 0.000000 + vt 0.343750 0.312500 0.000000 + vt 0.375000 0.312500 0.000000 + vt 0.406250 0.312500 0.000000 + vt 0.437500 0.312500 0.000000 + vt 0.468750 0.312500 0.000000 + vt 0.500000 0.312500 0.000000 + vt 0.531250 0.312500 0.000000 + vt 0.562500 0.312500 0.000000 + vt 0.593750 0.312500 0.000000 + vt 0.625000 0.312500 0.000000 + vt 0.656250 0.312500 0.000000 + vt 0.687500 0.312500 0.000000 + vt 0.718750 0.312500 0.000000 + vt 0.750000 0.312500 0.000000 + vt 0.781250 0.312500 0.000000 + vt 0.812500 0.312500 0.000000 + vt 0.843750 0.312500 0.000000 + vt 0.875000 0.312500 0.000000 + vt 0.906250 0.312500 0.000000 + vt 0.937500 0.312500 0.000000 + vt 0.968750 0.312500 0.000000 + vt 1.000000 0.312500 0.000000 + vt 0.000000 0.250000 0.000000 + vt 0.031250 0.250000 0.000000 + vt 0.062500 0.250000 0.000000 + vt 0.093750 0.250000 0.000000 + vt 0.125000 0.250000 0.000000 + vt 0.156250 0.250000 0.000000 + vt 0.187500 0.250000 0.000000 + vt 0.218750 0.250000 0.000000 + vt 0.250000 0.250000 0.000000 + vt 0.281250 0.250000 0.000000 + vt 0.312500 0.250000 0.000000 + vt 0.343750 0.250000 0.000000 + vt 0.375000 0.250000 0.000000 + vt 0.406250 0.250000 0.000000 + vt 0.437500 0.250000 0.000000 + vt 0.468750 0.250000 0.000000 + vt 0.500000 0.250000 0.000000 + vt 0.531250 0.250000 0.000000 + vt 0.562500 0.250000 0.000000 + vt 0.593750 0.250000 0.000000 + vt 0.625000 0.250000 0.000000 + vt 0.656250 0.250000 0.000000 + vt 0.687500 0.250000 0.000000 + vt 0.718750 0.250000 0.000000 + vt 0.750000 0.250000 0.000000 + vt 0.781250 0.250000 0.000000 + vt 0.812500 0.250000 0.000000 + vt 0.843750 0.250000 0.000000 + vt 0.875000 0.250000 0.000000 + vt 0.906250 0.250000 0.000000 + vt 0.937500 0.250000 0.000000 + vt 0.968750 0.250000 0.000000 + vt 1.000000 0.250000 0.000000 + vt 0.000000 0.187500 0.000000 + vt 0.031250 0.187500 0.000000 + vt 0.062500 0.187500 0.000000 + vt 0.093750 0.187500 0.000000 + vt 0.125000 0.187500 0.000000 + vt 0.156250 0.187500 0.000000 + vt 0.187500 0.187500 0.000000 + vt 0.218750 0.187500 0.000000 + vt 0.250000 0.187500 0.000000 + vt 0.281250 0.187500 0.000000 + vt 0.312500 0.187500 0.000000 + vt 0.343750 0.187500 0.000000 + vt 0.375000 0.187500 0.000000 + vt 0.406250 0.187500 0.000000 + vt 0.437500 0.187500 0.000000 + vt 0.468750 0.187500 0.000000 + vt 0.500000 0.187500 0.000000 + vt 0.531250 0.187500 0.000000 + vt 0.562500 0.187500 0.000000 + vt 0.593750 0.187500 0.000000 + vt 0.625000 0.187500 0.000000 + vt 0.656250 0.187500 0.000000 + vt 0.687500 0.187500 0.000000 + vt 0.718750 0.187500 0.000000 + vt 0.750000 0.187500 0.000000 + vt 0.781250 0.187500 0.000000 + vt 0.812500 0.187500 0.000000 + vt 0.843750 0.187500 0.000000 + vt 0.875000 0.187500 0.000000 + vt 0.906250 0.187500 0.000000 + vt 0.937500 0.187500 0.000000 + vt 0.968750 0.187500 0.000000 + vt 1.000000 0.187500 0.000000 + vt 0.000000 0.125000 0.000000 + vt 0.031250 0.125000 0.000000 + vt 0.062500 0.125000 0.000000 + vt 0.093750 0.125000 0.000000 + vt 0.125000 0.125000 0.000000 + vt 0.156250 0.125000 0.000000 + vt 0.187500 0.125000 0.000000 + vt 0.218750 0.125000 0.000000 + vt 0.250000 0.125000 0.000000 + vt 0.281250 0.125000 0.000000 + vt 0.312500 0.125000 0.000000 + vt 0.343750 0.125000 0.000000 + vt 0.375000 0.125000 0.000000 + vt 0.406250 0.125000 0.000000 + vt 0.437500 0.125000 0.000000 + vt 0.468750 0.125000 0.000000 + vt 0.500000 0.125000 0.000000 + vt 0.531250 0.125000 0.000000 + vt 0.562500 0.125000 0.000000 + vt 0.593750 0.125000 0.000000 + vt 0.625000 0.125000 0.000000 + vt 0.656250 0.125000 0.000000 + vt 0.687500 0.125000 0.000000 + vt 0.718750 0.125000 0.000000 + vt 0.750000 0.125000 0.000000 + vt 0.781250 0.125000 0.000000 + vt 0.812500 0.125000 0.000000 + vt 0.843750 0.125000 0.000000 + vt 0.875000 0.125000 0.000000 + vt 0.906250 0.125000 0.000000 + vt 0.937500 0.125000 0.000000 + vt 0.968750 0.125000 0.000000 + vt 1.000000 0.125000 0.000000 + vt 0.000000 0.062500 0.000000 + vt 0.031250 0.062500 0.000000 + vt 0.062500 0.062500 0.000000 + vt 0.093750 0.062500 0.000000 + vt 0.125000 0.062500 0.000000 + vt 0.156250 0.062500 0.000000 + vt 0.187500 0.062500 0.000000 + vt 0.218750 0.062500 0.000000 + vt 0.250000 0.062500 0.000000 + vt 0.281250 0.062500 0.000000 + vt 0.312500 0.062500 0.000000 + vt 0.343750 0.062500 0.000000 + vt 0.375000 0.062500 0.000000 + vt 0.406250 0.062500 0.000000 + vt 0.437500 0.062500 0.000000 + vt 0.468750 0.062500 0.000000 + vt 0.500000 0.062500 0.000000 + vt 0.531250 0.062500 0.000000 + vt 0.562500 0.062500 0.000000 + vt 0.593750 0.062500 0.000000 + vt 0.625000 0.062500 0.000000 + vt 0.656250 0.062500 0.000000 + vt 0.687500 0.062500 0.000000 + vt 0.718750 0.062500 0.000000 + vt 0.750000 0.062500 0.000000 + vt 0.781250 0.062500 0.000000 + vt 0.812500 0.062500 0.000000 + vt 0.843750 0.062500 0.000000 + vt 0.875000 0.062500 0.000000 + vt 0.906250 0.062500 0.000000 + vt 0.937500 0.062500 0.000000 + vt 0.968750 0.062500 0.000000 + vt 1.000000 0.062500 0.000000 + vt 0.000000 -0.000000 0.000000 + vt 0.031250 -0.000000 0.000000 + vt 0.062500 -0.000000 0.000000 + vt 0.093750 -0.000000 0.000000 + vt 0.125000 -0.000000 0.000000 + vt 0.156250 -0.000000 0.000000 + vt 0.187500 -0.000000 0.000000 + vt 0.218750 -0.000000 0.000000 + vt 0.250000 -0.000000 0.000000 + vt 0.281250 -0.000000 0.000000 + vt 0.312500 -0.000000 0.000000 + vt 0.343750 -0.000000 0.000000 + vt 0.375000 -0.000000 0.000000 + vt 0.406250 -0.000000 0.000000 + vt 0.437500 -0.000000 0.000000 + vt 0.468750 -0.000000 0.000000 + vt 0.500000 -0.000000 0.000000 + vt 0.531250 -0.000000 0.000000 + vt 0.562500 -0.000000 0.000000 + vt 0.593750 -0.000000 0.000000 + vt 0.625000 -0.000000 0.000000 + vt 0.656250 -0.000000 0.000000 + vt 0.687500 -0.000000 0.000000 + vt 0.718750 -0.000000 0.000000 + vt 0.750000 -0.000000 0.000000 + vt 0.781250 -0.000000 0.000000 + vt 0.812500 -0.000000 0.000000 + vt 0.843750 -0.000000 0.000000 + vt 0.875000 -0.000000 0.000000 + vt 0.906250 -0.000000 0.000000 + vt 0.937500 -0.000000 0.000000 + vt 0.968750 -0.000000 0.000000 + vt 1.000000 -0.000000 0.000000 + + vn 0.000000 1.000000 -0.000000 + vn -0.005744 0.976740 -0.214348 + vn -0.047451 0.976740 -0.209109 + vn -0.087334 0.976740 -0.195834 + vn -0.123861 0.976740 -0.175033 + vn -0.155629 0.976740 -0.147506 + vn -0.181415 0.976740 -0.114310 + vn -0.200230 0.976740 -0.076721 + vn -0.211350 0.976740 -0.036184 + vn -0.214348 0.976740 0.005744 + vn -0.209109 0.976740 0.047451 + vn -0.195834 0.976740 0.087334 + vn -0.175033 0.976740 0.123861 + vn -0.147506 0.976740 0.155629 + vn -0.114310 0.976740 0.181415 + vn -0.076721 0.976740 0.200230 + vn -0.036184 0.976740 0.211350 + vn 0.005744 0.976740 0.214348 + vn 0.047451 0.976740 0.209109 + vn 0.087334 0.976740 0.195834 + vn 0.123862 0.976740 0.175033 + vn 0.155629 0.976740 0.147505 + vn 0.181415 0.976740 0.114309 + vn 0.200230 0.976740 0.076721 + vn 0.211350 0.976740 0.036184 + vn 0.214348 0.976740 -0.005744 + vn 0.209109 0.976740 -0.047451 + vn 0.195834 0.976740 -0.087334 + vn 0.175033 0.976740 -0.123862 + vn 0.147505 0.976740 -0.155629 + vn 0.114309 0.976740 -0.181415 + vn 0.076721 0.976740 -0.200230 + vn 0.036184 0.976740 -0.211350 + vn -0.002983 0.923888 -0.382651 + vn -0.077577 0.923888 -0.374717 + vn -0.149190 0.923888 -0.352382 + vn -0.215070 0.923888 -0.316506 + vn -0.272685 0.923888 -0.268466 + vn -0.319820 0.923888 -0.210109 + vn -0.354665 0.923888 -0.143678 + vn -0.375881 0.923888 -0.071726 + vn -0.382651 0.923888 0.002983 + vn -0.374717 0.923888 0.077578 + vn -0.352382 0.923888 0.149191 + vn -0.316506 0.923888 0.215070 + vn -0.268466 0.923888 0.272685 + vn -0.210109 0.923888 0.319821 + vn -0.143678 0.923888 0.354666 + vn -0.071725 0.923888 0.375881 + vn 0.002984 0.923888 0.382651 + vn 0.077578 0.923888 0.374717 + vn 0.149191 0.923888 0.352382 + vn 0.215071 0.923888 0.316505 + vn 0.272685 0.923888 0.268466 + vn 0.319821 0.923888 0.210109 + vn 0.354666 0.923888 0.143678 + vn 0.375881 0.923888 0.071725 + vn 0.382651 0.923888 -0.002984 + vn 0.374717 0.923888 -0.077578 + vn 0.352382 0.923888 -0.149191 + vn 0.316505 0.923888 -0.215071 + vn 0.268465 0.923888 -0.272685 + vn 0.210109 0.923888 -0.319821 + vn 0.143678 0.923888 -0.354666 + vn 0.071725 0.923888 -0.375881 + vn -0.002681 0.831490 -0.555533 + vn -0.111008 0.831490 -0.544335 + vn -0.215070 0.831490 -0.512219 + vn -0.310866 0.831490 -0.460419 + vn -0.394716 0.831490 -0.390925 + vn -0.463398 0.831490 -0.306408 + vn -0.514271 0.831490 -0.210116 + vn -0.545381 0.831490 -0.105750 + vn -0.555533 0.831490 0.002681 + vn -0.544335 0.831490 0.111008 + vn -0.512219 0.831490 0.215070 + vn -0.460419 0.831490 0.310867 + vn -0.390925 0.831490 0.394717 + vn -0.306408 0.831490 0.463398 + vn -0.210116 0.831490 0.514271 + vn -0.105749 0.831490 0.545381 + vn 0.002681 0.831490 0.555533 + vn 0.111009 0.831490 0.544335 + vn 0.215070 0.831490 0.512219 + vn 0.310867 0.831490 0.460419 + vn 0.394717 0.831490 0.390925 + vn 0.463398 0.831490 0.306408 + vn 0.514271 0.831490 0.210116 + vn 0.545381 0.831490 0.105749 + vn 0.555533 0.831490 -0.002681 + vn 0.544335 0.831490 -0.111009 + vn 0.512219 0.831490 -0.215071 + vn 0.460419 0.831490 -0.310867 + vn 0.390925 0.831490 -0.394717 + vn 0.306408 0.831490 -0.463398 + vn 0.210115 0.831490 -0.514271 + vn 0.105749 0.831490 -0.545381 + vn -0.002276 0.707138 -0.707072 + vn -0.140175 0.707138 -0.693042 + vn -0.272687 0.707138 -0.652379 + vn -0.394720 0.707138 -0.586645 + vn -0.501585 0.707138 -0.498367 + vn -0.589173 0.707138 -0.390936 + vn -0.654120 0.707138 -0.268482 + vn -0.693930 0.707138 -0.135711 + vn -0.707072 0.707138 0.002276 + vn -0.693042 0.707138 0.140175 + vn -0.652379 0.707138 0.272687 + vn -0.586645 0.707138 0.394721 + vn -0.498366 0.707138 0.501585 + vn -0.390936 0.707138 0.589174 + vn -0.268482 0.707138 0.654121 + vn -0.135711 0.707138 0.693930 + vn 0.002276 0.707138 0.707072 + vn 0.140176 0.707138 0.693042 + vn 0.272688 0.707138 0.652378 + vn 0.394721 0.707138 0.586644 + vn 0.501585 0.707138 0.498366 + vn 0.589174 0.707138 0.390935 + vn 0.654121 0.707138 0.268482 + vn 0.693930 0.707138 0.135710 + vn 0.707072 0.707138 -0.002277 + vn 0.693042 0.707138 -0.140176 + vn 0.652378 0.707138 -0.272688 + vn 0.586644 0.707138 -0.394721 + vn 0.498366 0.707138 -0.501585 + vn 0.390935 0.707138 -0.589174 + vn 0.268481 0.707138 -0.654121 + vn 0.135710 0.707138 -0.693930 + vn -0.001785 0.555605 -0.831445 + vn -0.163957 0.555605 -0.815120 + vn -0.319829 0.555605 -0.767472 + vn -0.463410 0.555605 -0.690329 + vn -0.589182 0.555605 -0.586658 + vn -0.692312 0.555605 -0.460442 + vn -0.768838 0.555605 -0.316531 + vn -0.815817 0.555605 -0.160456 + vn -0.831445 0.555605 0.001785 + vn -0.815120 0.555605 0.163957 + vn -0.767471 0.555605 0.319829 + vn -0.690329 0.555605 0.463410 + vn -0.586658 0.555605 0.589182 + vn -0.460441 0.555605 0.692313 + vn -0.316531 0.555605 0.768838 + vn -0.160456 0.555605 0.815817 + vn 0.001785 0.555605 0.831445 + vn 0.163958 0.555605 0.815120 + vn 0.319830 0.555605 0.767471 + vn 0.463410 0.555605 0.690329 + vn 0.589183 0.555605 0.586657 + vn 0.692313 0.555605 0.460441 + vn 0.768838 0.555605 0.316530 + vn 0.815817 0.555605 0.160455 + vn 0.831445 0.555605 -0.001786 + vn 0.815120 0.555605 -0.163958 + vn 0.767471 0.555605 -0.319830 + vn 0.690329 0.555605 -0.463411 + vn 0.586657 0.555605 -0.589183 + vn 0.460441 0.555605 -0.692313 + vn 0.316530 0.555605 -0.768838 + vn 0.160455 0.555605 -0.815817 + vn -0.001228 0.382713 -0.923866 + vn -0.181441 0.382713 -0.905875 + vn -0.354682 0.382713 -0.853072 + vn -0.514293 0.382713 -0.767485 + vn -0.654140 0.382713 -0.652404 + vn -0.768849 0.382713 -0.512252 + vn -0.854011 0.382713 -0.352414 + vn -0.906354 0.382713 -0.179033 + vn -0.923866 0.382713 0.001228 + vn -0.905875 0.382713 0.181441 + vn -0.853071 0.382713 0.354683 + vn -0.767485 0.382713 0.514294 + vn -0.652404 0.382713 0.654140 + vn -0.512252 0.382713 0.768849 + vn -0.352414 0.382713 0.854011 + vn -0.179033 0.382713 0.906354 + vn 0.001228 0.382713 0.923866 + vn 0.181442 0.382713 0.905875 + vn 0.354683 0.382713 0.853071 + vn 0.514294 0.382713 0.767484 + vn 0.654141 0.382713 0.652403 + vn 0.768849 0.382713 0.512251 + vn 0.854011 0.382713 0.352413 + vn 0.906354 0.382713 0.179032 + vn 0.923866 0.382713 -0.001229 + vn 0.905875 0.382713 -0.181443 + vn 0.853071 0.382713 -0.354684 + vn 0.767484 0.382713 -0.514295 + vn 0.652403 0.382713 -0.654141 + vn 0.512251 0.382713 -0.768850 + vn 0.352413 0.382713 -0.854012 + vn 0.179032 0.382713 -0.906354 + vn -0.000626 0.195108 -0.980782 + vn -0.191954 0.195108 -0.961814 + vn -0.375906 0.195108 -0.905885 + vn -0.545413 0.195108 -0.815143 + vn -0.693959 0.195108 -0.693075 + vn -0.815837 0.195108 -0.544373 + vn -0.906363 0.195108 -0.374751 + vn -0.962058 0.195108 -0.190728 + vn -0.980782 0.195108 0.000625 + vn -0.961814 0.195108 0.191954 + vn -0.905885 0.195108 0.375907 + vn -0.815143 0.195108 0.545413 + vn -0.693075 0.195108 0.693960 + vn -0.544373 0.195108 0.815838 + vn -0.374751 0.195108 0.906364 + vn -0.190727 0.195108 0.962058 + vn 0.000626 0.195108 0.980782 + vn 0.191955 0.195108 0.961814 + vn 0.375907 0.195108 0.905884 + vn 0.545414 0.195108 0.815142 + vn 0.693960 0.195108 0.693075 + vn 0.815838 0.195108 0.544372 + vn 0.906364 0.195108 0.374750 + vn 0.962058 0.195108 0.190727 + vn 0.980782 0.195108 -0.000627 + vn 0.961814 0.195108 -0.191956 + vn 0.905884 0.195108 -0.375908 + vn 0.815142 0.195108 -0.545414 + vn 0.693074 0.195108 -0.693961 + vn 0.544372 0.195108 -0.815839 + vn 0.374750 0.195108 -0.906364 + vn 0.190726 0.195108 -0.962058 + vn -0.000000 -0.000000 -1.000000 + vn -0.195090 -0.000000 -0.980785 + vn -0.382683 0.000000 -0.923880 + vn -0.555570 0.000000 -0.831470 + vn -0.707107 0.000000 -0.707107 + vn -0.831470 0.000000 -0.555570 + vn -0.923880 0.000000 -0.382683 + vn -0.980785 0.000000 -0.195090 + vn -1.000000 0.000000 0.000000 + vn -0.980785 -0.000000 0.195091 + vn -0.923879 0.000000 0.382684 + vn -0.831469 0.000000 0.555571 + vn -0.707106 0.000000 0.707107 + vn -0.555570 0.000000 0.831470 + vn -0.382683 -0.000000 0.923880 + vn -0.195089 0.000000 0.980785 + vn 0.000001 -0.000000 1.000000 + vn 0.195091 0.000000 0.980785 + vn 0.382685 0.000000 0.923879 + vn 0.555571 0.000000 0.831469 + vn 0.707108 0.000000 0.707106 + vn 0.831470 0.000000 0.555569 + vn 0.923880 0.000000 0.382682 + vn 0.980786 0.000000 0.195089 + vn 1.000000 0.000000 -0.000002 + vn 0.980785 -0.000000 -0.195092 + vn 0.923879 0.000000 -0.382685 + vn 0.831469 0.000000 -0.555572 + vn 0.707106 0.000000 -0.707108 + vn 0.555569 0.000000 -0.831471 + vn 0.382681 0.000000 -0.923880 + vn 0.195089 0.000000 -0.980786 + vn 0.000624 -0.195108 -0.980782 + vn -0.190728 -0.195108 -0.962058 + vn -0.374751 -0.195108 -0.906363 + vn -0.544373 -0.195107 -0.815837 + vn -0.693075 -0.195107 -0.693959 + vn -0.815143 -0.195108 -0.545413 + vn -0.905885 -0.195108 -0.375906 + vn -0.961814 -0.195107 -0.191954 + vn -0.980782 -0.195107 -0.000625 + vn -0.962058 -0.195107 0.190728 + vn -0.906363 -0.195107 0.374752 + vn -0.815837 -0.195108 0.544374 + vn -0.693959 -0.195108 0.693076 + vn -0.545412 -0.195107 0.815143 + vn -0.375906 -0.195107 0.905885 + vn -0.191953 -0.195108 0.961814 + vn -0.000624 -0.195107 0.980782 + vn 0.190729 -0.195107 0.962058 + vn 0.374753 -0.195107 0.906363 + vn 0.544374 -0.195107 0.815837 + vn 0.693076 -0.195108 0.693959 + vn 0.815144 -0.195108 0.545412 + vn 0.905885 -0.195108 0.375905 + vn 0.961815 -0.195108 0.191953 + vn 0.980782 -0.195108 0.000623 + vn 0.962058 -0.195107 -0.190730 + vn 0.906363 -0.195108 -0.374753 + vn 0.815836 -0.195107 -0.544375 + vn 0.693958 -0.195107 -0.693077 + vn 0.545411 -0.195108 -0.815144 + vn 0.375904 -0.195107 -0.905886 + vn 0.191953 -0.195107 -0.961815 + vn 0.001227 -0.382713 -0.923866 + vn -0.179034 -0.382713 -0.906354 + vn -0.352414 -0.382713 -0.854011 + vn -0.512252 -0.382713 -0.768849 + vn -0.652404 -0.382713 -0.654140 + vn -0.767485 -0.382713 -0.514293 + vn -0.853072 -0.382713 -0.354682 + vn -0.905875 -0.382713 -0.181441 + vn -0.923866 -0.382713 -0.001227 + vn -0.906354 -0.382713 0.179034 + vn -0.854011 -0.382713 0.352415 + vn -0.768848 -0.382713 0.512253 + vn -0.654140 -0.382713 0.652405 + vn -0.514293 -0.382713 0.767485 + vn -0.354682 -0.382713 0.853072 + vn -0.181440 -0.382713 0.905875 + vn -0.001227 -0.382713 0.923866 + vn 0.179035 -0.382713 0.906354 + vn 0.352415 -0.382713 0.854011 + vn 0.512253 -0.382713 0.768848 + vn 0.652405 -0.382713 0.654139 + vn 0.767486 -0.382713 0.514292 + vn 0.853072 -0.382713 0.354681 + vn 0.905875 -0.382713 0.181440 + vn 0.923866 -0.382713 0.001226 + vn 0.906354 -0.382713 -0.179035 + vn 0.854010 -0.382713 -0.352416 + vn 0.768848 -0.382713 -0.512254 + vn 0.654139 -0.382713 -0.652406 + vn 0.514292 -0.382713 -0.767486 + vn 0.354681 -0.382713 -0.853072 + vn 0.181440 -0.382713 -0.905875 + vn 0.001784 -0.555605 -0.831445 + vn -0.160456 -0.555605 -0.815817 + vn -0.316531 -0.555605 -0.768838 + vn -0.460442 -0.555605 -0.692312 + vn -0.586658 -0.555605 -0.589182 + vn -0.690329 -0.555605 -0.463410 + vn -0.767472 -0.555605 -0.319829 + vn -0.815121 -0.555605 -0.163957 + vn -0.831445 -0.555605 -0.001784 + vn -0.815817 -0.555605 0.160457 + vn -0.768837 -0.555605 0.316532 + vn -0.692312 -0.555605 0.460442 + vn -0.589182 -0.555605 0.586659 + vn -0.463409 -0.555605 0.690330 + vn -0.319828 -0.555605 0.767472 + vn -0.163956 -0.555605 0.815121 + vn -0.001784 -0.555605 0.831445 + vn 0.160457 -0.555605 0.815817 + vn 0.316532 -0.555605 0.768837 + vn 0.460443 -0.555605 0.692312 + vn 0.586659 -0.555605 0.589181 + vn 0.690330 -0.555605 0.463409 + vn 0.767472 -0.555605 0.319828 + vn 0.815121 -0.555605 0.163956 + vn 0.831445 -0.555605 0.001783 + vn 0.815816 -0.555605 -0.160458 + vn 0.768837 -0.555605 -0.316533 + vn 0.692312 -0.555605 -0.460443 + vn 0.589181 -0.555605 -0.586659 + vn 0.463408 -0.555605 -0.690330 + vn 0.319827 -0.555605 -0.767472 + vn 0.163956 -0.555605 -0.815121 + vn 0.002275 -0.707138 -0.707072 + vn -0.135711 -0.707138 -0.693930 + vn -0.268483 -0.707138 -0.654120 + vn -0.390936 -0.707138 -0.589173 + vn -0.498367 -0.707138 -0.501585 + vn -0.586645 -0.707138 -0.394720 + vn -0.652379 -0.707138 -0.272687 + vn -0.693042 -0.707138 -0.140175 + vn -0.707072 -0.707138 -0.002275 + vn -0.693930 -0.707138 0.135711 + vn -0.654120 -0.707138 0.268483 + vn -0.589173 -0.707138 0.390936 + vn -0.501584 -0.707138 0.498367 + vn -0.394720 -0.707138 0.586645 + vn -0.272687 -0.707138 0.652379 + vn -0.140174 -0.707138 0.693042 + vn -0.002275 -0.707138 0.707072 + vn 0.135712 -0.707138 0.693930 + vn 0.268483 -0.707138 0.654120 + vn 0.390937 -0.707138 0.589173 + vn 0.498367 -0.707138 0.501584 + vn 0.586645 -0.707138 0.394719 + vn 0.652379 -0.707138 0.272686 + vn 0.693042 -0.707138 0.140174 + vn 0.707072 -0.707138 0.002274 + vn 0.693930 -0.707138 -0.135712 + vn 0.654120 -0.707138 -0.268484 + vn 0.589173 -0.707138 -0.390937 + vn 0.501584 -0.707138 -0.498367 + vn 0.394719 -0.707138 -0.586646 + vn 0.272686 -0.707138 -0.652379 + vn 0.140174 -0.707138 -0.693042 + vn 0.002680 -0.831490 -0.555533 + vn -0.105750 -0.831490 -0.545381 + vn -0.210117 -0.831490 -0.514271 + vn -0.306408 -0.831490 -0.463398 + vn -0.390925 -0.831490 -0.394716 + vn -0.460419 -0.831490 -0.310866 + vn -0.512219 -0.831490 -0.215070 + vn -0.544335 -0.831490 -0.111008 + vn -0.555533 -0.831490 -0.002680 + vn -0.545381 -0.831490 0.105750 + vn -0.514271 -0.831490 0.210117 + vn -0.463398 -0.831490 0.306409 + vn -0.394716 -0.831490 0.390926 + vn -0.310866 -0.831490 0.460419 + vn -0.215069 -0.831491 0.512219 + vn -0.111008 -0.831490 0.544335 + vn -0.002680 -0.831490 0.555533 + vn 0.105750 -0.831490 0.545381 + vn 0.210117 -0.831490 0.514271 + vn 0.306409 -0.831490 0.463397 + vn 0.390926 -0.831490 0.394716 + vn 0.460420 -0.831490 0.310866 + vn 0.512220 -0.831490 0.215069 + vn 0.544335 -0.831490 0.111007 + vn 0.555533 -0.831490 0.002680 + vn 0.545381 -0.831490 -0.105751 + vn 0.514271 -0.831490 -0.210117 + vn 0.463397 -0.831491 -0.306409 + vn 0.394716 -0.831491 -0.390926 + vn 0.310865 -0.831490 -0.460420 + vn 0.215069 -0.831490 -0.512220 + vn 0.111007 -0.831490 -0.544335 + vn 0.002983 -0.923888 -0.382651 + vn -0.071726 -0.923888 -0.375880 + vn -0.143678 -0.923888 -0.354665 + vn -0.210109 -0.923888 -0.319820 + vn -0.268466 -0.923888 -0.272685 + vn -0.316505 -0.923888 -0.215070 + vn -0.352382 -0.923888 -0.149190 + vn -0.374717 -0.923888 -0.077577 + vn -0.382651 -0.923888 -0.002983 + vn -0.375880 -0.923888 0.071726 + vn -0.354665 -0.923888 0.143678 + vn -0.319820 -0.923888 0.210109 + vn -0.272684 -0.923888 0.268466 + vn -0.215070 -0.923888 0.316506 + vn -0.149190 -0.923888 0.352382 + vn -0.077577 -0.923888 0.374717 + vn -0.002983 -0.923888 0.382651 + vn 0.071726 -0.923888 0.375880 + vn 0.143679 -0.923888 0.354665 + vn 0.210109 -0.923888 0.319820 + vn 0.268466 -0.923888 0.272684 + vn 0.316506 -0.923888 0.215069 + vn 0.352382 -0.923888 0.149190 + vn 0.374717 -0.923888 0.077577 + vn 0.382651 -0.923888 0.002983 + vn 0.375880 -0.923888 -0.071726 + vn 0.354665 -0.923888 -0.143679 + vn 0.319820 -0.923888 -0.210110 + vn 0.272684 -0.923888 -0.268466 + vn 0.215069 -0.923888 -0.316506 + vn 0.149190 -0.923888 -0.352382 + vn 0.077577 -0.923888 -0.374717 + vn 0.005744 -0.976740 -0.214348 + vn -0.036184 -0.976740 -0.211350 + vn -0.076721 -0.976740 -0.200230 + vn -0.114310 -0.976740 -0.181415 + vn -0.147505 -0.976740 -0.155628 + vn -0.175033 -0.976740 -0.123861 + vn -0.195834 -0.976740 -0.087334 + vn -0.209109 -0.976740 -0.047451 + vn -0.214348 -0.976740 -0.005744 + vn -0.211350 -0.976740 0.036184 + vn -0.200230 -0.976740 0.076721 + vn -0.181415 -0.976740 0.114310 + vn -0.155628 -0.976740 0.147506 + vn -0.123861 -0.976740 0.175033 + vn -0.087334 -0.976740 0.195834 + vn -0.047450 -0.976740 0.209109 + vn -0.005744 -0.976740 0.214348 + vn 0.036184 -0.976740 0.211350 + vn 0.076721 -0.976740 0.200230 + vn 0.114310 -0.976740 0.181415 + vn 0.147506 -0.976740 0.155628 + vn 0.175033 -0.976740 0.123861 + vn 0.195834 -0.976740 0.087334 + vn 0.209109 -0.976740 0.047450 + vn 0.214348 -0.976740 0.005743 + vn 0.211350 -0.976740 -0.036184 + vn 0.200230 -0.976740 -0.076721 + vn 0.181415 -0.976740 -0.114310 + vn 0.155628 -0.976740 -0.147506 + vn 0.123861 -0.976740 -0.175033 + vn 0.087334 -0.976740 -0.195834 + vn 0.047450 -0.976740 -0.209109 + vn 0.000000 -1.000000 -0.000000 + + f 1/1/1 2/34/2 3/35/3 + f 1/2/1 3/35/3 4/36/4 + f 1/3/1 4/36/4 5/37/5 + f 1/4/1 5/37/5 6/38/6 + f 1/5/1 6/38/6 7/39/7 + f 1/6/1 7/39/7 8/40/8 + f 1/7/1 8/40/8 9/41/9 + f 1/8/1 9/41/9 10/42/10 + f 1/9/1 10/42/10 11/43/11 + f 1/10/1 11/43/11 12/44/12 + f 1/11/1 12/44/12 13/45/13 + f 1/12/1 13/45/13 14/46/14 + f 1/13/1 14/46/14 15/47/15 + f 1/14/1 15/47/15 16/48/16 + f 1/15/1 16/48/16 17/49/17 + f 1/16/1 17/49/17 18/50/18 + f 1/17/1 18/50/18 19/51/19 + f 1/18/1 19/51/19 20/52/20 + f 1/19/1 20/52/20 21/53/21 + f 1/20/1 21/53/21 22/54/22 + f 1/21/1 22/54/22 23/55/23 + f 1/22/1 23/55/23 24/56/24 + f 1/23/1 24/56/24 25/57/25 + f 1/24/1 25/57/25 26/58/26 + f 1/25/1 26/58/26 27/59/27 + f 1/26/1 27/59/27 28/60/28 + f 1/27/1 28/60/28 29/61/29 + f 1/28/1 29/61/29 30/62/30 + f 1/29/1 30/62/30 31/63/31 + f 1/30/1 31/63/31 32/64/32 + f 1/31/1 32/64/32 33/65/33 + f 1/32/1 33/65/33 2/66/2 + f 2/34/2 34/67/34 35/68/35 + f 2/34/2 35/68/35 3/35/3 + f 3/35/3 35/68/35 36/69/36 + f 3/35/3 36/69/36 4/36/4 + f 4/36/4 36/69/36 37/70/37 + f 4/36/4 37/70/37 5/37/5 + f 5/37/5 37/70/37 38/71/38 + f 5/37/5 38/71/38 6/38/6 + f 6/38/6 38/71/38 39/72/39 + f 6/38/6 39/72/39 7/39/7 + f 7/39/7 39/72/39 40/73/40 + f 7/39/7 40/73/40 8/40/8 + f 8/40/8 40/73/40 41/74/41 + f 8/40/8 41/74/41 9/41/9 + f 9/41/9 41/74/41 42/75/42 + f 9/41/9 42/75/42 10/42/10 + f 10/42/10 42/75/42 43/76/43 + f 10/42/10 43/76/43 11/43/11 + f 11/43/11 43/76/43 44/77/44 + f 11/43/11 44/77/44 12/44/12 + f 12/44/12 44/77/44 45/78/45 + f 12/44/12 45/78/45 13/45/13 + f 13/45/13 45/78/45 46/79/46 + f 13/45/13 46/79/46 14/46/14 + f 14/46/14 46/79/46 47/80/47 + f 14/46/14 47/80/47 15/47/15 + f 15/47/15 47/80/47 48/81/48 + f 15/47/15 48/81/48 16/48/16 + f 16/48/16 48/81/48 49/82/49 + f 16/48/16 49/82/49 17/49/17 + f 17/49/17 49/82/49 50/83/50 + f 17/49/17 50/83/50 18/50/18 + f 18/50/18 50/83/50 51/84/51 + f 18/50/18 51/84/51 19/51/19 + f 19/51/19 51/84/51 52/85/52 + f 19/51/19 52/85/52 20/52/20 + f 20/52/20 52/85/52 53/86/53 + f 20/52/20 53/86/53 21/53/21 + f 21/53/21 53/86/53 54/87/54 + f 21/53/21 54/87/54 22/54/22 + f 22/54/22 54/87/54 55/88/55 + f 22/54/22 55/88/55 23/55/23 + f 23/55/23 55/88/55 56/89/56 + f 23/55/23 56/89/56 24/56/24 + f 24/56/24 56/89/56 57/90/57 + f 24/56/24 57/90/57 25/57/25 + f 25/57/25 57/90/57 58/91/58 + f 25/57/25 58/91/58 26/58/26 + f 26/58/26 58/91/58 59/92/59 + f 26/58/26 59/92/59 27/59/27 + f 27/59/27 59/92/59 60/93/60 + f 27/59/27 60/93/60 28/60/28 + f 28/60/28 60/93/60 61/94/61 + f 28/60/28 61/94/61 29/61/29 + f 29/61/29 61/94/61 62/95/62 + f 29/61/29 62/95/62 30/62/30 + f 30/62/30 62/95/62 63/96/63 + f 30/62/30 63/96/63 31/63/31 + f 31/63/31 63/96/63 64/97/64 + f 31/63/31 64/97/64 32/64/32 + f 32/64/32 64/97/64 65/98/65 + f 32/64/32 65/98/65 33/65/33 + f 33/65/33 65/98/65 34/99/34 + f 33/65/33 34/99/34 2/66/2 + f 34/67/34 66/100/66 67/101/67 + f 34/67/34 67/101/67 35/68/35 + f 35/68/35 67/101/67 68/102/68 + f 35/68/35 68/102/68 36/69/36 + f 36/69/36 68/102/68 69/103/69 + f 36/69/36 69/103/69 37/70/37 + f 37/70/37 69/103/69 70/104/70 + f 37/70/37 70/104/70 38/71/38 + f 38/71/38 70/104/70 71/105/71 + f 38/71/38 71/105/71 39/72/39 + f 39/72/39 71/105/71 72/106/72 + f 39/72/39 72/106/72 40/73/40 + f 40/73/40 72/106/72 73/107/73 + f 40/73/40 73/107/73 41/74/41 + f 41/74/41 73/107/73 74/108/74 + f 41/74/41 74/108/74 42/75/42 + f 42/75/42 74/108/74 75/109/75 + f 42/75/42 75/109/75 43/76/43 + f 43/76/43 75/109/75 76/110/76 + f 43/76/43 76/110/76 44/77/44 + f 44/77/44 76/110/76 77/111/77 + f 44/77/44 77/111/77 45/78/45 + f 45/78/45 77/111/77 78/112/78 + f 45/78/45 78/112/78 46/79/46 + f 46/79/46 78/112/78 79/113/79 + f 46/79/46 79/113/79 47/80/47 + f 47/80/47 79/113/79 80/114/80 + f 47/80/47 80/114/80 48/81/48 + f 48/81/48 80/114/80 81/115/81 + f 48/81/48 81/115/81 49/82/49 + f 49/82/49 81/115/81 82/116/82 + f 49/82/49 82/116/82 50/83/50 + f 50/83/50 82/116/82 83/117/83 + f 50/83/50 83/117/83 51/84/51 + f 51/84/51 83/117/83 84/118/84 + f 51/84/51 84/118/84 52/85/52 + f 52/85/52 84/118/84 85/119/85 + f 52/85/52 85/119/85 53/86/53 + f 53/86/53 85/119/85 86/120/86 + f 53/86/53 86/120/86 54/87/54 + f 54/87/54 86/120/86 87/121/87 + f 54/87/54 87/121/87 55/88/55 + f 55/88/55 87/121/87 88/122/88 + f 55/88/55 88/122/88 56/89/56 + f 56/89/56 88/122/88 89/123/89 + f 56/89/56 89/123/89 57/90/57 + f 57/90/57 89/123/89 90/124/90 + f 57/90/57 90/124/90 58/91/58 + f 58/91/58 90/124/90 91/125/91 + f 58/91/58 91/125/91 59/92/59 + f 59/92/59 91/125/91 92/126/92 + f 59/92/59 92/126/92 60/93/60 + f 60/93/60 92/126/92 93/127/93 + f 60/93/60 93/127/93 61/94/61 + f 61/94/61 93/127/93 94/128/94 + f 61/94/61 94/128/94 62/95/62 + f 62/95/62 94/128/94 95/129/95 + f 62/95/62 95/129/95 63/96/63 + f 63/96/63 95/129/95 96/130/96 + f 63/96/63 96/130/96 64/97/64 + f 64/97/64 96/130/96 97/131/97 + f 64/97/64 97/131/97 65/98/65 + f 65/98/65 97/131/97 66/132/66 + f 65/98/65 66/132/66 34/99/34 + f 66/100/66 98/133/98 99/134/99 + f 66/100/66 99/134/99 67/101/67 + f 67/101/67 99/134/99 100/135/100 + f 67/101/67 100/135/100 68/102/68 + f 68/102/68 100/135/100 101/136/101 + f 68/102/68 101/136/101 69/103/69 + f 69/103/69 101/136/101 102/137/102 + f 69/103/69 102/137/102 70/104/70 + f 70/104/70 102/137/102 103/138/103 + f 70/104/70 103/138/103 71/105/71 + f 71/105/71 103/138/103 104/139/104 + f 71/105/71 104/139/104 72/106/72 + f 72/106/72 104/139/104 105/140/105 + f 72/106/72 105/140/105 73/107/73 + f 73/107/73 105/140/105 106/141/106 + f 73/107/73 106/141/106 74/108/74 + f 74/108/74 106/141/106 107/142/107 + f 74/108/74 107/142/107 75/109/75 + f 75/109/75 107/142/107 108/143/108 + f 75/109/75 108/143/108 76/110/76 + f 76/110/76 108/143/108 109/144/109 + f 76/110/76 109/144/109 77/111/77 + f 77/111/77 109/144/109 110/145/110 + f 77/111/77 110/145/110 78/112/78 + f 78/112/78 110/145/110 111/146/111 + f 78/112/78 111/146/111 79/113/79 + f 79/113/79 111/146/111 112/147/112 + f 79/113/79 112/147/112 80/114/80 + f 80/114/80 112/147/112 113/148/113 + f 80/114/80 113/148/113 81/115/81 + f 81/115/81 113/148/113 114/149/114 + f 81/115/81 114/149/114 82/116/82 + f 82/116/82 114/149/114 115/150/115 + f 82/116/82 115/150/115 83/117/83 + f 83/117/83 115/150/115 116/151/116 + f 83/117/83 116/151/116 84/118/84 + f 84/118/84 116/151/116 117/152/117 + f 84/118/84 117/152/117 85/119/85 + f 85/119/85 117/152/117 118/153/118 + f 85/119/85 118/153/118 86/120/86 + f 86/120/86 118/153/118 119/154/119 + f 86/120/86 119/154/119 87/121/87 + f 87/121/87 119/154/119 120/155/120 + f 87/121/87 120/155/120 88/122/88 + f 88/122/88 120/155/120 121/156/121 + f 88/122/88 121/156/121 89/123/89 + f 89/123/89 121/156/121 122/157/122 + f 89/123/89 122/157/122 90/124/90 + f 90/124/90 122/157/122 123/158/123 + f 90/124/90 123/158/123 91/125/91 + f 91/125/91 123/158/123 124/159/124 + f 91/125/91 124/159/124 92/126/92 + f 92/126/92 124/159/124 125/160/125 + f 92/126/92 125/160/125 93/127/93 + f 93/127/93 125/160/125 126/161/126 + f 93/127/93 126/161/126 94/128/94 + f 94/128/94 126/161/126 127/162/127 + f 94/128/94 127/162/127 95/129/95 + f 95/129/95 127/162/127 128/163/128 + f 95/129/95 128/163/128 96/130/96 + f 96/130/96 128/163/128 129/164/129 + f 96/130/96 129/164/129 97/131/97 + f 97/131/97 129/164/129 98/165/98 + f 97/131/97 98/165/98 66/132/66 + f 98/133/98 130/166/130 131/167/131 + f 98/133/98 131/167/131 99/134/99 + f 99/134/99 131/167/131 132/168/132 + f 99/134/99 132/168/132 100/135/100 + f 100/135/100 132/168/132 133/169/133 + f 100/135/100 133/169/133 101/136/101 + f 101/136/101 133/169/133 134/170/134 + f 101/136/101 134/170/134 102/137/102 + f 102/137/102 134/170/134 135/171/135 + f 102/137/102 135/171/135 103/138/103 + f 103/138/103 135/171/135 136/172/136 + f 103/138/103 136/172/136 104/139/104 + f 104/139/104 136/172/136 137/173/137 + f 104/139/104 137/173/137 105/140/105 + f 105/140/105 137/173/137 138/174/138 + f 105/140/105 138/174/138 106/141/106 + f 106/141/106 138/174/138 139/175/139 + f 106/141/106 139/175/139 107/142/107 + f 107/142/107 139/175/139 140/176/140 + f 107/142/107 140/176/140 108/143/108 + f 108/143/108 140/176/140 141/177/141 + f 108/143/108 141/177/141 109/144/109 + f 109/144/109 141/177/141 142/178/142 + f 109/144/109 142/178/142 110/145/110 + f 110/145/110 142/178/142 143/179/143 + f 110/145/110 143/179/143 111/146/111 + f 111/146/111 143/179/143 144/180/144 + f 111/146/111 144/180/144 112/147/112 + f 112/147/112 144/180/144 145/181/145 + f 112/147/112 145/181/145 113/148/113 + f 113/148/113 145/181/145 146/182/146 + f 113/148/113 146/182/146 114/149/114 + f 114/149/114 146/182/146 147/183/147 + f 114/149/114 147/183/147 115/150/115 + f 115/150/115 147/183/147 148/184/148 + f 115/150/115 148/184/148 116/151/116 + f 116/151/116 148/184/148 149/185/149 + f 116/151/116 149/185/149 117/152/117 + f 117/152/117 149/185/149 150/186/150 + f 117/152/117 150/186/150 118/153/118 + f 118/153/118 150/186/150 151/187/151 + f 118/153/118 151/187/151 119/154/119 + f 119/154/119 151/187/151 152/188/152 + f 119/154/119 152/188/152 120/155/120 + f 120/155/120 152/188/152 153/189/153 + f 120/155/120 153/189/153 121/156/121 + f 121/156/121 153/189/153 154/190/154 + f 121/156/121 154/190/154 122/157/122 + f 122/157/122 154/190/154 155/191/155 + f 122/157/122 155/191/155 123/158/123 + f 123/158/123 155/191/155 156/192/156 + f 123/158/123 156/192/156 124/159/124 + f 124/159/124 156/192/156 157/193/157 + f 124/159/124 157/193/157 125/160/125 + f 125/160/125 157/193/157 158/194/158 + f 125/160/125 158/194/158 126/161/126 + f 126/161/126 158/194/158 159/195/159 + f 126/161/126 159/195/159 127/162/127 + f 127/162/127 159/195/159 160/196/160 + f 127/162/127 160/196/160 128/163/128 + f 128/163/128 160/196/160 161/197/161 + f 128/163/128 161/197/161 129/164/129 + f 129/164/129 161/197/161 130/198/130 + f 129/164/129 130/198/130 98/165/98 + f 130/166/130 162/199/162 163/200/163 + f 130/166/130 163/200/163 131/167/131 + f 131/167/131 163/200/163 164/201/164 + f 131/167/131 164/201/164 132/168/132 + f 132/168/132 164/201/164 165/202/165 + f 132/168/132 165/202/165 133/169/133 + f 133/169/133 165/202/165 166/203/166 + f 133/169/133 166/203/166 134/170/134 + f 134/170/134 166/203/166 167/204/167 + f 134/170/134 167/204/167 135/171/135 + f 135/171/135 167/204/167 168/205/168 + f 135/171/135 168/205/168 136/172/136 + f 136/172/136 168/205/168 169/206/169 + f 136/172/136 169/206/169 137/173/137 + f 137/173/137 169/206/169 170/207/170 + f 137/173/137 170/207/170 138/174/138 + f 138/174/138 170/207/170 171/208/171 + f 138/174/138 171/208/171 139/175/139 + f 139/175/139 171/208/171 172/209/172 + f 139/175/139 172/209/172 140/176/140 + f 140/176/140 172/209/172 173/210/173 + f 140/176/140 173/210/173 141/177/141 + f 141/177/141 173/210/173 174/211/174 + f 141/177/141 174/211/174 142/178/142 + f 142/178/142 174/211/174 175/212/175 + f 142/178/142 175/212/175 143/179/143 + f 143/179/143 175/212/175 176/213/176 + f 143/179/143 176/213/176 144/180/144 + f 144/180/144 176/213/176 177/214/177 + f 144/180/144 177/214/177 145/181/145 + f 145/181/145 177/214/177 178/215/178 + f 145/181/145 178/215/178 146/182/146 + f 146/182/146 178/215/178 179/216/179 + f 146/182/146 179/216/179 147/183/147 + f 147/183/147 179/216/179 180/217/180 + f 147/183/147 180/217/180 148/184/148 + f 148/184/148 180/217/180 181/218/181 + f 148/184/148 181/218/181 149/185/149 + f 149/185/149 181/218/181 182/219/182 + f 149/185/149 182/219/182 150/186/150 + f 150/186/150 182/219/182 183/220/183 + f 150/186/150 183/220/183 151/187/151 + f 151/187/151 183/220/183 184/221/184 + f 151/187/151 184/221/184 152/188/152 + f 152/188/152 184/221/184 185/222/185 + f 152/188/152 185/222/185 153/189/153 + f 153/189/153 185/222/185 186/223/186 + f 153/189/153 186/223/186 154/190/154 + f 154/190/154 186/223/186 187/224/187 + f 154/190/154 187/224/187 155/191/155 + f 155/191/155 187/224/187 188/225/188 + f 155/191/155 188/225/188 156/192/156 + f 156/192/156 188/225/188 189/226/189 + f 156/192/156 189/226/189 157/193/157 + f 157/193/157 189/226/189 190/227/190 + f 157/193/157 190/227/190 158/194/158 + f 158/194/158 190/227/190 191/228/191 + f 158/194/158 191/228/191 159/195/159 + f 159/195/159 191/228/191 192/229/192 + f 159/195/159 192/229/192 160/196/160 + f 160/196/160 192/229/192 193/230/193 + f 160/196/160 193/230/193 161/197/161 + f 161/197/161 193/230/193 162/231/162 + f 161/197/161 162/231/162 130/198/130 + f 162/199/162 194/232/194 195/233/195 + f 162/199/162 195/233/195 163/200/163 + f 163/200/163 195/233/195 196/234/196 + f 163/200/163 196/234/196 164/201/164 + f 164/201/164 196/234/196 197/235/197 + f 164/201/164 197/235/197 165/202/165 + f 165/202/165 197/235/197 198/236/198 + f 165/202/165 198/236/198 166/203/166 + f 166/203/166 198/236/198 199/237/199 + f 166/203/166 199/237/199 167/204/167 + f 167/204/167 199/237/199 200/238/200 + f 167/204/167 200/238/200 168/205/168 + f 168/205/168 200/238/200 201/239/201 + f 168/205/168 201/239/201 169/206/169 + f 169/206/169 201/239/201 202/240/202 + f 169/206/169 202/240/202 170/207/170 + f 170/207/170 202/240/202 203/241/203 + f 170/207/170 203/241/203 171/208/171 + f 171/208/171 203/241/203 204/242/204 + f 171/208/171 204/242/204 172/209/172 + f 172/209/172 204/242/204 205/243/205 + f 172/209/172 205/243/205 173/210/173 + f 173/210/173 205/243/205 206/244/206 + f 173/210/173 206/244/206 174/211/174 + f 174/211/174 206/244/206 207/245/207 + f 174/211/174 207/245/207 175/212/175 + f 175/212/175 207/245/207 208/246/208 + f 175/212/175 208/246/208 176/213/176 + f 176/213/176 208/246/208 209/247/209 + f 176/213/176 209/247/209 177/214/177 + f 177/214/177 209/247/209 210/248/210 + f 177/214/177 210/248/210 178/215/178 + f 178/215/178 210/248/210 211/249/211 + f 178/215/178 211/249/211 179/216/179 + f 179/216/179 211/249/211 212/250/212 + f 179/216/179 212/250/212 180/217/180 + f 180/217/180 212/250/212 213/251/213 + f 180/217/180 213/251/213 181/218/181 + f 181/218/181 213/251/213 214/252/214 + f 181/218/181 214/252/214 182/219/182 + f 182/219/182 214/252/214 215/253/215 + f 182/219/182 215/253/215 183/220/183 + f 183/220/183 215/253/215 216/254/216 + f 183/220/183 216/254/216 184/221/184 + f 184/221/184 216/254/216 217/255/217 + f 184/221/184 217/255/217 185/222/185 + f 185/222/185 217/255/217 218/256/218 + f 185/222/185 218/256/218 186/223/186 + f 186/223/186 218/256/218 219/257/219 + f 186/223/186 219/257/219 187/224/187 + f 187/224/187 219/257/219 220/258/220 + f 187/224/187 220/258/220 188/225/188 + f 188/225/188 220/258/220 221/259/221 + f 188/225/188 221/259/221 189/226/189 + f 189/226/189 221/259/221 222/260/222 + f 189/226/189 222/260/222 190/227/190 + f 190/227/190 222/260/222 223/261/223 + f 190/227/190 223/261/223 191/228/191 + f 191/228/191 223/261/223 224/262/224 + f 191/228/191 224/262/224 192/229/192 + f 192/229/192 224/262/224 225/263/225 + f 192/229/192 225/263/225 193/230/193 + f 193/230/193 225/263/225 194/264/194 + f 193/230/193 194/264/194 162/231/162 + f 194/232/194 226/265/226 227/266/227 + f 194/232/194 227/266/227 195/233/195 + f 195/233/195 227/266/227 228/267/228 + f 195/233/195 228/267/228 196/234/196 + f 196/234/196 228/267/228 229/268/229 + f 196/234/196 229/268/229 197/235/197 + f 197/235/197 229/268/229 230/269/230 + f 197/235/197 230/269/230 198/236/198 + f 198/236/198 230/269/230 231/270/231 + f 198/236/198 231/270/231 199/237/199 + f 199/237/199 231/270/231 232/271/232 + f 199/237/199 232/271/232 200/238/200 + f 200/238/200 232/271/232 233/272/233 + f 200/238/200 233/272/233 201/239/201 + f 201/239/201 233/272/233 234/273/234 + f 201/239/201 234/273/234 202/240/202 + f 202/240/202 234/273/234 235/274/235 + f 202/240/202 235/274/235 203/241/203 + f 203/241/203 235/274/235 236/275/236 + f 203/241/203 236/275/236 204/242/204 + f 204/242/204 236/275/236 237/276/237 + f 204/242/204 237/276/237 205/243/205 + f 205/243/205 237/276/237 238/277/238 + f 205/243/205 238/277/238 206/244/206 + f 206/244/206 238/277/238 239/278/239 + f 206/244/206 239/278/239 207/245/207 + f 207/245/207 239/278/239 240/279/240 + f 207/245/207 240/279/240 208/246/208 + f 208/246/208 240/279/240 241/280/241 + f 208/246/208 241/280/241 209/247/209 + f 209/247/209 241/280/241 242/281/242 + f 209/247/209 242/281/242 210/248/210 + f 210/248/210 242/281/242 243/282/243 + f 210/248/210 243/282/243 211/249/211 + f 211/249/211 243/282/243 244/283/244 + f 211/249/211 244/283/244 212/250/212 + f 212/250/212 244/283/244 245/284/245 + f 212/250/212 245/284/245 213/251/213 + f 213/251/213 245/284/245 246/285/246 + f 213/251/213 246/285/246 214/252/214 + f 214/252/214 246/285/246 247/286/247 + f 214/252/214 247/286/247 215/253/215 + f 215/253/215 247/286/247 248/287/248 + f 215/253/215 248/287/248 216/254/216 + f 216/254/216 248/287/248 249/288/249 + f 216/254/216 249/288/249 217/255/217 + f 217/255/217 249/288/249 250/289/250 + f 217/255/217 250/289/250 218/256/218 + f 218/256/218 250/289/250 251/290/251 + f 218/256/218 251/290/251 219/257/219 + f 219/257/219 251/290/251 252/291/252 + f 219/257/219 252/291/252 220/258/220 + f 220/258/220 252/291/252 253/292/253 + f 220/258/220 253/292/253 221/259/221 + f 221/259/221 253/292/253 254/293/254 + f 221/259/221 254/293/254 222/260/222 + f 222/260/222 254/293/254 255/294/255 + f 222/260/222 255/294/255 223/261/223 + f 223/261/223 255/294/255 256/295/256 + f 223/261/223 256/295/256 224/262/224 + f 224/262/224 256/295/256 257/296/257 + f 224/262/224 257/296/257 225/263/225 + f 225/263/225 257/296/257 226/297/226 + f 225/263/225 226/297/226 194/264/194 + f 226/265/226 258/298/258 259/299/259 + f 226/265/226 259/299/259 227/266/227 + f 227/266/227 259/299/259 260/300/260 + f 227/266/227 260/300/260 228/267/228 + f 228/267/228 260/300/260 261/301/261 + f 228/267/228 261/301/261 229/268/229 + f 229/268/229 261/301/261 262/302/262 + f 229/268/229 262/302/262 230/269/230 + f 230/269/230 262/302/262 263/303/263 + f 230/269/230 263/303/263 231/270/231 + f 231/270/231 263/303/263 264/304/264 + f 231/270/231 264/304/264 232/271/232 + f 232/271/232 264/304/264 265/305/265 + f 232/271/232 265/305/265 233/272/233 + f 233/272/233 265/305/265 266/306/266 + f 233/272/233 266/306/266 234/273/234 + f 234/273/234 266/306/266 267/307/267 + f 234/273/234 267/307/267 235/274/235 + f 235/274/235 267/307/267 268/308/268 + f 235/274/235 268/308/268 236/275/236 + f 236/275/236 268/308/268 269/309/269 + f 236/275/236 269/309/269 237/276/237 + f 237/276/237 269/309/269 270/310/270 + f 237/276/237 270/310/270 238/277/238 + f 238/277/238 270/310/270 271/311/271 + f 238/277/238 271/311/271 239/278/239 + f 239/278/239 271/311/271 272/312/272 + f 239/278/239 272/312/272 240/279/240 + f 240/279/240 272/312/272 273/313/273 + f 240/279/240 273/313/273 241/280/241 + f 241/280/241 273/313/273 274/314/274 + f 241/280/241 274/314/274 242/281/242 + f 242/281/242 274/314/274 275/315/275 + f 242/281/242 275/315/275 243/282/243 + f 243/282/243 275/315/275 276/316/276 + f 243/282/243 276/316/276 244/283/244 + f 244/283/244 276/316/276 277/317/277 + f 244/283/244 277/317/277 245/284/245 + f 245/284/245 277/317/277 278/318/278 + f 245/284/245 278/318/278 246/285/246 + f 246/285/246 278/318/278 279/319/279 + f 246/285/246 279/319/279 247/286/247 + f 247/286/247 279/319/279 280/320/280 + f 247/286/247 280/320/280 248/287/248 + f 248/287/248 280/320/280 281/321/281 + f 248/287/248 281/321/281 249/288/249 + f 249/288/249 281/321/281 282/322/282 + f 249/288/249 282/322/282 250/289/250 + f 250/289/250 282/322/282 283/323/283 + f 250/289/250 283/323/283 251/290/251 + f 251/290/251 283/323/283 284/324/284 + f 251/290/251 284/324/284 252/291/252 + f 252/291/252 284/324/284 285/325/285 + f 252/291/252 285/325/285 253/292/253 + f 253/292/253 285/325/285 286/326/286 + f 253/292/253 286/326/286 254/293/254 + f 254/293/254 286/326/286 287/327/287 + f 254/293/254 287/327/287 255/294/255 + f 255/294/255 287/327/287 288/328/288 + f 255/294/255 288/328/288 256/295/256 + f 256/295/256 288/328/288 289/329/289 + f 256/295/256 289/329/289 257/296/257 + f 257/296/257 289/329/289 258/330/258 + f 257/296/257 258/330/258 226/297/226 + f 258/298/258 290/331/290 291/332/291 + f 258/298/258 291/332/291 259/299/259 + f 259/299/259 291/332/291 292/333/292 + f 259/299/259 292/333/292 260/300/260 + f 260/300/260 292/333/292 293/334/293 + f 260/300/260 293/334/293 261/301/261 + f 261/301/261 293/334/293 294/335/294 + f 261/301/261 294/335/294 262/302/262 + f 262/302/262 294/335/294 295/336/295 + f 262/302/262 295/336/295 263/303/263 + f 263/303/263 295/336/295 296/337/296 + f 263/303/263 296/337/296 264/304/264 + f 264/304/264 296/337/296 297/338/297 + f 264/304/264 297/338/297 265/305/265 + f 265/305/265 297/338/297 298/339/298 + f 265/305/265 298/339/298 266/306/266 + f 266/306/266 298/339/298 299/340/299 + f 266/306/266 299/340/299 267/307/267 + f 267/307/267 299/340/299 300/341/300 + f 267/307/267 300/341/300 268/308/268 + f 268/308/268 300/341/300 301/342/301 + f 268/308/268 301/342/301 269/309/269 + f 269/309/269 301/342/301 302/343/302 + f 269/309/269 302/343/302 270/310/270 + f 270/310/270 302/343/302 303/344/303 + f 270/310/270 303/344/303 271/311/271 + f 271/311/271 303/344/303 304/345/304 + f 271/311/271 304/345/304 272/312/272 + f 272/312/272 304/345/304 305/346/305 + f 272/312/272 305/346/305 273/313/273 + f 273/313/273 305/346/305 306/347/306 + f 273/313/273 306/347/306 274/314/274 + f 274/314/274 306/347/306 307/348/307 + f 274/314/274 307/348/307 275/315/275 + f 275/315/275 307/348/307 308/349/308 + f 275/315/275 308/349/308 276/316/276 + f 276/316/276 308/349/308 309/350/309 + f 276/316/276 309/350/309 277/317/277 + f 277/317/277 309/350/309 310/351/310 + f 277/317/277 310/351/310 278/318/278 + f 278/318/278 310/351/310 311/352/311 + f 278/318/278 311/352/311 279/319/279 + f 279/319/279 311/352/311 312/353/312 + f 279/319/279 312/353/312 280/320/280 + f 280/320/280 312/353/312 313/354/313 + f 280/320/280 313/354/313 281/321/281 + f 281/321/281 313/354/313 314/355/314 + f 281/321/281 314/355/314 282/322/282 + f 282/322/282 314/355/314 315/356/315 + f 282/322/282 315/356/315 283/323/283 + f 283/323/283 315/356/315 316/357/316 + f 283/323/283 316/357/316 284/324/284 + f 284/324/284 316/357/316 317/358/317 + f 284/324/284 317/358/317 285/325/285 + f 285/325/285 317/358/317 318/359/318 + f 285/325/285 318/359/318 286/326/286 + f 286/326/286 318/359/318 319/360/319 + f 286/326/286 319/360/319 287/327/287 + f 287/327/287 319/360/319 320/361/320 + f 287/327/287 320/361/320 288/328/288 + f 288/328/288 320/361/320 321/362/321 + f 288/328/288 321/362/321 289/329/289 + f 289/329/289 321/362/321 290/363/290 + f 289/329/289 290/363/290 258/330/258 + f 290/331/290 322/364/322 323/365/323 + f 290/331/290 323/365/323 291/332/291 + f 291/332/291 323/365/323 324/366/324 + f 291/332/291 324/366/324 292/333/292 + f 292/333/292 324/366/324 325/367/325 + f 292/333/292 325/367/325 293/334/293 + f 293/334/293 325/367/325 326/368/326 + f 293/334/293 326/368/326 294/335/294 + f 294/335/294 326/368/326 327/369/327 + f 294/335/294 327/369/327 295/336/295 + f 295/336/295 327/369/327 328/370/328 + f 295/336/295 328/370/328 296/337/296 + f 296/337/296 328/370/328 329/371/329 + f 296/337/296 329/371/329 297/338/297 + f 297/338/297 329/371/329 330/372/330 + f 297/338/297 330/372/330 298/339/298 + f 298/339/298 330/372/330 331/373/331 + f 298/339/298 331/373/331 299/340/299 + f 299/340/299 331/373/331 332/374/332 + f 299/340/299 332/374/332 300/341/300 + f 300/341/300 332/374/332 333/375/333 + f 300/341/300 333/375/333 301/342/301 + f 301/342/301 333/375/333 334/376/334 + f 301/342/301 334/376/334 302/343/302 + f 302/343/302 334/376/334 335/377/335 + f 302/343/302 335/377/335 303/344/303 + f 303/344/303 335/377/335 336/378/336 + f 303/344/303 336/378/336 304/345/304 + f 304/345/304 336/378/336 337/379/337 + f 304/345/304 337/379/337 305/346/305 + f 305/346/305 337/379/337 338/380/338 + f 305/346/305 338/380/338 306/347/306 + f 306/347/306 338/380/338 339/381/339 + f 306/347/306 339/381/339 307/348/307 + f 307/348/307 339/381/339 340/382/340 + f 307/348/307 340/382/340 308/349/308 + f 308/349/308 340/382/340 341/383/341 + f 308/349/308 341/383/341 309/350/309 + f 309/350/309 341/383/341 342/384/342 + f 309/350/309 342/384/342 310/351/310 + f 310/351/310 342/384/342 343/385/343 + f 310/351/310 343/385/343 311/352/311 + f 311/352/311 343/385/343 344/386/344 + f 311/352/311 344/386/344 312/353/312 + f 312/353/312 344/386/344 345/387/345 + f 312/353/312 345/387/345 313/354/313 + f 313/354/313 345/387/345 346/388/346 + f 313/354/313 346/388/346 314/355/314 + f 314/355/314 346/388/346 347/389/347 + f 314/355/314 347/389/347 315/356/315 + f 315/356/315 347/389/347 348/390/348 + f 315/356/315 348/390/348 316/357/316 + f 316/357/316 348/390/348 349/391/349 + f 316/357/316 349/391/349 317/358/317 + f 317/358/317 349/391/349 350/392/350 + f 317/358/317 350/392/350 318/359/318 + f 318/359/318 350/392/350 351/393/351 + f 318/359/318 351/393/351 319/360/319 + f 319/360/319 351/393/351 352/394/352 + f 319/360/319 352/394/352 320/361/320 + f 320/361/320 352/394/352 353/395/353 + f 320/361/320 353/395/353 321/362/321 + f 321/362/321 353/395/353 322/396/322 + f 321/362/321 322/396/322 290/363/290 + f 322/364/322 354/397/354 355/398/355 + f 322/364/322 355/398/355 323/365/323 + f 323/365/323 355/398/355 356/399/356 + f 323/365/323 356/399/356 324/366/324 + f 324/366/324 356/399/356 357/400/357 + f 324/366/324 357/400/357 325/367/325 + f 325/367/325 357/400/357 358/401/358 + f 325/367/325 358/401/358 326/368/326 + f 326/368/326 358/401/358 359/402/359 + f 326/368/326 359/402/359 327/369/327 + f 327/369/327 359/402/359 360/403/360 + f 327/369/327 360/403/360 328/370/328 + f 328/370/328 360/403/360 361/404/361 + f 328/370/328 361/404/361 329/371/329 + f 329/371/329 361/404/361 362/405/362 + f 329/371/329 362/405/362 330/372/330 + f 330/372/330 362/405/362 363/406/363 + f 330/372/330 363/406/363 331/373/331 + f 331/373/331 363/406/363 364/407/364 + f 331/373/331 364/407/364 332/374/332 + f 332/374/332 364/407/364 365/408/365 + f 332/374/332 365/408/365 333/375/333 + f 333/375/333 365/408/365 366/409/366 + f 333/375/333 366/409/366 334/376/334 + f 334/376/334 366/409/366 367/410/367 + f 334/376/334 367/410/367 335/377/335 + f 335/377/335 367/410/367 368/411/368 + f 335/377/335 368/411/368 336/378/336 + f 336/378/336 368/411/368 369/412/369 + f 336/378/336 369/412/369 337/379/337 + f 337/379/337 369/412/369 370/413/370 + f 337/379/337 370/413/370 338/380/338 + f 338/380/338 370/413/370 371/414/371 + f 338/380/338 371/414/371 339/381/339 + f 339/381/339 371/414/371 372/415/372 + f 339/381/339 372/415/372 340/382/340 + f 340/382/340 372/415/372 373/416/373 + f 340/382/340 373/416/373 341/383/341 + f 341/383/341 373/416/373 374/417/374 + f 341/383/341 374/417/374 342/384/342 + f 342/384/342 374/417/374 375/418/375 + f 342/384/342 375/418/375 343/385/343 + f 343/385/343 375/418/375 376/419/376 + f 343/385/343 376/419/376 344/386/344 + f 344/386/344 376/419/376 377/420/377 + f 344/386/344 377/420/377 345/387/345 + f 345/387/345 377/420/377 378/421/378 + f 345/387/345 378/421/378 346/388/346 + f 346/388/346 378/421/378 379/422/379 + f 346/388/346 379/422/379 347/389/347 + f 347/389/347 379/422/379 380/423/380 + f 347/389/347 380/423/380 348/390/348 + f 348/390/348 380/423/380 381/424/381 + f 348/390/348 381/424/381 349/391/349 + f 349/391/349 381/424/381 382/425/382 + f 349/391/349 382/425/382 350/392/350 + f 350/392/350 382/425/382 383/426/383 + f 350/392/350 383/426/383 351/393/351 + f 351/393/351 383/426/383 384/427/384 + f 351/393/351 384/427/384 352/394/352 + f 352/394/352 384/427/384 385/428/385 + f 352/394/352 385/428/385 353/395/353 + f 353/395/353 385/428/385 354/429/354 + f 353/395/353 354/429/354 322/396/322 + f 354/397/354 386/430/386 387/431/387 + f 354/397/354 387/431/387 355/398/355 + f 355/398/355 387/431/387 388/432/388 + f 355/398/355 388/432/388 356/399/356 + f 356/399/356 388/432/388 389/433/389 + f 356/399/356 389/433/389 357/400/357 + f 357/400/357 389/433/389 390/434/390 + f 357/400/357 390/434/390 358/401/358 + f 358/401/358 390/434/390 391/435/391 + f 358/401/358 391/435/391 359/402/359 + f 359/402/359 391/435/391 392/436/392 + f 359/402/359 392/436/392 360/403/360 + f 360/403/360 392/436/392 393/437/393 + f 360/403/360 393/437/393 361/404/361 + f 361/404/361 393/437/393 394/438/394 + f 361/404/361 394/438/394 362/405/362 + f 362/405/362 394/438/394 395/439/395 + f 362/405/362 395/439/395 363/406/363 + f 363/406/363 395/439/395 396/440/396 + f 363/406/363 396/440/396 364/407/364 + f 364/407/364 396/440/396 397/441/397 + f 364/407/364 397/441/397 365/408/365 + f 365/408/365 397/441/397 398/442/398 + f 365/408/365 398/442/398 366/409/366 + f 366/409/366 398/442/398 399/443/399 + f 366/409/366 399/443/399 367/410/367 + f 367/410/367 399/443/399 400/444/400 + f 367/410/367 400/444/400 368/411/368 + f 368/411/368 400/444/400 401/445/401 + f 368/411/368 401/445/401 369/412/369 + f 369/412/369 401/445/401 402/446/402 + f 369/412/369 402/446/402 370/413/370 + f 370/413/370 402/446/402 403/447/403 + f 370/413/370 403/447/403 371/414/371 + f 371/414/371 403/447/403 404/448/404 + f 371/414/371 404/448/404 372/415/372 + f 372/415/372 404/448/404 405/449/405 + f 372/415/372 405/449/405 373/416/373 + f 373/416/373 405/449/405 406/450/406 + f 373/416/373 406/450/406 374/417/374 + f 374/417/374 406/450/406 407/451/407 + f 374/417/374 407/451/407 375/418/375 + f 375/418/375 407/451/407 408/452/408 + f 375/418/375 408/452/408 376/419/376 + f 376/419/376 408/452/408 409/453/409 + f 376/419/376 409/453/409 377/420/377 + f 377/420/377 409/453/409 410/454/410 + f 377/420/377 410/454/410 378/421/378 + f 378/421/378 410/454/410 411/455/411 + f 378/421/378 411/455/411 379/422/379 + f 379/422/379 411/455/411 412/456/412 + f 379/422/379 412/456/412 380/423/380 + f 380/423/380 412/456/412 413/457/413 + f 380/423/380 413/457/413 381/424/381 + f 381/424/381 413/457/413 414/458/414 + f 381/424/381 414/458/414 382/425/382 + f 382/425/382 414/458/414 415/459/415 + f 382/425/382 415/459/415 383/426/383 + f 383/426/383 415/459/415 416/460/416 + f 383/426/383 416/460/416 384/427/384 + f 384/427/384 416/460/416 417/461/417 + f 384/427/384 417/461/417 385/428/385 + f 385/428/385 417/461/417 386/462/386 + f 385/428/385 386/462/386 354/429/354 + f 386/430/386 418/463/418 419/464/419 + f 386/430/386 419/464/419 387/431/387 + f 387/431/387 419/464/419 420/465/420 + f 387/431/387 420/465/420 388/432/388 + f 388/432/388 420/465/420 421/466/421 + f 388/432/388 421/466/421 389/433/389 + f 389/433/389 421/466/421 422/467/422 + f 389/433/389 422/467/422 390/434/390 + f 390/434/390 422/467/422 423/468/423 + f 390/434/390 423/468/423 391/435/391 + f 391/435/391 423/468/423 424/469/424 + f 391/435/391 424/469/424 392/436/392 + f 392/436/392 424/469/424 425/470/425 + f 392/436/392 425/470/425 393/437/393 + f 393/437/393 425/470/425 426/471/426 + f 393/437/393 426/471/426 394/438/394 + f 394/438/394 426/471/426 427/472/427 + f 394/438/394 427/472/427 395/439/395 + f 395/439/395 427/472/427 428/473/428 + f 395/439/395 428/473/428 396/440/396 + f 396/440/396 428/473/428 429/474/429 + f 396/440/396 429/474/429 397/441/397 + f 397/441/397 429/474/429 430/475/430 + f 397/441/397 430/475/430 398/442/398 + f 398/442/398 430/475/430 431/476/431 + f 398/442/398 431/476/431 399/443/399 + f 399/443/399 431/476/431 432/477/432 + f 399/443/399 432/477/432 400/444/400 + f 400/444/400 432/477/432 433/478/433 + f 400/444/400 433/478/433 401/445/401 + f 401/445/401 433/478/433 434/479/434 + f 401/445/401 434/479/434 402/446/402 + f 402/446/402 434/479/434 435/480/435 + f 402/446/402 435/480/435 403/447/403 + f 403/447/403 435/480/435 436/481/436 + f 403/447/403 436/481/436 404/448/404 + f 404/448/404 436/481/436 437/482/437 + f 404/448/404 437/482/437 405/449/405 + f 405/449/405 437/482/437 438/483/438 + f 405/449/405 438/483/438 406/450/406 + f 406/450/406 438/483/438 439/484/439 + f 406/450/406 439/484/439 407/451/407 + f 407/451/407 439/484/439 440/485/440 + f 407/451/407 440/485/440 408/452/408 + f 408/452/408 440/485/440 441/486/441 + f 408/452/408 441/486/441 409/453/409 + f 409/453/409 441/486/441 442/487/442 + f 409/453/409 442/487/442 410/454/410 + f 410/454/410 442/487/442 443/488/443 + f 410/454/410 443/488/443 411/455/411 + f 411/455/411 443/488/443 444/489/444 + f 411/455/411 444/489/444 412/456/412 + f 412/456/412 444/489/444 445/490/445 + f 412/456/412 445/490/445 413/457/413 + f 413/457/413 445/490/445 446/491/446 + f 413/457/413 446/491/446 414/458/414 + f 414/458/414 446/491/446 447/492/447 + f 414/458/414 447/492/447 415/459/415 + f 415/459/415 447/492/447 448/493/448 + f 415/459/415 448/493/448 416/460/416 + f 416/460/416 448/493/448 449/494/449 + f 416/460/416 449/494/449 417/461/417 + f 417/461/417 449/494/449 418/495/418 + f 417/461/417 418/495/418 386/462/386 + f 418/463/418 450/496/450 451/497/451 + f 418/463/418 451/497/451 419/464/419 + f 419/464/419 451/497/451 452/498/452 + f 419/464/419 452/498/452 420/465/420 + f 420/465/420 452/498/452 453/499/453 + f 420/465/420 453/499/453 421/466/421 + f 421/466/421 453/499/453 454/500/454 + f 421/466/421 454/500/454 422/467/422 + f 422/467/422 454/500/454 455/501/455 + f 422/467/422 455/501/455 423/468/423 + f 423/468/423 455/501/455 456/502/456 + f 423/468/423 456/502/456 424/469/424 + f 424/469/424 456/502/456 457/503/457 + f 424/469/424 457/503/457 425/470/425 + f 425/470/425 457/503/457 458/504/458 + f 425/470/425 458/504/458 426/471/426 + f 426/471/426 458/504/458 459/505/459 + f 426/471/426 459/505/459 427/472/427 + f 427/472/427 459/505/459 460/506/460 + f 427/472/427 460/506/460 428/473/428 + f 428/473/428 460/506/460 461/507/461 + f 428/473/428 461/507/461 429/474/429 + f 429/474/429 461/507/461 462/508/462 + f 429/474/429 462/508/462 430/475/430 + f 430/475/430 462/508/462 463/509/463 + f 430/475/430 463/509/463 431/476/431 + f 431/476/431 463/509/463 464/510/464 + f 431/476/431 464/510/464 432/477/432 + f 432/477/432 464/510/464 465/511/465 + f 432/477/432 465/511/465 433/478/433 + f 433/478/433 465/511/465 466/512/466 + f 433/478/433 466/512/466 434/479/434 + f 434/479/434 466/512/466 467/513/467 + f 434/479/434 467/513/467 435/480/435 + f 435/480/435 467/513/467 468/514/468 + f 435/480/435 468/514/468 436/481/436 + f 436/481/436 468/514/468 469/515/469 + f 436/481/436 469/515/469 437/482/437 + f 437/482/437 469/515/469 470/516/470 + f 437/482/437 470/516/470 438/483/438 + f 438/483/438 470/516/470 471/517/471 + f 438/483/438 471/517/471 439/484/439 + f 439/484/439 471/517/471 472/518/472 + f 439/484/439 472/518/472 440/485/440 + f 440/485/440 472/518/472 473/519/473 + f 440/485/440 473/519/473 441/486/441 + f 441/486/441 473/519/473 474/520/474 + f 441/486/441 474/520/474 442/487/442 + f 442/487/442 474/520/474 475/521/475 + f 442/487/442 475/521/475 443/488/443 + f 443/488/443 475/521/475 476/522/476 + f 443/488/443 476/522/476 444/489/444 + f 444/489/444 476/522/476 477/523/477 + f 444/489/444 477/523/477 445/490/445 + f 445/490/445 477/523/477 478/524/478 + f 445/490/445 478/524/478 446/491/446 + f 446/491/446 478/524/478 479/525/479 + f 446/491/446 479/525/479 447/492/447 + f 447/492/447 479/525/479 480/526/480 + f 447/492/447 480/526/480 448/493/448 + f 448/493/448 480/526/480 481/527/481 + f 448/493/448 481/527/481 449/494/449 + f 449/494/449 481/527/481 450/528/450 + f 449/494/449 450/528/450 418/495/418 + f 482/529/482 451/497/451 450/496/450 + f 482/530/482 452/498/452 451/497/451 + f 482/531/482 453/499/453 452/498/452 + f 482/532/482 454/500/454 453/499/453 + f 482/533/482 455/501/455 454/500/454 + f 482/534/482 456/502/456 455/501/455 + f 482/535/482 457/503/457 456/502/456 + f 482/536/482 458/504/458 457/503/457 + f 482/537/482 459/505/459 458/504/458 + f 482/538/482 460/506/460 459/505/459 + f 482/539/482 461/507/461 460/506/460 + f 482/540/482 462/508/462 461/507/461 + f 482/541/482 463/509/463 462/508/462 + f 482/542/482 464/510/464 463/509/463 + f 482/543/482 465/511/465 464/510/464 + f 482/544/482 466/512/466 465/511/465 + f 482/545/482 467/513/467 466/512/466 + f 482/546/482 468/514/468 467/513/467 + f 482/547/482 469/515/469 468/514/468 + f 482/548/482 470/516/470 469/515/469 + f 482/549/482 471/517/471 470/516/470 + f 482/550/482 472/518/472 471/517/471 + f 482/551/482 473/519/473 472/518/472 + f 482/552/482 474/520/474 473/519/473 + f 482/553/482 475/521/475 474/520/474 + f 482/554/482 476/522/476 475/521/475 + f 482/555/482 477/523/477 476/522/476 + f 482/556/482 478/524/478 477/523/477 + f 482/557/482 479/525/479 478/524/478 + f 482/558/482 480/526/480 479/525/479 + f 482/559/482 481/527/481 480/526/480 + f 482/560/482 450/528/450 481/527/481 + ` + + return OBJ(obj) +} \ No newline at end of file diff --git a/public/gl/gl.js b/public/gl/gl.js index 7aca9c9..d68161d 100644 --- a/public/gl/gl.js +++ b/public/gl/gl.js @@ -5,23 +5,22 @@ export { Mesh } from './core/Mesh.js' export { Renderer } from './core/Renderer.js' export { Scene } from './core/Scene.js' export { Shader } from './core/Shader.js' - export { Mat4 } from './math/Mat4.js' -export { M as Math } from './math/Math.js' export { Vec3 } from './math/Vec3.js' -export { Cube } from './model/Cube.js' - +export { M as Math } from './math/Math.js' +export { Cube } from './geometry/Cube.js' +export { Sphere } from './geometry/Sphere.js' +export { OBJ } from './geometry/OBJ.js' export { File } from './io/File.js' export { Input } from './io/Input.js' - export { SimpleController } from './controller/SimpleController.js' - export { SimpleShader } from './shader/SimpleShader.js' export { Loop } export { DT } import { Input } from './io/Input.js' +import { gl } from './core/Renderer.js' var DT = 0; var last = Date.now() @@ -31,6 +30,8 @@ const Loop = (fn) => { var now = Date.now() DT = ( now - last) / 1000 last = now + gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); + gl.clearColor(0, 0, 0, 1); fn() window.requestAnimationFrame(callback) } diff --git a/public/gl/model/Cube.js b/public/gl/model/Cube.js deleted file mode 100644 index 8583afb..0000000 --- a/public/gl/model/Cube.js +++ /dev/null @@ -1,65 +0,0 @@ -import { Mesh } from '../core/Mesh.js' - -export const Cube = () => { - - const data = [ - -1.0, 1.0, -1.0, 0.5, 0.5, 0.5, - -1.0, 1.0, 1.0, 0.5, 0.5, 0.5, - 1.0, 1.0, 1.0, 0.5, 0.5, 0.5, - 1.0, 1.0, -1.0, 0.5, 0.5, 0.5, - -1.0, 1.0, 1.0, 0.75, 0.25, 0.5, - -1.0, -1.0, 1.0, 0.75, 0.25, 0.5, - -1.0, -1.0, -1.0, 0.75, 0.25, 0.5, - -1.0, 1.0, -1.0, 0.75, 0.25, 0.5, - 1.0, 1.0, 1.0, 0.25, 0.25, 0.75, - 1.0, -1.0, 1.0, 0.25, 0.25, 0.75, - 1.0, -1.0, -1.0, 0.25, 0.25, 0.75, - 1.0, 1.0, -1.0, 0.25, 0.25, 0.75, - 1.0, 1.0, 1.0, 1.0, 0.0, 0.15, - 1.0, -1.0, 1.0, 1.0, 0.0, 0.15, - -1.0, -1.0, 1.0, 1.0, 0.0, 0.15, - -1.0, 1.0, 1.0, 1.0, 0.0, 0.15, - 1.0, 1.0, -1.0, 0.0, 1.0, 0.15, - 1.0, -1.0, -1.0, 0.0, 1.0, 0.15, - -1.0, -1.0, -1.0, 0.0, 1.0, 0.15, - -1.0, 1.0, -1.0, 0.0, 1.0, 0.15, - -1.0, -1.0, -1.0, 0.5, 0.5, 1.0, - -1.0, -1.0, 1.0, 0.5, 0.5, 1.0, - 1.0, -1.0, 1.0, 0.5, 0.5, 1.0, - 1.0, -1.0, -1.0, 0.5, 0.5, 1.0, - ]; - - const indicies = [ - 0, 1, 2, - 0, 2, 3, - 5, 4, 6, - 6, 4, 7, - 8, 9, 10, - 8, 10, 11, - 13, 12, 14, - 15, 14, 12, - 16, 17, 18, - 16, 18, 19, - 21, 20, 22, - 22, 20, 23 - ]; - - const verticies = [] - const colors = [] - - for (let x = 0; x < indicies.length; x++) { - var i = indicies[x] - verticies.push(data[i * 6 + 2]) - verticies.push(data[i * 6 + 1]) - verticies.push(data[i * 6 + 0]) - colors.push(data[i * 6 + 3]) - colors.push(data[i * 6 + 4]) - colors.push(data[i * 6 + 5]) - } - - return new Mesh(indicies.length) - .store(verticies, 3) - .store(colors, 3) - .finish() - -} \ No newline at end of file diff --git a/public/gl/shader/SimpleShader.js b/public/gl/shader/SimpleShader.js index 715aa60..3bca731 100644 --- a/public/gl/shader/SimpleShader.js +++ b/public/gl/shader/SimpleShader.js @@ -6,16 +6,17 @@ export const SimpleShader = () => { precision mediump float; attribute vec3 position; - attribute vec3 color; - + attribute vec3 normal; + attribute vec3 uv; + uniform mat4 proj; uniform mat4 view; uniform mat4 tran; - - varying vec3 color_pass; + + varying vec3 color; void main() { - color_pass = color; + color.xyz = (position.xyz + 1.0) / 2.0; gl_Position = proj * view * tran * vec4(position, 1.0); } ` @@ -23,10 +24,10 @@ export const SimpleShader = () => { const FragmentCode = ` precision mediump float; - varying vec3 color_pass; + varying vec3 color; void main() { - gl_FragColor = vec4(color_pass, 1.0); + gl_FragColor = vec4(color, 1.0); } ` return new Shader(VertexCode, FragmentCode)