diff --git a/rogueviz/dhrg/embedder.cpp b/rogueviz/dhrg/embedder.cpp index 81cb1fa5..24b180a5 100644 --- a/rogueviz/dhrg/embedder.cpp +++ b/rogueviz/dhrg/embedder.cpp @@ -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() { diff --git a/rogueviz/embeddings/embeddings.cpp b/rogueviz/embeddings/embeddings.cpp index b7bda551..cf558021 100644 --- a/rogueviz/embeddings/embeddings.cpp +++ b/rogueviz/embeddings/embeddings.cpp @@ -12,6 +12,7 @@ vector > directed_edges; rogueviz::edgetype *any; struct rv_embedding : public tiled_embedding { + virtual string name() { return "RogueViz internal representation"; } pair 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()); }) diff --git a/rogueviz/embeddings/polar.cpp b/rogueviz/embeddings/polar.cpp index b04e7452..65eb6e37 100644 --- a/rogueviz/embeddings/polar.cpp +++ b/rogueviz/embeddings/polar.cpp @@ -12,6 +12,10 @@ namespace embeddings { struct polar_embedding : public untiled_embedding { vector 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); } diff --git a/rogueviz/sag/data.cpp b/rogueviz/sag/data.cpp index c731d4f5..f3ab4cb8 100644 --- a/rogueviz/sag/data.cpp +++ b/rogueviz/sag/data.cpp @@ -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 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