Euphoria
table_bool.h File Reference
#include "core/table.h"
#include "base/rgb.h"
#include "core/image.h"
#include "base/lrud.h"
#include "base/enumtostring.h"
#include <functional>
#include <optional>

Go to the source code of this file.

Classes

struct  eu::core::WallCounter
 
struct  eu::core::BorderSettings
 

Namespaces

 eu
 
 eu::core
 

Typedefs

using eu::core::BoolTable = Table< bool >
 

Enumerations

enum class  eu::core::BorderSetupRule { eu::core::always_wall , eu::core::always_empty , eu::core::random }
 
enum class  eu::core::OutsideRule { eu::core::wall , eu::core::empty , eu::core::mirror , eu::core::wrap }
 
enum class  eu::core::NeighborhoodAlgorithm { eu::core::manhattan , eu::core::plus , eu::core::box }
 

Functions

void eu::core::set_white_noise (BoolTable *world, Lrud< BorderSetupRule > border_control, std::function< bool()> rng)
 
int eu::core::count_walls_manhattan (const BoolTable &world, Lrud< OutsideRule > outside_rule, int cx, int cy, int step, bool include_self)
 
int eu::core::count_walls_plus (const BoolTable &world, Lrud< OutsideRule > outside_rule, int cx, int cy, int step, bool include_self)
 
int eu::core::count_walls_box (const BoolTable &world, Lrud< OutsideRule > outside_rule, int cx, int cy, int step, bool include_self)
 
void eu::core::make_smoother (BoolTable *world, Lrud< OutsideRule > outside_rule, std::function< std::optional< bool >(bool, const WallCounter &)> smooth_function)
 
std::vector< vec2i > eu::core::find_empty_blocks (const BoolTable &world)
 
std::vector< vec2i > eu::core::find_flood_fill_items (const BoolTable &world, const vec2i &start, bool allow_diagonals)
 
std::vector< std::vector< vec2i > > eu::core::find_empty_regions (const BoolTable &world, bool allow_diagonals)
 
Image eu::core::draw (const BoolTable &world, Rgbai wall_color, Rgbai space_color, int scale, std::optional< BorderSettings > border)