Euphoria
|
generator_cell.cc
Go to the documentation of this file.
234 add_clear_rules(Rules* ca, int times, int count, int range, bool include_self, NeighborhoodAlgorithm algorithm)
269 add_simple_rules(Rules* ca, int times, int count, bool include_self, NeighborhoodAlgorithm algorithm)
296 add_spiky_rules(Rules* ca, int times, int count, bool include_self, NeighborhoodAlgorithm algorithm)
313 add_combo_rules(Rules* ca, int times, int count, int big_count, bool include_self, NeighborhoodAlgorithm algorithm)
Definition: generator_cell.cc:14
void add_spiky_rules(Rules *ca, int times, int count, bool include_self, NeighborhoodAlgorithm algorithm)
simple smoothing, but always set the cell, seems to provide spikes
Definition: generator_cell.cc:296
void add_combo_rules(Rules *ca, int times, int count, int big_count, bool include_self, NeighborhoodAlgorithm algorithm)
smooth but 'big_count' is applied for R(2)
Definition: generator_cell.cc:313
void add_random_fill(Rules *cell, Random *random, float random_fill, Lrud< BorderSetupRule > border_control)
fills the world with random data
Definition: generator_cell.cc:213
void add_fill_small_holes_rule(Rules *rules, bool allow_diagonals, int min_count)
fills all open areas that are less than 'min_count'
Definition: generator_cell.cc:334
void add_fill_all_holes_rule(Rules *rules, bool allow_diagonals, int holes_to_keep)
fills all open areas, but keeps 'holes_to_keep'
Definition: generator_cell.cc:345
void add_clear_rules(Rules *ca, int times, int count, int range, bool include_self, NeighborhoodAlgorithm algorithm)
'clears' cells with less than 'count' neighbours, good for removing 'blobs'
Definition: generator_cell.cc:234
void add_simple_rules(Rules *ca, int times, int count, bool include_self, NeighborhoodAlgorithm algorithm)
simple smoothing, less than count neighbours are removed, more -> solid
Definition: generator_cell.cc:269
void add_complex_rules(Rules *ca, int times, ChangeFunction change)
Definition: generator_cell.cc:254
void add_horizontal_blank_rule(Rules *ca, int y, int height)
blanks out cells at 'y' and 'height' down
Definition: generator_cell.cc:289
std::function< std::optional< bool >(bool, const WallCounter &) > ChangeFunction
Definition: generator_cell.h:61
void make_smoother(BoolTable *world, Lrud< OutsideRule > outside_rule, std::function< std::optional< bool >(bool, const WallCounter &)> smooth_function)
Definition: table_bool.cc:327
void set_white_noise(BoolTable *world, Lrud< BorderSetupRule > border_control, std::function< bool()> rng)
Definition: table_bool.cc:11
std::vector< std::vector< vec2i > > find_empty_regions(const BoolTable &world, bool allow_diagonals)
Definition: table_bool.cc:422
Definition: table.h:18
Definition: table_bool.h:98
int count(int step, bool include_self, NeighborhoodAlgorithm algorithm) const
Definition: table_bool.cc:306
CellularAutomata(generator::Rules *r, generator::World *w, const Lrud< core::OutsideRule > &fw)
Definition: generator_cell.cc:183
bool allow_diagonals
Definition: generator_cell.cc:100
FillAllHoles(bool ad, int htk)
Definition: generator_cell.cc:103
void update(CellularAutomata *self) override
Definition: generator_cell.cc:110
bool allow_diagonals
Definition: generator_cell.cc:70
void update(CellularAutomata *self) override
Definition: generator_cell.cc:80
FillSmallHolesRule(bool ad, int mc)
Definition: generator_cell.cc:73
void update(CellularAutomata *self) override
Definition: generator_cell.cc:151
HorizontalBlankRule(int c, int h)
Definition: generator_cell.cc:144
RandomFillRule(Random *r, float rf, Lrud< BorderSetupRule > bc)
Definition: generator_cell.cc:46
void update(CellularAutomata *self) override
Definition: generator_cell.cc:58
Lrud< BorderSetupRule > border_control
Definition: generator_cell.cc:43
Definition: generator_cell.h:23
Definition: generator_cell.h:37
std::vector< std::shared_ptr< Rule > > rules
Definition: generator_cell.h:38
void add_rule(int count, std::shared_ptr< Rule > rule)
Definition: generator_cell.cc:173
SmoothRule(SmoothRule::SmoothFunction sf)
Definition: generator_cell.cc:21
void update(CellularAutomata *self) override
Definition: generator_cell.cc:27
SmoothFunction smooth_function
Definition: generator_cell.cc:19
ChangeFunction SmoothFunction
Definition: generator_cell.cc:17