From d408a63fcfcffce4a9f29d51156dfeea6c9eee12 Mon Sep 17 00:00:00 2001
From: Elena of Valhalla'' Grandi <valhalla@trueelena.org>
Date: Mon, 10 Nov 2014 22:08:37 +0100
Subject: Split library into polyhedra + faces

---
 designs/blank_d4.scad           | 11 +---------
 designs/blank_d8.scad           | 17 +--------------
 designs/epic_level_counter.scad | 47 ++++++++++++++++++++++-------------------
 designs/free_mono_d12.scad      | 31 +++++++++++++++------------
 designs/free_mono_d20.scad      | 47 +++++++++++++++++++++++------------------
 designs/free_mono_d4.scad       | 15 ++++++++-----
 designs/free_mono_d6.scad       | 17 +++++++++------
 designs/free_mono_d8.scad       | 23 ++++++++++++--------
 designs/fudge.scad              | 17 +++++++++------
 designs/pips_d6.scad            | 17 +++++++++------
 designs/zampa_d12.scad          | 31 +++++++++++++++------------
 designs/zampa_d6.scad           | 17 +++++++++------
 12 files changed, 153 insertions(+), 137 deletions(-)

(limited to 'designs')

diff --git a/designs/blank_d4.scad b/designs/blank_d4.scad
index 5d190ef..498543b 100644
--- a/designs/blank_d4.scad
+++ b/designs/blank_d4.scad
@@ -1,14 +1,5 @@
 use <../lib/dice.scad>
-use <../lib/utils.scad>
-use <../lib/faces/empty.scad>
 
 size = 16;
 
-side = s2s_d4(size);
-
-d4(size) {
-    empty(side);
-    empty(side);
-    empty(side);
-    empty(side);
-}
+d4(size);
diff --git a/designs/blank_d8.scad b/designs/blank_d8.scad
index 1c94fbd..4b2dd63 100644
--- a/designs/blank_d8.scad
+++ b/designs/blank_d8.scad
@@ -1,20 +1,5 @@
 use <../lib/dice.scad>
-use <../lib/utils.scad>
-use <../lib/faces/empty.scad>
 
 size = 16;
 
-side = s2s_d8(size);
-
-echo(side);
-
-d8(size) {
-    empty(side);
-    empty(side);
-    empty(side);
-    empty(side);
-    empty(side);
-    empty(side);
-    empty(side);
-    empty(side);
-}
+d8(size);
diff --git a/designs/epic_level_counter.scad b/designs/epic_level_counter.scad
index b0d3464..c1781c8 100644
--- a/designs/epic_level_counter.scad
+++ b/designs/epic_level_counter.scad
@@ -6,27 +6,30 @@ size = 30;
 
 side = s2s_d20(size);
 
-echo(side);
+r = side*sqrt(10+2*sqrt(5))/4;
 
