UNPKG

@sveltejs/gl

Version:

A (very experimental) project to bring WebGL to Svelte

46 lines (38 loc) 1.17 kB
import polyhedron from './polyhedron.mjs'; // adapted from https://github.com/mrdoob/three.js/blob/master/src/geometries/DodecahedronGeometry.js // MIT licensed https://github.com/mrdoob/three.js/blob/dev/LICENSE const t = ( 1 + Math.sqrt( 5 ) ) / 2; const r = 1 / t; const vertices = [ // (±1, ±1, ±1) -1, -1, -1, -1, -1, +1, -1, +1, -1, -1, +1, +1, +1, -1, -1, +1, -1, +1, +1, +1, -1, +1, +1, +1, // (0, ±1/φ, ±φ) 0, -r, -t, 0, -r, +t, 0, +r, -t, 0, +r, +t, // (±1/φ, ±φ, 0) -r, -t, 0, -r, +t, 0, +r, -t, 0, +r, +t, 0, // (±φ, 0, ±1/φ) -t, 0, -r, +t, 0, -r, -t, 0, +r, +t, 0, +r ]; const indices = [ 3, 11, 7, 3, 7, 15, 3, 15, 13, 7, 19, 17, 7, 17, 6, 7, 6, 15, 17, 4, 8, 17, 8, 10, 17, 10, 6, 8, 0, 16, 8, 16, 2, 8, 2, 10, 0, 12, 1, 0, 1, 18, 0, 18, 16, 6, 10, 2, 6, 2, 13, 6, 13, 15, 2, 16, 18, 2, 18, 3, 2, 3, 13, 18, 1, 9, 18, 9, 11, 18, 11, 3, 4, 14, 12, 4, 12, 0, 4, 0, 8, 11, 9, 5, 11, 5, 19, 11, 19, 7, 19, 5, 14, 19, 14, 4, 19, 4, 17, 1, 12, 14, 1, 14, 5, 1, 5, 9 ]; export default function({ subdivisions, shading } = {}) { return polyhedron(vertices, indices, subdivisions, shading); }