From 5732af3cb1c4c010aada4bd3d63866a3dcc9d431 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Thu, 18 Mar 2021 08:11:07 +0800 Subject: [PATCH] add assertion --- src/experimental/_impl/_tiles_wfc_impl.scad | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/experimental/_impl/_tiles_wfc_impl.scad b/src/experimental/_impl/_tiles_wfc_impl.scad index 226a2452..4ac5d2dd 100644 --- a/src/experimental/_impl/_tiles_wfc_impl.scad +++ b/src/experimental/_impl/_tiles_wfc_impl.scad @@ -234,11 +234,15 @@ function _doDirs(tm, stack, cx, cy, current_tiles, dirs, leng, i = 0) = len(not_compatible_nbr_tiles) == 0 ? _doDirs(tm, stack, cx, cy, current_tiles, dirs, leng, i + 1) : let( nstack = push(stack, [nbrx, nbry]), + nwf = wf_remove(wf, nbrx, nbry, not_compatible_nbr_tiles), ntm = [ tilemap_width(tm), tilemap_height(tm), tilemap_compatibilities(tm), - wf_remove(wf, nbrx, nbry, not_compatible_nbr_tiles) + wf_eigenstates_at(nwf, nbrx, nbrx) != [] ? nwf : + assert(false, + str("(", nbrx, ", ", nbry, ")", + " reaches a contradiction. Tiles have all been ruled out by your previous choices. Please try again.")) ] ) _doDirs(ntm, nstack, cx, cy, current_tiles, dirs, leng, i + 1);