-d20(size) {
-    digits(side, 1, "free_mono");
-    digits(side, 16, "free_mono");
-    digits(side, 3, "free_mono");
-    digits(side, 18, "free_mono");
-    digits(side, 7, "free_mono");
-    digits(side, 11, "free_mono");
-    digits(side, 5, "free_mono");
-    digits(side, 13, "free_mono");
-    digits(side, 10, "free_mono");
-    digits(side, 14, "free_mono");
-    digits(side, 9, "free_mono");
-    digits(side, 15, "free_mono");
-    digits(side, 8, "free_mono");
-    digits(side, 19, "free_mono");
-    digits(side, 6, "free_mono");
-    digits(side, 12, "free_mono");
-    digits(side, 4, "free_mono");
-    digits(side, 17, "free_mono");
-    digits(side, 2, "free_mono");
-    digits(side, 20, "free_mono");
+difference() {
+    d20(size);
+    icosahedron_faces(r=r) {
+        digits(side, 1, "free_mono");
+        digits(side, 16, "free_mono");
+        digits(side, 3, "free_mono");
+        digits(side, 18, "free_mono");
+        digits(side, 7, "free_mono");
+        digits(side, 11, "free_mono");
+        digits(side, 5, "free_mono");
+        digits(side, 13, "free_mono");
+        digits(side, 10, "free_mono");
+        digits(side, 14, "free_mono");
+        digits(side, 9, "free_mono");
+        digits(side, 15, "free_mono");
+        digits(side, 8, "free_mono");
+        digits(side, 19, "free_mono");
+        digits(side, 6, "free_mono");
+        digits(side, 12, "free_mono");
+        digits(side, 4, "free_mono");
+        digits(side, 17, "free_mono");
+        digits(side, 2, "free_mono");
+        digits(side, 20, "free_mono");
+    }
 }
diff --git a/designs/free_mono_d12.scad b/designs/free_mono_d12.scad
index a8168cb..2c9265b 100644
--- a/designs/free_mono_d12.scad
+++ b/designs/free_mono_d12.scad
@@ -6,17 +6,22 @@ size = 14;
 
 side = s2s_d12(size);
 
-d12(size) {
-    digits(side, 1, "free_mono");
-    digits(side, 2, "free_mono");
-    digits(side, 3, "free_mono");
-    digits(side, 4, "free_mono");
-    digits(side, 5, "free_mono");
-    digits(side, 6, "free_mono");
-    digits(side, 7, "free_mono");
-    digits(side, 8, "free_mono");
-    digits(side, 9, "free_mono");
-    digits(side, 10, "free_mono");
-    digits(side, 11, "free_mono");
-    digits(side, 12, "free_mono");
+r = side*sqrt(3)*(1+sqrt(5))/4;
+
+difference() {
+    d12(size);
+    dodecahedron_faces(r) {
+        digits(side, 1, "free_mono");
+        digits(side, 2, "free_mono");
+        digits(side, 3, "free_mono");
+        digits(side, 4, "free_mono");
+        digits(side, 5, "free_mono");
+        digits(side, 6, "free_mono");
+        digits(side, 7, "free_mono");
+        digits(side, 8, "free_mono");
+        digits(side, 9, "free_mono");
+        digits(side, 10, "free_mono");
+        digits(side, 11, "free_mono");
+        digits(side, 12, "free_mono");
+    }
 }
diff --git a/designs/free_mono_d20.scad b/designs/free_mono_d20.scad
index 1ad6e81..77eb431 100644
--- a/designs/free_mono_d20.scad
+++ b/designs/free_mono_d20.scad
@@ -6,25 +6,30 @@ size = 14;
 
 side = s2s_d20(size);
 
-d20(size) {
-    digits(side, 1, "free_mono");
-    digits(side, 2, "free_mono");
-    digits(side, 3, "free_mono");
-    digits(side, 4, "free_mono");
-    digits(side, 5, "free_mono");
-    digits(side, 6, "free_mono");
-    digits(side, 7, "free_mono");
-    digits(side, 8, "free_mono");
-    digits(side, 9, "free_mono");
-    digits(side, 10, "free_mono");
-    digits(side, 11, "free_mono");
-    digits(side, 12, "free_mono");
-    digits(side, 13, "free_mono");
-    digits(side, 14, "free_mono");
-    digits(side, 15, "free_mono");
-    digits(side, 16, "free_mono");
-    digits(side, 17, "free_mono");
-    digits(side, 18, "free_mono");
-    digits(side, 19, "free_mono");
-    digits(side, 20, "free_mono");
+r = side*sqrt(10+2*sqrt(5))/4;
+
+difference() {
+    d20(size);
+    icosahedron_faces(r=r) {
+        digits(side, 1, "free_mono");
+        digits(side, 2, "free_mono");
+        digits(side, 3, "free_mono");
+        digits(side, 4, "free_mono");
+        digits(side, 5, "free_mono");
+        digits(side, 6, "free_mono");
+        digits(side, 7, "free_mono");
+        digits(side, 8, "free_mono");
+        digits(side, 9, "free_mono");
+        digits(side, 10, "free_mono");
+        digits(side, 11, "free_mono");
+        digits(side, 12, "free_mono");
+        digits(side, 13, "free_mono");
+        digits(side, 14, "free_mono");
+        digits(side, 15, "free_mono");
+        digits(side, 16, "free_mono");
+        digits(side, 17, "free_mono");
+        digits(side, 18, "free_mono");
+        digits(side, 19, "free_mono");
+        digits(side, 20, "free_mono");
+    }
 }
diff --git a/designs/free_mono_d4.scad b/designs/free_mono_d4.scad
index 6ed5dad..9c9826f 100644
--- a/designs/free_mono_d4.scad
+++ b/designs/free_mono_d4.scad
@@ -6,9 +6,14 @@ size = 14;
 
 side = s2s_d4(size);
 
-d4(size) {
-    digits(side, 1, "free_mono");
-    digits(side, 2, "free_mono");
-    digits(side, 3, "free_mono");
-    digits(side, 4, "free_mono");
+r = sqrt(6)/4*side;
+
+difference() {
+    d4(size);
+    tetrahedron_faces(r) {
+        digits(side, 1, "free_mono");
+        digits(side, 2, "free_mono");
+        digits(side, 3, "free_mono");
+        digits(side, 4, "free_mono");
+    }
 }
diff --git a/designs/free_mono_d6.scad b/designs/free_mono_d6.scad
index 7e450f2..b12984d 100644
--- a/designs/free_mono_d6.scad
+++ b/designs/free_mono_d6.scad
@@ -6,11 +6,14 @@ size = 14;
 
 side = s2s_d6(size);
 
-rotate([180, 0, 0]) d6(size) {
-    digits(side, 1, "free_mono");
-    digits(side, 2, "free_mono");
-    digits(side, 3, "free_mono");
-    digits(side, 4, "free_mono");
-    digits(side, 5, "free_mono");
-    digits(side, 6, "free_mono");
+rotate([180, 0, 0]) difference() {
+    d6(size);
+    cube_faces(size) {
+        digits(side, 1, "free_mono");
+        digits(side, 2, "free_mono");
+        digits(side, 3, "free_mono");
+        digits(side, 4, "free_mono");
+        digits(side, 5, "free_mono");
+        digits(side, 6, "free_mono");
+    }
 }
diff --git a/designs/free_mono_d8.scad b/designs/free_mono_d8.scad
index 8fc17ad..7e82169 100644
--- a/designs/free_mono_d8.scad
+++ b/designs/free_mono_d8.scad
@@ -6,13 +6,18 @@ size = 14;
 
 side = s2s_d8(size);
 
-d8(size) {
-    digits(side, 1, "free_mono");
-    digits(side, 2, "free_mono");
-    digits(side, 3, "free_mono");
-    digits(side, 4, "free_mono");
-    digits(side, 5, "free_mono");
-    digits(side, 6, "free_mono");
-    digits(side, 7, "free_mono");
-    digits(side, 8, "free_mono");
+r = sqrt(2)/2*side;
+
+difference() {
+    d8(size);
+    octahedron_faces(r) {
+        digits(side, 1, "free_mono");
+        digits(side, 2, "free_mono");
+        digits(side, 3, "free_mono");
+        digits(side, 4, "free_mono");
+        digits(side, 5, "free_mono");
+        digits(side, 6, "free_mono");
+        digits(side, 7, "free_mono");
+        digits(side, 8, "free_mono");
+    }
 }
diff --git a/designs/fudge.scad b/designs/fudge.scad
index d10e05f..4236571 100644
--- a/designs/fudge.scad
+++ b/designs/fudge.scad
@@ -7,11 +7,14 @@ size = 16;
 
 side = s2s_d6(size);
 
-rotate([180, 0, 0]) d6(size) {
-    empty(side);
-    fudge_plus(side);
-    fudge_minus(side);
-    fudge_plus(side);
-    fudge_minus(side);
-    empty(side);
+rotate([180, 0, 0]) difference() {
+    d6(size);
+    cube_faces(size) {
+        empty(side);
+        fudge_plus(side);
+        fudge_minus(side);
+        fudge_plus(side);
+        fudge_minus(side);
+        empty(side);
+    }
 }
diff --git a/designs/pips_d6.scad b/designs/pips_d6.scad
index 8a5fe16..24a0c8b 100644
--- a/designs/pips_d6.scad
+++ b/designs/pips_d6.scad
@@ -6,11 +6,14 @@ size = 16;
 
 side = s2s_d6(size);
 
-rotate([180, 0, 0]) d6(size) {
-    pips_1(side);
-    pips_2(side);
-    pips_3(side);
-    pips_4(side);
-    pips_5(side);
-    pips_6(side);
+rotate([180, 0, 0]) difference() {
+    d6(size);
+    cube_faces(size) {
+        pips_1(side);
+        pips_2(side);
+        pips_3(side);
+        pips_4(side);
+        pips_5(side);
+        pips_6(side);
+    }
 }
diff --git a/designs/zampa_d12.scad b/designs/zampa_d12.scad
index 691e2f5..7f5016b 100644
--- a/designs/zampa_d12.scad
+++ b/designs/zampa_d12.scad
@@ -7,17 +7,22 @@ size = 14;
 
 side = s2s_d12(size);
 
-d12(size) {
-    gfx(side, "zampa");
-    digits(side, 2, "free_mono");
-    digits(side, 3, "free_mono");
-    digits(side, 4, "free_mono");
-    digits(side, 5, "free_mono");
-    digits(side, 6, "free_mono");
-    digits(side, 7, "free_mono");
-    digits(side, 8, "free_mono");
-    digits(side, 9, "free_mono");
-    digits(side, 10, "free_mono");
-    digits(side, 11, "free_mono");
-    digits(side, 12, "free_mono");
+r = side*sqrt(3)*(1+sqrt(5))/4;
+
+difference() {
+    d12(size);
+    dodecahedron_faces(r=r) {
+        gfx(side, "zampa");
+        digits(side, 2, "free_mono");
+        digits(side, 3, "free_mono");
+        digits(side, 4, "free_mono");
+        digits(side, 5, "free_mono");
+        digits(side, 6, "free_mono");
+        digits(side, 7, "free_mono");
+        digits(side, 8, "free_mono");
+        digits(side, 9, "free_mono");
+        digits(side, 10, "free_mono");
+        digits(side, 11, "free_mono");
+        digits(side, 12, "free_mono");
+    }
 }
diff --git a/designs/zampa_d6.scad b/designs/zampa_d6.scad
index f2e10cf..2d486df 100644
--- a/designs/zampa_d6.scad
+++ b/designs/zampa_d6.scad
@@ -7,11 +7,14 @@ size = 14;
 
 side = s2s_d6(size);
 
-rotate([0, 0, 0]) d6(size) {
-    gfx(side, "zampa");
-    digits(side, 2, "free_mono");
-    digits(side, 3, "free_mono");
-    digits(side, 4, "free_mono");
-    digits(side, 5, "free_mono");
-    digits(side, 6, "free_mono");
+difference() {
+    d6(size);
+    cube_faces(side) {
+        gfx(side, "zampa");
+        digits(side, 2, "free_mono");
+        digits(side, 3, "free_mono");
+        digits(side, 4, "free_mono");
+        digits(side, 5, "free_mono");
+        digits(side, 6, "free_mono");
+    }
 }
-- 
cgit v1.2.3