From f8cfde83b7abc2b813de98a1f77d04e9b7f9b335 Mon Sep 17 00:00:00 2001 From: Abe Pazos Date: Thu, 11 Sep 2014 13:59:28 +0200 Subject: [PATCH] Create DodecahedronGeometry.js --- src/extras/geometries/DodecahedronGeometry.js | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/extras/geometries/DodecahedronGeometry.js diff --git a/src/extras/geometries/DodecahedronGeometry.js b/src/extras/geometries/DodecahedronGeometry.js new file mode 100644 index 0000000000..812d03e3da --- /dev/null +++ b/src/extras/geometries/DodecahedronGeometry.js @@ -0,0 +1,55 @@ +/** + * @author Abe Pazos / https://hamoid.com + */ + +THREE.DodecahedronGeometry = function ( radius, detail ) { + + this.parameters = { + radius: radius, + detail: detail + }; + + var t = ( 1 + Math.sqrt( 5 ) ) / 2; + var r = 1 / t; + + var 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 + ]; + + var 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 + ]; + + THREE.PolyhedronGeometry.call( this, vertices, indices, radius, detail ); + +}; + +THREE.DodecahedronGeometry.prototype = Object.create( THREE.Geometry.prototype ); -- GitLab