mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-01-19 13:43:04 +00:00
struct archimedean_tiling exported in hyper.h
This commit is contained in:
parent
59ff4c2266
commit
4c01859192
@ -10,68 +10,6 @@ static const int sfCHESS = 4;
|
|||||||
static const int sfTHREE = 8;
|
static const int sfTHREE = 8;
|
||||||
static const int sfSEMILINE = 16;
|
static const int sfSEMILINE = 16;
|
||||||
|
|
||||||
struct archimedean_tiling {
|
|
||||||
|
|
||||||
int coloring;
|
|
||||||
|
|
||||||
string symbol;
|
|
||||||
|
|
||||||
vector<int> faces;
|
|
||||||
vector<int> adj;
|
|
||||||
vector<bool> invert;
|
|
||||||
vector<int> nflags;
|
|
||||||
|
|
||||||
bool have_ph, have_line, have_symmetry;
|
|
||||||
int real_faces;
|
|
||||||
int real_face_type;
|
|
||||||
|
|
||||||
int repetition;
|
|
||||||
int N;
|
|
||||||
|
|
||||||
ld euclidean_angle_sum;
|
|
||||||
|
|
||||||
vector<int> flags;
|
|
||||||
|
|
||||||
vector<vector<pair<int, int>>> adjacent;
|
|
||||||
vector<vector<pair<ld, ld>>> triangles;
|
|
||||||
|
|
||||||
void make_match(int a, int i, int b, int j);
|
|
||||||
void prepare();
|
|
||||||
void compute_geometry();
|
|
||||||
|
|
||||||
void parse();
|
|
||||||
void parse(string s) { symbol = s; parse(); }
|
|
||||||
|
|
||||||
ld edgelength;
|
|
||||||
|
|
||||||
vector<ld> inradius, circumradius, alphas;
|
|
||||||
|
|
||||||
int matches[30][30];
|
|
||||||
int periods[30];
|
|
||||||
int tilegroup[30], groupoffset[30], tilegroups;
|
|
||||||
|
|
||||||
int errors;
|
|
||||||
string errormsg;
|
|
||||||
|
|
||||||
pair<int, int>& get_adj(heptagon *h, int cid);
|
|
||||||
pair<int, int>& get_adj(heptspin hs) { return get_adj(hs.at, hs.spin); }
|
|
||||||
pair<ld, ld>& get_triangle(heptagon *h, int cid);
|
|
||||||
pair<ld, ld>& get_triangle(heptspin hs) { return get_triangle(hs.at, hs.spin); }
|
|
||||||
pair<ld, ld>& get_triangle(const pair<int, int>& p, int delta = 0);
|
|
||||||
pair<int, int>& get_adj(const pair<int, int>& p, int delta = 0);
|
|
||||||
|
|
||||||
int support_threecolor();
|
|
||||||
int support_threecolor_bitruncated();
|
|
||||||
int support_football();
|
|
||||||
bool support_chessboard();
|
|
||||||
void regroup();
|
|
||||||
string world_size();
|
|
||||||
|
|
||||||
eGeometryClass get_class();
|
|
||||||
|
|
||||||
ld scale();
|
|
||||||
};
|
|
||||||
|
|
||||||
archimedean_tiling current;
|
archimedean_tiling current;
|
||||||
|
|
||||||
// id of vertex in the archimedean tiling
|
// id of vertex in the archimedean tiling
|
||||||
|
67
hyper.h
67
hyper.h
@ -3922,6 +3922,73 @@ namespace binary {
|
|||||||
}
|
}
|
||||||
|
|
||||||
namespace arcm {
|
namespace arcm {
|
||||||
|
|
||||||
|
struct archimedean_tiling {
|
||||||
|
|
||||||
|
int coloring;
|
||||||
|
|
||||||
|
string symbol;
|
||||||
|
|
||||||
|
vector<int> faces;
|
||||||
|
vector<int> adj;
|
||||||
|
vector<bool> invert;
|
||||||
|
vector<int> nflags;
|
||||||
|
|
||||||
|
bool have_ph, have_line, have_symmetry;
|
||||||
|
int real_faces;
|
||||||
|
int real_face_type;
|
||||||
|
|
||||||
|
int repetition;
|
||||||
|
int N;
|
||||||
|
|
||||||
|
ld euclidean_angle_sum;
|
||||||
|
|
||||||
|
vector<int> flags;
|
||||||
|
|
||||||
|
vector<vector<pair<int, int>>> adjacent;
|
||||||
|
vector<vector<pair<ld, ld>>> triangles;
|
||||||
|
|
||||||
|
void make_match(int a, int i, int b, int j);
|
||||||
|
void prepare();
|
||||||
|
void compute_geometry();
|
||||||
|
|
||||||
|
void parse();
|
||||||
|
void parse(string s) { symbol = s; parse(); }
|
||||||
|
|
||||||
|
ld edgelength;
|
||||||
|
|
||||||
|
vector<ld> inradius, circumradius, alphas;
|
||||||
|
|
||||||
|
int matches[30][30];
|
||||||
|
int periods[30];
|
||||||
|
int tilegroup[30], groupoffset[30], tilegroups;
|
||||||
|
|
||||||
|
int errors;
|
||||||
|
string errormsg;
|
||||||
|
|
||||||
|
pair<int, int>& get_adj(heptagon *h, int cid);
|
||||||
|
pair<int, int>& get_adj(heptspin hs) { return get_adj(hs.at, hs.spin); }
|
||||||
|
pair<ld, ld>& get_triangle(heptagon *h, int cid);
|
||||||
|
pair<ld, ld>& get_triangle(heptspin hs) { return get_triangle(hs.at, hs.spin); }
|
||||||
|
pair<ld, ld>& get_triangle(const pair<int, int>& p, int delta = 0);
|
||||||
|
pair<int, int>& get_adj(const pair<int, int>& p, int delta = 0);
|
||||||
|
|
||||||
|
int support_threecolor();
|
||||||
|
int support_threecolor_bitruncated();
|
||||||
|
int support_football();
|
||||||
|
bool support_chessboard();
|
||||||
|
void regroup();
|
||||||
|
string world_size();
|
||||||
|
|
||||||
|
eGeometryClass get_class();
|
||||||
|
|
||||||
|
ld scale();
|
||||||
|
};
|
||||||
|
|
||||||
|
extern archimedean_tiling current;
|
||||||
|
|
||||||
|
extern map<heptagon*, pair<heptagon*, transmatrix>> archimedean_gmatrix;
|
||||||
|
|
||||||
void initialize(heptagon *root);
|
void initialize(heptagon *root);
|
||||||
transmatrix relative_matrix(heptagon *h1, heptagon *h2);
|
transmatrix relative_matrix(heptagon *h1, heptagon *h2);
|
||||||
short& id_of(heptagon *);
|
short& id_of(heptagon *);
|
||||||
|
Loading…
Reference in New Issue
Block a user