From b57ff01c3d811546547bf710690cf7a23ccea2ad Mon Sep 17 00:00:00 2001 From: Charles Comstock Date: Thu, 18 Jul 2024 23:21:05 -0500 Subject: [PATCH] clarify planar-pairs by extracting planar? helper internally --- src/shimmers/sketches/ring_impressions.cljs | 26 +++++++++++---------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/shimmers/sketches/ring_impressions.cljs b/src/shimmers/sketches/ring_impressions.cljs index 8085b7ef..b6eb4593 100644 --- a/src/shimmers/sketches/ring_impressions.cljs +++ b/src/shimmers/sketches/ring_impressions.cljs @@ -28,20 +28,22 @@ (gv/vec2 (* width x) (* height y))) (defn planar-pairs [circles pairs] - (reduce (fn [xs segment] + (letfn [(planar? [circles xs segment] (let [[p q] segment] - (if (and (not-any? (fn [line] (when (isec/segment-intersect line segment) - segment)) - xs) - (not-any? (fn [circle] - (when-let [isec (isec/circle-ray (g/scale-size circle 1.1) p q)] - (when (= :impale (:type isec)) - circle))) - circles)) + (and (not-any? (fn [line] (when (isec/segment-intersect line segment) + segment)) + xs) + (not-any? (fn [circle] + (when-let [isec (isec/circle-ray (g/scale-size circle 1.1) p q)] + (when (= :impale (:type isec)) + circle))) + circles))))] + (reduce (fn [xs segment] + (if (planar? circles xs segment) (conj xs segment) - xs))) - [] - (cs/all-pairs pairs))) + xs)) + [] + (cs/all-pairs pairs)))) (defn noise-pos [seed] (fn [scale pos]