From fc9e2391dc8da637afe96e4493284c33a11335df Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Sat, 26 Oct 2019 00:12:30 +0200 Subject: [PATCH] ray:: max cells and rays_generate configurable --- raycaster.cpp | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/raycaster.cpp b/raycaster.cpp index ed0784b3..60352c2c 100644 --- a/raycaster.cpp +++ b/raycaster.cpp @@ -24,6 +24,9 @@ EX ld exp_start = 1, exp_decay_exp = 4, exp_decay_poly = 10; EX int max_iter_sol = 600, max_iter_iso = 60; +EX int max_cells = 8192; +EX bool rays_generate = true; + ld& exp_decay_current() { return (sol || hyperbolic) ? exp_decay_exp : exp_decay_poly; } @@ -472,8 +475,20 @@ EX void cast() { vector lst; - celllister cl(viewctr.at->c7, 10, 10000, NULL); - vector lst = cl.lst; + if(true) { + manual_celllister cl; + cl.add(viewctr.at->c7); + for(int i=0; i= max_cells) goto finish; + } + } + finish: + lst = cl.lst; + } rows = next_p2((isize(lst)+per_row-1) / per_row); @@ -607,6 +622,15 @@ EX void configure() { our_raycaster = nullptr; }; }); + + dialog::addSelItem(XLAT("max cells"), its(max_cells), 's'); + dialog::add_action([&] { + dialog::editNumber(max_cells, 16, 131072, 0.1, 4096, XLAT("max cells"), ""); + dialog::scaleLog(); + dialog::extra_options = [] { + dialog::addBoolItem_action("generate", rays_generate, 'G'); + }; + }); dialog::addBack(); dialog::display();