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

regular honeycombs More...

#include "hyper.h"

Classes

struct  hr::reg3::hrmap_quotient3
 
struct  hr::reg3::hrmap_from_crystal
 
struct  hr::reg3::hrmap_field3
 
struct  hr::reg3::seifert_weber::hrmap_singlecell
 
struct  hr::reg3::seifert_weber::hrmap_seifert_cover
 
struct  hr::reg3::hrmap_reg3
 
struct  hr::reg3::hrmap_reg3_rule
 
struct  hr::reg3::hrmap_reg3_rule_alt
 

Namespaces

 hr
 
 hr::reg3
 
 hr::reg3::seifert_weber
 

Macros

#define DEB   0
 
#define DEB   0
 

Functions

void hr::binary::build_tmatrix ()
 
void hr::binary::virtualRebaseSimple (heptagon *&base, transmatrix &at)
 
int hr::binary::celldistance3 (heptagon *c1, heptagon *c2)
 
hyperpoint hr::binary::deparabolic3 (hyperpoint h)
 
short & hr::reg3::altdist (heptagon *h)
 
template<class T >
ld hr::reg3::binsearch (ld dmin, ld dmax, const T &f)
 
EX void hr::reg3::generate ()
 
void hr::reg3::binary_rebase (heptagon *h, const transmatrix &V)
 
void hr::reg3::test ()
 
int hr::reg3::encode_coord (const crystal::coord &co)
 
EX crystal::coord hr::reg3::decode_coord (int a)
 
int hr::reg3::seifert_weber::flip (int x)
 
void hr::reg3::seifert_weber::build_reps ()
 
int hr::reg3::seifert_weber::get_rep (coord a)
 
coord hr::reg3::seifert_weber::decode (int id)
 
EX hrmap * hr::reg3::new_alt_map (heptagon *o)
 
EX void hr::reg3::link_structures (heptagon *h, heptagon *alt, hstate firststate)
 
EX bool hr::reg3::in_rule ()
 
EX hrmap * hr::reg3::new_map ()
 
hrmap_reg3 * hr::reg3::regmap ()
 
EX int hr::reg3::quotient_count ()
 
int hr::reg3::celldistance_534 (cell *c1, cell *c2)
 
EX int hr::reg3::celldistance (cell *c1, cell *c2)
 
EX bool hr::reg3::pseudohept (cell *c)
 
EX void hr::reg3::generate_cellrotations ()
 
EX cellwalker hr::reg3::strafe (cellwalker cw, int j)
 
EX int hr::reg3::matrix_order (const transmatrix A)
 
EX void hr::reg3::generate_fulls ()
 
EX void hr::reg3::construct_relations ()
 

Variables

map< int, int > hr::reg3::close_distances
 
EX int hr::reg3::loop
 
EX int hr::reg3::face
 
EX vector< hyperpoint > hr::reg3::cellshape
 
EX vector< hyperpoint > hr::reg3::vertices_only
 
EX transmatrix hr::reg3::spins [12]
 
EX transmatrix hr::reg3::adjmoves [12]
 
EX ld hr::reg3::adjcheck
 
EX ld hr::reg3::strafedist
 
EX bool hr::reg3::dirs_adjacent [16][16]
 
EX int hr::reg3::next_dir [16][16]
 
vector< coord > hr::reg3::seifert_weber::periods
 
EX bool hr::reg3::reg3_rule_available = true
 
EX vector< pair< string, string > > hr::reg3::rels
 
EX int hr::reg3::xp_order
 
EX int hr::reg3::r_order
 
EX int hr::reg3::rx_order
 
EX transmatrix hr::reg3::full_X
 
EX transmatrix hr::reg3::full_R
 
EX transmatrix hr::reg3::full_P
 
geometry_information * hr::reg3::for_cgi
 

Detailed Description

regular honeycombs

works with spherical and hyperbolic ones – Euclidean cubic tiling implemented in euclid.cpp includes non-quotient spaces as well as field quotient and elliptic spaces hyperbolic honeycombs rely on bt:: to deal with floating point errors (just like archimedean)