Kite-and-dart tiling, both in R^2 and H^3.
More...
|
#define | RULEFOR(sh0, dir0, z, dir1) if(sh == sh0 && dir == dir0) { heptagon *at = of; if(z true) of->c.connect(dir0, at, dir1, false); } |
|
#define | GO(our, shape) (at = at->cmove(our)) && getshape(at) == shape && |
|
#define | GOIF(our, shape, their) at->cmove(our) && at->c.spin(our) == their && getshape(at->move(our)) == shape && (at = at->move(our), true) && |
|
|
enum | pshape { pDart,
pKite
} |
|
|
EX bool | hr::kite::in () |
|
transmatrix | hr::kite::meuscale (ld z) |
|
transmatrix | hr::kite::mspin (ld alpha) |
|
transmatrix | hr::kite::meupush (ld x, ld y) |
|
hyperpoint | hr::kite::mhpxy (ld x, ld y) |
|
EX pshape | hr::kite::getshape (heptagon *h) |
|
EX hyperpoint | hr::kite::get_corner (cell *c, int d, ld cf) |
|
EX pair< vector< vector< hyperpoint > >, vector< vector< ld > > > | hr::kite::make_walls () |
|
void | hr::kite::print (hstream &hs, pshape sh) |
|
EX hrmap * | hr::kite::new_map () |
|
hrmap_kite * | hr::kite::kite_map () |
|
void | hr::kite::con (cell *c0, int d0, cell *c1, int d1) |
|
EX void | hr::kite::find_cell_connection (cell *c, int d) |
|
|
const ld | hr::kite::euscale = 0.5 |
|
const ld | hr::kite::phi = (1 + sqrt(5)) / 2 |
|
const ld | hr::kite::rphi = 1 / phi |
|
const ld | hr::kite::down = 1 / tan(36 * degree) |
|
const ld | hr::kite::up = 1 / tan(72 * degree) |
|
const ld | hr::kite::dart_center = (down + 2 * up) / 3 |
|
const ld | hr::kite::kite_center = up |
|
EX bool | hr::kite::no_adj |
|
auto | hr::kite::hooksw = addHook(hooks_swapdim, 100, [] { if(kite::in() && currentmap) kite_map()->make_graphrules(); }) |
|
Kite-and-dart tiling, both in R^2 and H^3.