HyperRogue  11.3d
game/visualization engine based on non-Euclidean geometry
Classes | Namespaces | Enumerations | Functions | Variables
expansion.cpp File Reference

exponential growth of hyperbolic geometries More...

#include "hyper.h"

Classes

struct  hr::expansion_analyzer
 

Namespaces

 hr
 

Enumerations

enum  eDistanceFrom { dfPlayer, dfStart, dfWorld }
 
enum  eNumberCoding { ncNone, ncDistance, ncType, ncDebug }
 

Functions

int hr::subtype (cell *c)
 
void hr::canonicize (vector< int > &t)
 
template<class T , class U >
vector< int > hr::get_children_codes (cell *c, const T &distfun, const U &typefun)
 
template<class T >
int hr::size_upto (vector< T > &v, int s)
 
EX int hr::type_in (expansion_analyzer &ea, cell *c, const cellfunction &f)
 
int hr::type_in_quick (expansion_analyzer &ea, cell *c, const cellfunction &f)
 
EX bool hr::sizes_known ()
 
EX bool hr::trees_known ()
 
bool hr::mod_allowed ()
 
EX int hr::curr_dist (cell *c)
 
EX int hr::type_in_reduced (expansion_analyzer &ea, cell *c, const cellfunction &f)
 
EX int hr::parent_id (cell *c, int which, const cellfunction &cf)
 
EX void hr::generate_around (cell *c)
 
EX cell * hr::ts::verified_add (cell *c, int which, int bonus, const cellfunction &cf)
 
EX cell * hr::ts::verified_add_gen (cell *c, int which, int bonus, const cellfunction &cf)
 
EX cell * hr::ts::add (cell *c, int which, int bonus, const cellfunction &cf)
 
EX cell * hr::ts::left_of (cell *c, const cellfunction &cf)
 
EX cell * hr::ts::right_of (cell *c, const cellfunction &cf)
 
EX cell * hr::ts::child_number (cell *c, int id, const cellfunction &cf)
 
cell * hr::ts::left_parent (cell *c, const cellfunction &cf)
 
cell * hr::ts::right_parent (cell *c, const cellfunction &cf)
 
color_t hr::distribute_color (int id)
 
EX void hr::viewdist_configure_dialog ()
 
bool hr::is_descendant (cell *c)
 
EX void hr::enable_viewdists ()
 
bool hr::expansion_handleKey (int sym, int uni)
 
void hr::compute_coefficients ()
 
int hr::expansion_readArgs ()
 
EX void hr::set_sibling_limit ()
 
int hr::celldist0 (cell *c)
 
bool hr::in_segment (cell *left, cell *mid, cell *right)
 
int hr::sibling_distance (cell *a, cell *b, int limit)
 
EX int hr::hyperbolic_celldistance (cell *c1, cell *c2)
 

Variables

ld hr::growth
 
string hr::dfnames [3] = { "player", "start", "land" }
 
eDistanceFrom hr::distance_from = dfPlayer
 
string hr::ncnames [4] = { "NO", "distance", "type", "debug" }
 
eNumberCoding hr::number_coding = ncDistance
 
int hr::position
 
EX bool hr::viewdists = false
 
EX bool hr::use_color_codes = true
 
EX bool hr::use_analyzer = true
 
EX bool hr::show_distance_lists = true
 
int hr::first_distance = 0
 
int hr::scrolltime = 0
 
bool hr::scrolling_distances = false
 
EX map< int, color_t > hr::expcolors
 
const int hr::scrollspeed = 100
 
bool hr::not_only_descendants = false
 
int hr::expansion_hook = addHook(hooks_handleKey, 0, expansion_handleKey)
 
auto hr::ea_hook = addHook(hooks_args, 100, expansion_readArgs)
 
EX expansion_analyzer hr::expansion
 
EX int hr::sibling_limit = 0
 

Detailed Description

exponential growth of hyperbolic geometries

Calculations related to this exponential growth. Screens which display this exponential growth (e.g. 'size of the world' in geometry experiments) are also implemented here.