1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2026-01-05 03:29:03 +00:00

rogueviz:: embedding:: embedding name and information

This commit is contained in:
Zeno Rogue
2025-12-05 09:41:52 +01:00
parent 8c4f25bf36
commit e6436118f2
4 changed files with 17 additions and 1 deletions

View File

@@ -233,6 +233,8 @@ struct dhrg_embedding : public rogueviz::embeddings::tiled_embedding {
println(f, rogueviz::vdata[i].name.c_str(), " ", p.c_str());
}
}
virtual string name() { return "DHRG"; }
};
void graph_from_rv() {

View File

@@ -12,6 +12,7 @@ vector<vector<int> > directed_edges;
rogueviz::edgetype *any;
struct rv_embedding : public tiled_embedding {
virtual string name() { return "RogueViz internal representation"; }
pair<cell*, hyperpoint> as_location(int id) override {
return { vdata[id].m->base, vdata[id].m->at * C0 };
}
@@ -92,6 +93,13 @@ void esave(string fname) {
void store_gamedata(struct hr::gamedata* gd) { gd->store(current); }
string embedding::get_space() {
shstream ss;
ss.write(ss.get_vernum());
mapstream::save_geometry(ss);
return ss.s;
}
int a = arg::add3("-edgelist", [] { arg::shift(); read_edgelist(arg::args()); })
+ addHook(hooks_gamedata, 230, store_gamedata)
+ arg::add3("-write-edges", [] { arg::shift(); write_edgelist(arg::args()); })

View File

@@ -12,6 +12,10 @@ namespace embeddings {
struct polar_embedding : public untiled_embedding {
vector<polar_point> coords;
virtual string name() override { return "polar in BFKL format"; }
virtual int get_dimension() override { return 2; }
hyperpoint as_hyperpoint(int id) override {
return spin(coords[id].theta) * xpush0(coords[id].r);
}

View File

@@ -53,6 +53,8 @@ void save_sag_solution(const fhstream& f);
struct sag_embedding : public rogueviz::embeddings::tiled_embedding {
virtual string name() { return "SAG"; }
pair<cell*, hyperpoint> as_location(int id) override {
ld rad = .25 * cgi.scalefactor;
@@ -78,7 +80,7 @@ struct sag_embedding : public rogueviz::embeddings::tiled_embedding {
return sagdist[sagid[i]][0];
}
void save(const fhstream& f) {
void save(fhstream& f) {
if(!(state & SS_DATA)) throw hr_exception("save_sag_solution with no data");
for(int i=0; i<isize(sagid); i++)
println(f, vdata[i].name, ";", sagid[i]);