icosahedron.ts 857 B

12345678910111213141516171819202122232425262728
  1. /**
  2. * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
  3. *
  4. * @author Alexander Rose <alexander.rose@weirdbyte.de>
  5. */
  6. // adapted from three.js, MIT License Copyright 2010-2018 three.js authors
  7. import Polyhedron from './polyhedron'
  8. const t = ( 1 + Math.sqrt( 5 ) ) / 2;
  9. const vertices = [
  10. - 1, t, 0, 1, t, 0, - 1, - t, 0, 1, - t, 0,
  11. 0, - 1, t, 0, 1, t, 0, - 1, - t, 0, 1, - t,
  12. t, 0, - 1, t, 0, 1, - t, 0, - 1, - t, 0, 1
  13. ];
  14. const indices = [
  15. 0, 11, 5, 0, 5, 1, 0, 1, 7, 0, 7, 10, 0, 10, 11,
  16. 1, 5, 9, 5, 11, 4, 11, 10, 2, 10, 7, 6, 7, 1, 8,
  17. 3, 9, 4, 3, 4, 2, 3, 2, 6, 3, 6, 8, 3, 8, 9,
  18. 4, 9, 5, 2, 4, 11, 6, 2, 10, 8, 6, 7, 9, 8, 1
  19. ];
  20. export default function Icosahedron(radius: number, detail: number) {
  21. return Polyhedron(vertices, indices, radius, detail)
  22. }