kiki/coffee/geom.coffee
monsterkodi b9cb4c7759 gears
2016-08-20 16:46:17 +02:00

386 lines
18 KiB
CoffeeScript

class Geom
@gear: ->
# glInterleavedArrays (GL_N3F_V3F, 0, gearInterleavedQuads)
# glDrawArrays (GL_QUADS, 0, gearNumQuads*4)
# glInterleavedArrays (GL_N3F_V3F, 0, gearInterleavedQuadStrips)
# for (int i = 0; i < gearNumQuadStrips; i++)
# glDrawArrays (GL_QUAD_STRIP, gearQuadStripIndices[i]/6
# (gearQuadStripIndices[i+1] - gearQuadStripIndices[i])/6)
quads = @gearInterleavedQuads
numQuads = quads.length/24
triangles = numQuads * 2
positions = new Float32Array triangles * 3 * 3
normals = new Float32Array triangles * 3 * 3
pi = -1
for q in [0...numQuads]
qi = q * 24
for j in [0,1,2,0,2,3]
jj = j * 6
for i in [0...3]
positions[pi+=1] = quads[qi+jj+i+3]; normals[pi] = quads[qi+jj+i]
geom = new THREE.BufferGeometry
geom.addAttribute 'position', new THREE.BufferAttribute positions, 3
geom.addAttribute 'normal', new THREE.BufferAttribute normals, 3
geom
@gearInterleavedQuads = [ # 1152 = 48 * 24
0.981, 0.195, -0.000, 0.375, 0.155, 0.087,
0.981, 0.195, -0.000, 0.406, -0.000, 0.087,
0.981, 0.195, -0.000, 0.406, -0.000, -0.087,
0.981, 0.195, -0.000, 0.375, 0.155, -0.087,
0.556, 0.831, -0.000, 0.155, 0.375, 0.087,
0.556, 0.831, -0.000, 0.287, 0.287, 0.087,
0.556, 0.831, -0.000, 0.287, 0.287, -0.087,
0.556, 0.831, -0.000, 0.155, 0.375, -0.087,
-0.195, 0.981, -0.000,-0.155, 0.375, 0.087,
-0.195, 0.981, -0.000, 0.000, 0.406, 0.087,
-0.195, 0.981, -0.000, 0.000, 0.406, -0.087,
-0.195, 0.981, -0.000,-0.155, 0.375, -0.087,
-0.831, 0.556, -0.000,-0.375, 0.155, 0.087,
-0.831, 0.556, -0.000,-0.287, 0.287, 0.087,
-0.831, 0.556, -0.000,-0.287, 0.287, -0.087,
-0.831, 0.556, -0.000,-0.375, 0.155, -0.087,
-0.981, -0.195, 0.000,-0.375, -0.155, 0.087,
-0.981, -0.195, 0.000,-0.406, 0.000, 0.087,
-0.981, -0.195, 0.000,-0.406, 0.000, -0.087,
-0.981, -0.195, 0.000,-0.375, -0.155, -0.087,
-0.556, -0.831, 0.000,-0.155, -0.375, 0.087,
-0.556, -0.831, 0.000,-0.287, -0.287, 0.087,
-0.556, -0.831, 0.000,-0.287, -0.287, -0.087,
-0.556, -0.831, 0.000,-0.155, -0.375, -0.087,
0.195, -0.981, 0.000, 0.155, -0.375, 0.087,
0.195, -0.981, 0.000,-0.000, -0.406, 0.087,
0.195, -0.981, 0.000,-0.000, -0.406, -0.087,
0.195, -0.981, 0.000, 0.155, -0.375, -0.087,
0.831, -0.556, 0.000, 0.375, -0.155, 0.087,
0.831, -0.556, 0.000, 0.287, -0.287, 0.087,
0.831, -0.556, 0.000, 0.287, -0.287, -0.087,
0.831, -0.556, 0.000, 0.375, -0.155, -0.087,
-0.021, -1.000, 0.000, 0.534, -0.159, -0.056,
-0.021, -1.000, 0.000, 0.534, -0.159, 0.056,
-0.021, -1.000, 0.000, 0.375, -0.155, 0.087,
-0.021, -1.000, 0.000, 0.375, -0.155, -0.087,
0.187, -0.037, -0.982, 0.554, -0.058, -0.056,
0.187, -0.037, -0.982, 0.534, -0.159, -0.056,
0.143, -0.046, -0.989, 0.375, -0.155, -0.087,
0.149, -0.012, -0.989, 0.406, -0.000, -0.087,
0.363, 0.932, -0.000, 0.554, -0.058, 0.056,
0.363, 0.932, -0.000, 0.554, -0.058, -0.056,
0.363, 0.932, -0.000, 0.406, -0.000, -0.087,
0.363, 0.932, -0.000, 0.406, -0.000, 0.087,
0.981, -0.195, 0.000, 0.554, -0.058, 0.056,
0.981, -0.195, 0.000, 0.534, -0.159, 0.056,
0.981, -0.195, 0.000, 0.534, -0.159, -0.056,
0.981, -0.195, 0.000, 0.554, -0.058, -0.056,
0.187, -0.037, 0.982, 0.534, -0.159, 0.056,
0.187, -0.037, 0.982, 0.554, -0.058, 0.056,
0.149, -0.012, 0.989, 0.406, -0.000, 0.087,
0.143, -0.046, 0.989, 0.375, -0.155, 0.087,
-0.722, -0.692, 0.000, 0.266, -0.490, -0.056,
-0.722, -0.692, 0.000, 0.266, -0.490, 0.056,
-0.722, -0.692, 0.000, 0.155, -0.375, 0.087,
-0.722, -0.692, 0.000, 0.155, -0.375, -0.087,
0.106, -0.159, -0.982, 0.351, -0.433, -0.056,
0.106, -0.159, -0.982, 0.266, -0.490, -0.056,
0.069, -0.133, -0.989, 0.155, -0.375, -0.087,
0.097, -0.114, -0.989, 0.287, -0.287, -0.087,
0.916, 0.402, -0.000, 0.351, -0.433, 0.056,
0.916, 0.402, -0.000, 0.351, -0.433, -0.056,
0.916, 0.402, -0.000, 0.287, -0.287, -0.087,
0.916, 0.402, -0.000, 0.287, -0.287, 0.087,
0.556, -0.831, 0.000, 0.351, -0.433, 0.056,
0.556, -0.831, 0.000, 0.266, -0.490, 0.056,
0.556, -0.831, 0.000, 0.266, -0.490, -0.056,
0.556, -0.831, 0.000, 0.351, -0.433, -0.056,
0.106, -0.159, 0.982, 0.266, -0.490, 0.056,
0.106, -0.159, 0.982, 0.351, -0.433, 0.056,
0.097, -0.114, 0.989, 0.287, -0.287, 0.087,
0.069, -0.133, 0.989, 0.155, -0.375, 0.087,
-1.000, 0.021, -0.000,-0.159, -0.534, -0.056,
-1.000, 0.021, -0.000,-0.159, -0.534, 0.056,
-1.000, 0.021, -0.000,-0.155, -0.375, 0.087,
-1.000, 0.021, -0.000,-0.155, -0.375, -0.087,
-0.037, -0.187, -0.982,-0.058, -0.554, -0.056,
-0.037, -0.187, -0.982,-0.159, -0.534, -0.056,
-0.046, -0.143, -0.989,-0.155, -0.375, -0.087,
-0.012, -0.149, -0.989,-0.000, -0.406, -0.087,
0.932, -0.363, 0.000,-0.058, -0.554, 0.056,
0.932, -0.363, 0.000,-0.058, -0.554, -0.056,
0.932, -0.363, 0.000,-0.000, -0.406, -0.087,
0.932, -0.363, 0.000,-0.000, -0.406, 0.087,
-0.195, -0.981, 0.000,-0.058, -0.554, 0.056,
-0.195, -0.981, 0.000,-0.159, -0.534, 0.056,
-0.195, -0.981, 0.000,-0.159, -0.534, -0.056,
-0.195, -0.981, 0.000,-0.058, -0.554, -0.056,
-0.037, -0.187, 0.982,-0.159, -0.534, 0.056,
-0.037, -0.187, 0.982,-0.058, -0.554, 0.056,
-0.012, -0.149, 0.989,-0.000, -0.406, 0.087,
-0.046, -0.143, 0.989,-0.155, -0.375, 0.087,
-0.692, 0.722, -0.000,-0.490, -0.266, -0.056,
-0.692, 0.722, -0.000,-0.490, -0.266, 0.056,
-0.692, 0.722, -0.000,-0.375, -0.155, 0.087,
-0.692, 0.722, -0.000,-0.375, -0.155, -0.087,
-0.159, -0.106, -0.982,-0.433, -0.351, -0.056,
-0.159, -0.106, -0.982,-0.490, -0.266, -0.056,
-0.133, -0.069, -0.989,-0.375, -0.155, -0.087,
-0.114, -0.097, -0.989,-0.287, -0.287, -0.087,
0.402, -0.916, 0.000,-0.433, -0.351, 0.056,
0.402, -0.916, 0.000,-0.433, -0.351, -0.056,
0.402, -0.916, 0.000,-0.287, -0.287, -0.087,
0.402, -0.916, 0.000,-0.287, -0.287, 0.087,
-0.831, -0.556, 0.000,-0.433, -0.351, 0.056,
-0.831, -0.556, 0.000,-0.490, -0.266, 0.056,
-0.831, -0.556, 0.000,-0.490, -0.266, -0.056,
-0.831, -0.556, 0.000,-0.433, -0.351, -0.056,
-0.159, -0.106, 0.982,-0.490, -0.266, 0.056,
-0.159, -0.106, 0.982,-0.433, -0.351, 0.056,
-0.114, -0.097, 0.989,-0.287, -0.287, 0.087,
-0.133, -0.069, 0.989,-0.375, -0.155, 0.087,
0.021, 1.000, -0.000,-0.534, 0.159, -0.056,
0.021, 1.000, -0.000,-0.534, 0.159, 0.056,
0.021, 1.000, -0.000,-0.375, 0.155, 0.087,
0.021, 1.000, -0.000,-0.375, 0.155, -0.087,
-0.187, 0.037, -0.982,-0.554, 0.058, -0.056,
-0.187, 0.037, -0.982,-0.534, 0.159, -0.056,
-0.143, 0.046, -0.989,-0.375, 0.155, -0.087,
-0.149, 0.012, -0.989,-0.406, 0.000, -0.087,
-0.363, -0.932, 0.000,-0.554, 0.058, 0.056,
-0.363, -0.932, 0.000,-0.554, 0.058, -0.056,
-0.363, -0.932, 0.000,-0.406, 0.000, -0.087,
-0.363, -0.932, 0.000,-0.406, 0.000, 0.087,
-0.981, 0.195, -0.000,-0.554, 0.058, 0.056,
-0.981, 0.195, -0.000,-0.534, 0.159, 0.056,
-0.981, 0.195, -0.000,-0.534, 0.159, -0.056,
-0.981, 0.195, -0.000,-0.554, 0.058, -0.056,
-0.187, 0.037, 0.982,-0.534, 0.159, 0.056,
-0.187, 0.037, 0.982,-0.554, 0.058, 0.056,
-0.149, 0.012, 0.989,-0.406, 0.000, 0.087,
-0.143, 0.046, 0.989,-0.375, 0.155, 0.087,
0.722, 0.692, -0.000,-0.266, 0.490, -0.056,
0.722, 0.692, -0.000,-0.266, 0.490, 0.056,
0.722, 0.692, -0.000,-0.155, 0.375, 0.087,
0.722, 0.692, -0.000,-0.155, 0.375, -0.087,
-0.106, 0.159, -0.982,-0.351, 0.433, -0.056,
-0.106, 0.159, -0.982,-0.266, 0.490, -0.056,
-0.069, 0.133, -0.989,-0.155, 0.375, -0.087,
-0.097, 0.114, -0.989,-0.287, 0.287, -0.087,
-0.916, -0.402, 0.000,-0.351, 0.433, 0.056,
-0.916, -0.402, 0.000,-0.351, 0.433, -0.056,
-0.916, -0.402, 0.000,-0.287, 0.287, -0.087,
-0.916, -0.402, 0.000,-0.287, 0.287, 0.087,
-0.556, 0.831, -0.000,-0.351, 0.433, 0.056,
-0.556, 0.831, -0.000,-0.266, 0.490, 0.056,
-0.556, 0.831, -0.000,-0.266, 0.490, -0.056,
-0.556, 0.831, -0.000,-0.351, 0.433, -0.056,
-0.106, 0.159, 0.982,-0.266, 0.490, 0.056,
-0.106, 0.159, 0.982,-0.351, 0.433, 0.056,
-0.097, 0.114, 0.989,-0.287, 0.287, 0.087,
-0.069, 0.133, 0.989,-0.155, 0.375, 0.087,
1.000, -0.021, 0.000, 0.159, 0.534, -0.056,
1.000, -0.021, 0.000, 0.159, 0.534, 0.056,
1.000, -0.021, 0.000, 0.155, 0.375, 0.087,
1.000, -0.021, 0.000, 0.155, 0.375, -0.087,
0.037, 0.187, -0.982, 0.058, 0.554, -0.056,
0.037, 0.187, -0.982, 0.159, 0.534, -0.056,
0.046, 0.143, -0.989, 0.155, 0.375, -0.087,
0.012, 0.149, -0.989, 0.000, 0.406, -0.087,
-0.932, 0.363, -0.000, 0.058, 0.554, 0.056,
-0.932, 0.363, -0.000, 0.058, 0.554, -0.056,
-0.932, 0.363, -0.000, 0.000, 0.406, -0.087,
-0.932, 0.363, -0.000, 0.000, 0.406, 0.087,
0.195, 0.981, -0.000, 0.058, 0.554, 0.056,
0.195, 0.981, -0.000, 0.159, 0.534, 0.056,
0.195, 0.981, -0.000, 0.159, 0.534, -0.056,
0.195, 0.981, -0.000, 0.058, 0.554, -0.056,
0.037, 0.187, 0.982, 0.159, 0.534, 0.056,
0.037, 0.187, 0.982, 0.058, 0.554, 0.056,
0.012, 0.149, 0.989, 0.000, 0.406, 0.087,
0.046, 0.143, 0.989, 0.155, 0.375, 0.087,
0.692, -0.722, 0.000, 0.490, 0.266, -0.056,
0.692, -0.722, 0.000, 0.490, 0.266, 0.056,
0.692, -0.722, 0.000, 0.375, 0.155, 0.087,
0.692, -0.722, 0.000, 0.375, 0.155, -0.087,
0.159, 0.106, -0.982, 0.433, 0.351, -0.056,
0.159, 0.106, -0.982, 0.490, 0.266, -0.056,
0.133, 0.069, -0.989, 0.375, 0.155, -0.087,
0.114, 0.097, -0.989, 0.287, 0.287, -0.087,
-0.402, 0.916, -0.000, 0.433, 0.351, 0.056,
-0.402, 0.916, -0.000, 0.433, 0.351, -0.056,
-0.402, 0.916, -0.000, 0.287, 0.287, -0.087,
-0.402, 0.916, -0.000, 0.287, 0.287, 0.087,
0.831, 0.556, -0.000, 0.433, 0.351, 0.056,
0.831, 0.556, -0.000, 0.490, 0.266, 0.056,
0.831, 0.556, -0.000, 0.490, 0.266, -0.056,
0.831, 0.556, -0.000, 0.433, 0.351, -0.056,
0.159, 0.106, 0.982, 0.490, 0.266, 0.056,
0.159, 0.106, 0.982, 0.433, 0.351, 0.056,
0.114, 0.097, 0.989, 0.287, 0.287, 0.087,
0.133, 0.069, 0.989, 0.375, 0.155, 0.087]
@gearNumQuadStrips = 3
@gearQuadStripIndices = [ 0, 216, 432, 648 ]
@gearInterleavedQuadStrips = [ # 648
0.120, -0.050, 0.991, 0.208, -0.086, 0.111,
0.143, -0.046, 0.989, 0.375, -0.155, 0.087,
0.130, 0.000, 0.991, 0.226, 0.000, 0.111,
0.149, -0.012, 0.989, 0.406, -0.000, 0.087,
0.120, 0.050, 0.991, 0.208, 0.086, 0.111,
0.133, 0.069, 0.989, 0.375, 0.155, 0.087,
0.092, 0.092, 0.991, 0.160, 0.160, 0.111,
0.114, 0.097, 0.989, 0.287, 0.287, 0.087,
0.050, 0.120, 0.991, 0.086, 0.208, 0.111,
0.046, 0.143, 0.989, 0.155, 0.375, 0.087,
-0.000, 0.130, 0.991, -0.000, 0.226, 0.111,
0.012, 0.149, 0.989, 0.000, 0.406, 0.087,
-0.050, 0.120, 0.991, -0.086, 0.208, 0.111,
-0.069, 0.133, 0.989, -0.155, 0.375, 0.087,
-0.092, 0.092, 0.991, -0.160, 0.160, 0.111,
-0.097, 0.114, 0.989, -0.287, 0.287, 0.087,
-0.120, 0.050, 0.991, -0.208, 0.086, 0.111,
-0.143, 0.046, 0.989, -0.375, 0.155, 0.087,
-0.130, 0.000, 0.991, -0.226, 0.000, 0.111,
-0.149, 0.012, 0.989, -0.406, 0.000, 0.087,
-0.120, -0.050, 0.991, -0.208, -0.086, 0.111,
-0.133, -0.069, 0.989, -0.375, -0.155, 0.087,
-0.092, -0.092, 0.991, -0.160, -0.160, 0.111,
-0.114, -0.097, 0.989, -0.287, -0.287, 0.087,
-0.050, -0.120, 0.991, -0.086, -0.208, 0.111,
-0.046, -0.143, 0.989, -0.155, -0.375, 0.087,
0.000, -0.130, 0.991, 0.000, -0.226, 0.111,
-0.012, -0.149, 0.989, -0.000, -0.406, 0.087,
0.050, -0.120, 0.991, 0.086, -0.208, 0.111,
0.069, -0.133, 0.989, 0.155, -0.375, 0.087,
0.092, -0.092, 0.991, 0.160, -0.160, 0.111,
0.097, -0.114, 0.989, 0.287, -0.287, 0.087,
0.120, -0.050, 0.991, 0.208, -0.086, 0.111,
0.143, -0.046, 0.989, 0.375, -0.155, 0.087,
0.130, 0.000, 0.991, 0.226, 0.000, 0.111,
0.149, -0.012, 0.989, 0.406, -0.000, 0.087,
-1.000, -0.000, -0.000, 0.226, -0.000, -0.111,
-1.000, -0.000, -0.000, 0.226, 0.000, 0.111,
-0.924, -0.383, 0.000, 0.208, 0.086, -0.111,
-0.924, -0.383, 0.000, 0.208, 0.086, 0.111,
-0.707, -0.707, 0.000, 0.160, 0.160, -0.111,
-0.707, -0.707, 0.000, 0.160, 0.160, 0.111,
-0.383, -0.924, 0.000, 0.086, 0.208, -0.111,
-0.383, -0.924, 0.000, 0.086, 0.208, 0.111,
0.000, -1.000, 0.000, -0.000, 0.226, -0.111,
0.000, -1.000, 0.000, -0.000, 0.226, 0.111,
0.383, -0.924, 0.000, -0.086, 0.208, -0.111,
0.383, -0.924, 0.000, -0.086, 0.208, 0.111,
0.707, -0.707, 0.000, -0.160, 0.160, -0.111,
0.707, -0.707, 0.000, -0.160, 0.160, 0.111,
0.924, -0.383, 0.000, -0.208, 0.086, -0.111,
0.924, -0.383, 0.000, -0.208, 0.086, 0.111,
1.000, 0.000, 0.000, -0.226, -0.000, -0.111,
1.000, 0.000, 0.000, -0.226, 0.000, 0.111,
0.924, 0.383, -0.000, -0.208, -0.086, -0.111,
0.924, 0.383, -0.000, -0.208, -0.086, 0.111,
0.707, 0.707, -0.000, -0.160, -0.160, -0.111,
0.707, 0.707, -0.000, -0.160, -0.160, 0.111,
0.383, 0.924, -0.000, -0.086, -0.208, -0.111,
0.383, 0.924, -0.000, -0.086, -0.208, 0.111,
-0.000, 1.000, -0.000, 0.000, -0.226, -0.111,
-0.000, 1.000, -0.000, 0.000, -0.226, 0.111,
-0.383, 0.924, -0.000, 0.086, -0.208, -0.111,
-0.383, 0.924, -0.000, 0.086, -0.208, 0.111,
-0.707, 0.707, -0.000, 0.160, -0.160, -0.111,
-0.707, 0.707, -0.000, 0.160, -0.160, 0.111,
-0.924, 0.383, -0.000, 0.208, -0.086, -0.111,
-0.924, 0.383, -0.000, 0.208, -0.086, 0.111,
-1.000, -0.000, -0.000, 0.226, -0.000, -0.111,
-1.000, -0.000, -0.000, 0.226, 0.000, 0.111,
-0.924, -0.383, 0.000, 0.208, 0.086, -0.111,
-0.924, -0.383, 0.000, 0.208, 0.086, 0.111,
0.149, -0.012, -0.989, 0.406, -0.000, -0.087,
0.130, -0.000, -0.991, 0.226, -0.000, -0.111,
0.133, 0.069, -0.989, 0.375, 0.155, -0.087,
0.120, 0.050, -0.991, 0.208, 0.086, -0.111,
0.114, 0.097, -0.989, 0.287, 0.287, -0.087,
0.092, 0.092, -0.991, 0.160, 0.160, -0.111,
0.046, 0.143, -0.989, 0.155, 0.375, -0.087,
0.050, 0.120, -0.991, 0.086, 0.208, -0.111,
0.012, 0.149, -0.989, 0.000, 0.406, -0.087,
-0.000, 0.130, -0.991, -0.000, 0.226, -0.111,
-0.069, 0.133, -0.989, -0.155, 0.375, -0.087,
-0.050, 0.120, -0.991, -0.086, 0.208, -0.111,
-0.097, 0.114, -0.989, -0.287, 0.287, -0.087,
-0.092, 0.092, -0.991, -0.160, 0.160, -0.111,
-0.143, 0.046, -0.989, -0.375, 0.155, -0.087,
-0.120, 0.050, -0.991, -0.208, 0.086, -0.111,
-0.149, 0.012, -0.989, -0.406, 0.000, -0.087,
-0.130, -0.000, -0.991, -0.226, -0.000, -0.111,
-0.133, -0.069, -0.989, -0.375, -0.155, -0.087,
-0.120, -0.050, -0.991, -0.208, -0.086, -0.111,
-0.114, -0.097, -0.989, -0.287, -0.287, -0.087,
-0.092, -0.092, -0.991, -0.160, -0.160, -0.111,
-0.046, -0.143, -0.989, -0.155, -0.375, -0.087,
-0.050, -0.120, -0.991, -0.086, -0.208, -0.111,
-0.012, -0.149, -0.989, -0.000, -0.406, -0.087,
0.000, -0.130, -0.991, 0.000, -0.226, -0.111,
0.069, -0.133, -0.989, 0.155, -0.375, -0.087,
0.050, -0.120, -0.991, 0.086, -0.208, -0.111,
0.097, -0.114, -0.989, 0.287, -0.287, -0.087,
0.092, -0.092, -0.991, 0.160, -0.160, -0.111,
0.143, -0.046, -0.989, 0.375, -0.155, -0.087,
0.120, -0.050, -0.991, 0.208, -0.086, -0.111,
0.149, -0.012, -0.989, 0.406, -0.000, -0.087,
0.130, -0.000, -0.991, 0.226, -0.000, -0.111,
0.133, 0.069, -0.989, 0.375, 0.155, -0.087,
0.120, 0.050, -0.991, 0.208, 0.086, -0.111]
module.exports = Geom