From 753a26b86967de035c28bae99c193cc679421aa1 Mon Sep 17 00:00:00 2001
From: RAMilewski <RAMilewski@users.noreply.github.com>
Date: Sat, 9 Dec 2023 06:03:38 +0000
Subject: [PATCH 01/15] Version Bump

---
 version.scad | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/version.scad b/version.scad
index a122434..85ecc23 100644
--- a/version.scad
+++ b/version.scad
@@ -9,7 +9,7 @@
 //////////////////////////////////////////////////////////////////////
 
 
-BOSL_VERSION = [2,0,662];
+BOSL_VERSION = [2,0,663];
 
 
 // Section: BOSL Library Version Functions

From f2a817e11ca053ab24d012bb20c3814228b5e6d1 Mon Sep 17 00:00:00 2001
From: Richard Milewski <richard+github@milewski.org>
Date: Fri, 8 Dec 2023 22:26:56 -0800
Subject: [PATCH 02/15] Fix snap_lock() & snap_socket()

Removed embedded $fn references.
---
 hinges.scad | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/hinges.scad b/hinges.scad
index 20400ba..671a868 100644
--- a/hinges.scad
+++ b/hinges.scad
@@ -508,8 +508,8 @@ module snap_lock(thick, snaplen=5, snapdiam=5, layerheight=0.2, foldangle=90, hi
     attachable(anchor,spin,orient, size=size) {
         back(snap_x) {
             cube([snaplen, snapdiam, snapdiam/2+thick], anchor=BOT) {
-                attach(TOP) xcyl(l=snaplen, d=snapdiam, $fn=16);
-                attach(TOP) xcopies(snaplen-snapdiam/4/3) xscale(0.333) sphere(d=snapdiam*0.8, $fn=12);
+                attach(TOP) xcyl(l=snaplen, d=snapdiam);
+                attach(TOP) xcopies(snaplen-snapdiam/4/3) xscale(0.333) sphere(d=snapdiam*0.8);
             }
         }
         children();
@@ -550,8 +550,8 @@ module snap_socket(thick, snaplen=5, snapdiam=5, layerheight=0.2, foldangle=90,
             zrot_copies([0,180], r=snaplen+get_slop()) {
                 diff("divot")
                 cube([snaplen, snapdiam, snapdiam/2+thick], anchor=BOT) {
-                    attach(TOP) xcyl(l=snaplen, d=snapdiam, $fn=16);
-                    tag("divot") attach(TOP) left((snaplen+snapdiam/4/3)/2) xscale(0.333) sphere(d=snapdiam*0.8, $fn=12);
+                    attach(TOP) xcyl(l=snaplen, d=snapdiam);
+                    tag("divot") attach(TOP) left((snaplen+snapdiam/4/3)/2) xscale(0.333) sphere(d=snapdiam*0.8);
                 }
             }
         }

From 2bf5afaec9f7512004d17f1f5db3dfa46b966ebd Mon Sep 17 00:00:00 2001
From: RAMilewski <RAMilewski@users.noreply.github.com>
Date: Sat, 9 Dec 2023 06:28:32 +0000
Subject: [PATCH 03/15] Version Bump

---
 version.scad | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/version.scad b/version.scad
index 85ecc23..196ab5b 100644
--- a/version.scad
+++ b/version.scad
@@ -9,7 +9,7 @@
 //////////////////////////////////////////////////////////////////////
 
 
-BOSL_VERSION = [2,0,663];
+BOSL_VERSION = [2,0,664];
 
 
 // Section: BOSL Library Version Functions

From 8a84e05788319bbfab2b7ef004e984f7bb671b1f Mon Sep 17 00:00:00 2001
From: revarbat <revarbat@users.noreply.github.com>
Date: Tue, 12 Dec 2023 23:22:42 +0000
Subject: [PATCH 04/15] Version Bump

---
 version.scad | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/version.scad b/version.scad
index 196ab5b..dd037bd 100644
--- a/version.scad
+++ b/version.scad
@@ -9,7 +9,7 @@
 //////////////////////////////////////////////////////////////////////
 
 
-BOSL_VERSION = [2,0,664];
+BOSL_VERSION = [2,0,665];
 
 
 // Section: BOSL Library Version Functions

From 8c18c689e349120fd7e3f7645d42f0f7b850932c Mon Sep 17 00:00:00 2001
From: revarbat <revarbat@users.noreply.github.com>
Date: Tue, 12 Dec 2023 23:39:08 +0000
Subject: [PATCH 05/15] Version Bump

---
 version.scad | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/version.scad b/version.scad
index c1b228f..81f989c 100644
--- a/version.scad
+++ b/version.scad
@@ -9,7 +9,7 @@
 //////////////////////////////////////////////////////////////////////
 
 
-BOSL_VERSION = [2,0,667];
+BOSL_VERSION = [2,0,668];
 
 
 // Section: BOSL Library Version Functions

From 38f898394e494f1425cd499708bb9461d473733f Mon Sep 17 00:00:00 2001
From: Richard Milewski <richard+github@milewski.org>
Date: Wed, 13 Dec 2023 13:24:18 -0800
Subject: [PATCH 06/15] Update hinges.scad

Enforceed minimum $fn in snap_lock() and snap_socket()
---
 hinges.scad | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/hinges.scad b/hinges.scad
index 671a868..40647e5 100644
--- a/hinges.scad
+++ b/hinges.scad
@@ -508,8 +508,8 @@ module snap_lock(thick, snaplen=5, snapdiam=5, layerheight=0.2, foldangle=90, hi
     attachable(anchor,spin,orient, size=size) {
         back(snap_x) {
             cube([snaplen, snapdiam, snapdiam/2+thick], anchor=BOT) {
-                attach(TOP) xcyl(l=snaplen, d=snapdiam);
-                attach(TOP) xcopies(snaplen-snapdiam/4/3) xscale(0.333) sphere(d=snapdiam*0.8);
+                attach(TOP) xcyl(l=snaplen, d=snapdiam, $fn = max(16,segs(snapdiam/2) - segs(snapdiam/2) % 4));
+                attach(TOP) xcopies(snaplen-snapdiam/4/3) xscale(0.333) sphere(d=snapdiam*0.8, $fn = max(12,segs(snapdiam/2) - segs(snapdiam/2) % 4));
             }
         }
         children();
@@ -550,8 +550,8 @@ module snap_socket(thick, snaplen=5, snapdiam=5, layerheight=0.2, foldangle=90,
             zrot_copies([0,180], r=snaplen+get_slop()) {
                 diff("divot")
                 cube([snaplen, snapdiam, snapdiam/2+thick], anchor=BOT) {
-                    attach(TOP) xcyl(l=snaplen, d=snapdiam);
-                    tag("divot") attach(TOP) left((snaplen+snapdiam/4/3)/2) xscale(0.333) sphere(d=snapdiam*0.8);
+                    attach(TOP) xcyl(l=snaplen, d=snapdiam, $fn=max(16,segs(snapdiam/2) - segs(snapdiam/2) % 4));
+                    tag("divot") attach(TOP) left((snaplen+snapdiam/4/3)/2) xscale(0.333) sphere(d=snapdiam*0.8, $fn = max(12,segs(snapdiam/2) - segs(snapdiam/2) % 4));
                 }
             }
         }

From 030cedc43176ed572c6d5ba7ee9e326462481d58 Mon Sep 17 00:00:00 2001
From: RAMilewski <RAMilewski@users.noreply.github.com>
Date: Wed, 13 Dec 2023 21:24:34 +0000
Subject: [PATCH 07/15] Version Bump

---
 version.scad | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/version.scad b/version.scad
index 81f989c..b908f70 100644
--- a/version.scad
+++ b/version.scad
@@ -9,7 +9,7 @@
 //////////////////////////////////////////////////////////////////////
 
 
-BOSL_VERSION = [2,0,668];
+BOSL_VERSION = [2,0,669];
 
 
 // Section: BOSL Library Version Functions

From 46399761bbd1178e5574c8897d284ceb3bc815d8 Mon Sep 17 00:00:00 2001
From: Richard Milewski <richard+github@milewski.org>
Date: Wed, 13 Dec 2023 14:00:11 -0800
Subject: [PATCH 08/15] Update utility.scad

Fixed typo in segs() example 1
---
 utility.scad | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/utility.scad b/utility.scad
index 4c2dbb6..1bf6283 100644
--- a/utility.scad
+++ b/utility.scad
@@ -779,7 +779,7 @@ function scalar_vec3(v, dflt) =
 //   r = Radius of circle to get the number of segments for.
 // Example:
 //   $fn=12; sides=segs(10);  // Returns: 12
-//   $fa=2; $fs=3, sides=segs(10);  // Returns: 21
+//   $fa=2; $fs=3; sides=segs(10);  // Returns: 21
 function segs(r) = 
     $fn>0? ($fn>3? $fn : 3) :
     let( r = is_finite(r)? r : 0 )

From a20d661052773b15aece42ce940b6eb5b6e8dca0 Mon Sep 17 00:00:00 2001
From: RAMilewski <RAMilewski@users.noreply.github.com>
Date: Wed, 13 Dec 2023 22:00:42 +0000
Subject: [PATCH 09/15] Version Bump

---
 version.scad | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/version.scad b/version.scad
index b908f70..639be96 100644
--- a/version.scad
+++ b/version.scad
@@ -9,7 +9,7 @@
 //////////////////////////////////////////////////////////////////////
 
 
-BOSL_VERSION = [2,0,669];
+BOSL_VERSION = [2,0,670];
 
 
 // Section: BOSL Library Version Functions

From 9d267992b6d904ba57812ec1d8eb6657ecba0a07 Mon Sep 17 00:00:00 2001
From: Revar Desmera <revarbat@gmail.com>
Date: Sun, 17 Dec 2023 20:13:49 -0800
Subject: [PATCH 10/15] Fix for #1329:  wrong in cyl(), rotate_extrude()

---
 skin.scad | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/skin.scad b/skin.scad
index e8b2bcd..d97e4c4 100644
--- a/skin.scad
+++ b/skin.scad
@@ -986,7 +986,7 @@ function rotate_sweep(
         style=style
     ) :
     let(
-        steps = ceil(segs(max_x) * angle / 360) + 1,
+        steps = ceil(segs(max_x) * angle / 360) + (angle<360? 1 : 0),
         skmat = down(min_y) * skew(sxz=shift.x/h, syz=shift.y/h) * up(min_y),
         transforms = [
             if (angle==360) for (i=[0:1:steps-1]) skmat * rot([90,0,360-i*360/steps]),
@@ -1046,7 +1046,7 @@ module rotate_sweep(
             spin=spin, orient=orient
         ) children();
     } else {
-        steps = ceil(segs(max_x) * angle / 360) + 1;
+        steps = ceil(segs(max_x) * angle / 360) + (angle<360? 1 : 0);
         skmat = down(min_y) * skew(sxz=shift.x/h, syz=shift.y/h) * up(min_y);
         transforms = [
             if (angle==360) for (i=[0:1:steps-1]) skmat * rot([90,0,360-i*360/steps]),

From f8db999179f593b897f11d1e2e1cbe62ab710579 Mon Sep 17 00:00:00 2001
From: Richard Milewski <richard+github@milewski.org>
Date: Sun, 17 Dec 2023 22:19:53 -0800
Subject: [PATCH 11/15] Update hinges.scad

Rewrote snap_lock() and snap_socket() using quant().
---
 hinges.scad | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/hinges.scad b/hinges.scad
index 40647e5..4668e32 100644
--- a/hinges.scad
+++ b/hinges.scad
@@ -508,8 +508,8 @@ module snap_lock(thick, snaplen=5, snapdiam=5, layerheight=0.2, foldangle=90, hi
     attachable(anchor,spin,orient, size=size) {
         back(snap_x) {
             cube([snaplen, snapdiam, snapdiam/2+thick], anchor=BOT) {
-                attach(TOP) xcyl(l=snaplen, d=snapdiam, $fn = max(16,segs(snapdiam/2) - segs(snapdiam/2) % 4));
-                attach(TOP) xcopies(snaplen-snapdiam/4/3) xscale(0.333) sphere(d=snapdiam*0.8, $fn = max(12,segs(snapdiam/2) - segs(snapdiam/2) % 4));
+                attach(TOP) xcyl(l=snaplen, d=snapdiam, $fn = max(16,quant(segs(snapdiam/2),4)));
+                attach(TOP) xcopies(snaplen-snapdiam/4/3) xscale(0.333) sphere(d=snapdiam*0.8, $fn = max(12,quant(segs(snapdiam/2),4)));
             }
         }
         children();
@@ -550,8 +550,8 @@ module snap_socket(thick, snaplen=5, snapdiam=5, layerheight=0.2, foldangle=90,
             zrot_copies([0,180], r=snaplen+get_slop()) {
                 diff("divot")
                 cube([snaplen, snapdiam, snapdiam/2+thick], anchor=BOT) {
-                    attach(TOP) xcyl(l=snaplen, d=snapdiam, $fn=max(16,segs(snapdiam/2) - segs(snapdiam/2) % 4));
-                    tag("divot") attach(TOP) left((snaplen+snapdiam/4/3)/2) xscale(0.333) sphere(d=snapdiam*0.8, $fn = max(12,segs(snapdiam/2) - segs(snapdiam/2) % 4));
+                    attach(TOP) xcyl(l=snaplen, d=snapdiam, $fn=max(16,quant(segs(snapdiam/2),4)));
+                    tag("divot") attach(TOP) left((snaplen+snapdiam/4/3)/2) xscale(0.333) sphere(d=snapdiam*0.8, $fn = max(12,quant(segs(snapdiam/2),4)));
                 }
             }
         }

From e9f813c2979d47a58ac8b26459b32dc34b8948df Mon Sep 17 00:00:00 2001
From: RAMilewski <RAMilewski@users.noreply.github.com>
Date: Mon, 18 Dec 2023 06:20:12 +0000
Subject: [PATCH 12/15] Version Bump

---
 version.scad | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/version.scad b/version.scad
index 639be96..cd506b1 100644
--- a/version.scad
+++ b/version.scad
@@ -9,7 +9,7 @@
 //////////////////////////////////////////////////////////////////////
 
 
-BOSL_VERSION = [2,0,670];
+BOSL_VERSION = [2,0,671];
 
 
 // Section: BOSL Library Version Functions

From 555b3b6d90b6dc2f2b377716259056e79d35ae5e Mon Sep 17 00:00:00 2001
From: revarbat <revarbat@users.noreply.github.com>
Date: Mon, 18 Dec 2023 07:24:06 +0000
Subject: [PATCH 13/15] Version Bump

---
 version.scad | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/version.scad b/version.scad
index dd037bd..3cf1c0f 100644
--- a/version.scad
+++ b/version.scad
@@ -9,7 +9,7 @@
 //////////////////////////////////////////////////////////////////////
 
 
-BOSL_VERSION = [2,0,665];
+BOSL_VERSION = [2,0,666];
 
 
 // Section: BOSL Library Version Functions

From aef4884da62f82a94f0e58d34a4dd07ff60be07a Mon Sep 17 00:00:00 2001
From: revarbat <revarbat@users.noreply.github.com>
Date: Mon, 18 Dec 2023 07:26:51 +0000
Subject: [PATCH 14/15] Version Bump

---
 version.scad | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/version.scad b/version.scad
index c1b228f..81f989c 100644
--- a/version.scad
+++ b/version.scad
@@ -9,7 +9,7 @@
 //////////////////////////////////////////////////////////////////////
 
 
-BOSL_VERSION = [2,0,667];
+BOSL_VERSION = [2,0,668];
 
 
 // Section: BOSL Library Version Functions

From 7714fdcf7e0dc1dad87e277e134dc3224188efb6 Mon Sep 17 00:00:00 2001
From: revarbat <revarbat@users.noreply.github.com>
Date: Mon, 18 Dec 2023 07:28:03 +0000
Subject: [PATCH 15/15] Version Bump

---
 version.scad | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/version.scad b/version.scad
index 81f989c..b908f70 100644
--- a/version.scad
+++ b/version.scad
@@ -9,7 +9,7 @@
 //////////////////////////////////////////////////////////////////////
 
 
-BOSL_VERSION = [2,0,668];
+BOSL_VERSION = [2,0,669];
 
 
 // Section: BOSL Library Version Functions