1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-11-27 22:39:53 +00:00
hyperrogue/rogueviz.h

131 lines
2.9 KiB
C
Raw Normal View History

// See: http://www.roguetemple.com/z/hyper/rogueviz.php
2017-12-01 23:24:07 +00:00
namespace rogueviz {
using namespace hr;
2018-11-17 19:25:47 +00:00
enum eVizkind { kNONE, kAnyGraph, kTree, kSpiral, kSAG, kCollatz, kFullNet, kKohonen, kFlocking };
2018-09-27 23:49:37 +00:00
extern eVizkind kind;
extern bool on;
void drawExtra();
void close();
2017-12-01 23:24:07 +00:00
2017-12-14 01:53:39 +00:00
void init();
struct edgetype {
double visible_from;
2019-06-01 15:09:50 +00:00
double visible_from_hi;
double visible_from_help;
unsigned color, color_hi;
string name;
};
static const unsigned DEFAULT_COLOR = 0x471293B5;
extern edgetype default_edgetype;
2018-09-25 01:47:42 +00:00
extern vector<shared_ptr<edgetype>> edgetypes;
struct edgeinfo {
int i, j;
double weight, weight2;
vector<glvertex> prec;
2019-04-23 10:49:07 +00:00
basic_textureinfo tinf;
cell *orig;
int lastdraw;
edgetype *type;
edgeinfo(edgetype *t) { orig = NULL; lastdraw = -1; type = t; }
};
2017-12-14 01:53:39 +00:00
2019-06-01 15:06:15 +00:00
struct rvimage {
basic_textureinfo tinf;
texture::texture_data tdata;
vector<hyperpoint> vertices;
};
struct colorpair {
color_t color1, color2;
char shade;
2019-06-01 15:06:15 +00:00
shared_ptr<rvimage> img;
colorpair(color_t col = 0xC0C0C0FF) { shade = 0; color1 = col; }
};
struct vertexdata {
vector<pair<int, edgeinfo*> > edges;
string name;
colorpair cp;
edgeinfo *virt;
bool special;
int data;
string *info;
shmup::monster *m;
vertexdata() { virt = NULL; m = NULL; info = NULL; special = false; }
};
extern vector<vertexdata> vdata;
2017-12-14 01:53:39 +00:00
void storeall(int from = 0);
2017-12-01 23:24:07 +00:00
namespace anygraph {
extern double R, alpha, T;
extern vector<pair<double, double> > coords;
void fixedges();
void read(string fn, bool subdiv = true, bool doRebase = true, bool doStore = true);
extern int N;
}
2017-12-14 01:53:39 +00:00
extern bool showlabels;
extern bool rog3;
extern bool rvwarp;
#if CAP_TOUR
namespace rvtour {
extern tour::slide rvslides[];
}
#endif
namespace kohonen {
extern int samples;
int showsample(int id);
2018-07-05 05:31:27 +00:00
int showsample(string id);
void describe(cell *c);
void steps();
void showMenu();
bool handleMenu(int sym, int uni);
void clear();
}
namespace staircase {
extern bool on;
void showMenu();
void make_staircase();
}
namespace banachtarski {
extern bool on;
void init_bantar();
void bantar_anim();
extern bool bmap;
extern void init_bantar_map();
}
2018-09-03 14:34:32 +00:00
namespace pentagonal {
void run_snub(int v, int w);
}
extern colorpair dftcolor;
namespace collatz { extern double s2, s3, p2, p3; void start(); }
namespace tree { void read(string fn); }
namespace sag { extern ld edgepower, edgemul;
void read(string fn);
void loadsnake(const string& fn);
}
void readcolor(const string& cfname);
extern bool on;
void close();
extern bool showlabels;
}