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

Goldberg-Coxeter construction. More...

#include "hyper.h"

Classes

struct  hr::gp::loc
 
struct  hr::gp::local_info
 
struct  hr::gp::goldberg_mapping_t
 

Namespaces

 hr
 

Macros

#define corner_coords   (S3==3 ? corner_coords6 : corner_coords4)
 

Functions

EX loc hr::gp::eudir (int d)
 
EX int hr::gp::length (loc p)
 
EX int hr::gp::fixg6 (int x)
 
EX int hr::gp::get_code (const local_info &li)
 
EX local_info hr::gp::get_local_info (cell *c)
 
EX int hr::gp::last_dir (cell *c)
 
EX loc hr::gp::get_coord (cell *c)
 
EX int hr::gp::pseudohept_val (cell *c)
 
void hr::gp::clear_mapping ()
 
goldberg_mapping_t & hr::gp::get_mapping (loc c)
 
cell *& hr::gp::peek (cellwalker cw)
 
cellwalker hr::gp::get_localwalk (const goldberg_mapping_t &wc, int dir)
 
void hr::gp::set_localwalk (goldberg_mapping_t &wc, int dir, const cellwalker &cw)
 
bool hr::gp::pull (loc at, int dir)
 
void hr::gp::conn1 (loc at, int dir, int dir1)
 
void hr::gp::conn (loc at, int dir)
 
EX transmatrix & hr::gp::get_adj (cell *c, int i)
 
goldberg_mapping_t & hr::gp::set_heptspin (loc at, heptspin hs)
 
EX void hr::gp::extend_map (cell *c, int d)
 
EX hyperpoint hr::gp::loctoh_ort (loc at)
 
hyperpoint hr::gp::cornmul (const transmatrix &corners, const hyperpoint &c)
 
hyperpoint hr::gp::atz (const transmatrix &T, const transmatrix &corners, loc at, int cornerid=6, ld cf=3)
 
transmatrix hr::gp::dir_matrix (int i)
 
void hr::gp::prepare_matrices ()
 
EX hyperpoint hr::gp::get_corner_position (const local_info &li, int cid, ld cf IS(3))
 
EX hyperpoint hr::gp::get_corner_position (cell *c, int cid, ld cf IS(3))
 
EX void hr::gp::compute_geometry ()
 
loc hr::gp::internal_representation (loc v)
 
EX loc hr::gp::human_representation (loc v)
 
void hr::gp::whirl_set (loc xy)
 
string hr::gp::helptext ()
 
void hr::gp::show ()
 
EX loc hr::gp::univ_param ()
 
EX void hr::gp::configure ()
 
EX void hr::gp::be_in_triangle (local_info &li)
 
EX int hr::gp::solve_triangle (int dmain, int d0, int d1, loc at)
 
int hr::gp::solve_quad (int dmain, int d0, int d1, int dx, loc at)
 
EX hyperpoint hr::gp::get_master_coordinates (cell *c)
 
EX int hr::gp::compute_dist (cell *c, int master_function(cell *))
 
EX int hr::gp::dist_2 ()
 
EX int hr::gp::dist_3 ()
 
EX int hr::gp::dist_1 ()
 
EX array< heptagon *, 3 > hr::gp::get_masters (cell *c)
 
EX string hr::gp::operation_name ()
 

Variables

EX loc hr::gp::param = loc(1, 0)
 
EX hyperpoint hr::gp::next
 
goldberg_mapping_t hr::gp::goldberg_map [32][32]
 
int hr::gp::spawn
 
EX bool hr::gp::do_adjm
 
EX map< pair< cell *, int >, transmatrix > hr::gp::gp_adj
 
hyperpoint hr::gp::corner_coords6 [7]
 
hyperpoint hr::gp::corner_coords4 [7]
 
map< pair< int, int >, loc > hr::gp::center_locs
 
loc hr::gp::config
 

Detailed Description

Goldberg-Coxeter construction.

This is generally not used for standard pure and bitruncated tilings, even though they are technically Goldberg too.

Variable Documentation

◆ corner_coords6

hyperpoint hr::gp::corner_coords6[7]
Initial value:
= {
point3(2, -1, 0),
point3(1, 1, 0),
point3(-1, 2, 0),
point3(-2, 1, 0),
point3(-1, -1, 0),
point3(1, -2, 0),
point3(0, 0, 0)
}

◆ corner_coords4

hyperpoint hr::gp::corner_coords4[7]
Initial value:
= {
point3(1.5, -1.5, 0),
point3(1.5, 1.5, 0),
point3(-1.5, 1.5, 0),
point3(-1.5, -1.5, 0),
point3(0, 0, 0),
point3(0, 0, 0),
point3(0, 0, 0)
}