linewidth multipliers for grid and ring

This commit is contained in:
Zeno Rogue 2019-07-13 14:37:30 +02:00
parent 5149dbeefd
commit 7baf97521c
4 changed files with 22 additions and 0 deletions

View File

@ -287,9 +287,11 @@ void initConfig() {
addsaver(forecolor, "color:foreground"); addsaver(forecolor, "color:foreground");
addsaver(bordcolor, "color:borders"); addsaver(bordcolor, "color:borders");
addsaver(ringcolor, "color:ring"); addsaver(ringcolor, "color:ring");
addsaver(vid.multiplier_ring, "mult:ring", 1);
addsaver(modelcolor, "color:model"); addsaver(modelcolor, "color:model");
addsaver(periodcolor, "color:period"); addsaver(periodcolor, "color:period");
addsaver(stdgridcolor, "color:stdgrid"); addsaver(stdgridcolor, "color:stdgrid");
addsaver(vid.multiplier_grid, "mult:grid", 1);
addsaver(dialog::dialogcolor, "color:dialog"); addsaver(dialog::dialogcolor, "color:dialog");
for(auto& p: colortables) for(auto& p: colortables)
savecolortable(p.second, s0+"canvas"+p.first); savecolortable(p.second, s0+"canvas"+p.first);
@ -1673,11 +1675,17 @@ void show_color_dialog() {
dialog::addColorItem(XLAT("projection boundary"), ringcolor, 'r'); dialog::addColorItem(XLAT("projection boundary"), ringcolor, 'r');
dialog::add_action([] () { dialog::openColorDialog(ringcolor); dialog::dialogflags |= sm::SIDE; }); dialog::add_action([] () { dialog::openColorDialog(ringcolor); dialog::dialogflags |= sm::SIDE; });
dialog::addSelItem(XLAT("boundary width multiplier"), fts(vid.multiplier_ring), 'R');
dialog::add_action([] () { dialog::editNumber(vid.multiplier_ring, 0, 10, 1, 1, XLAT("boundary width multiplier"), ""); });
dialog::addColorItem(XLAT("projection background"), modelcolor, 'c'); dialog::addColorItem(XLAT("projection background"), modelcolor, 'c');
dialog::add_action([] () { dialog::openColorDialog(modelcolor); dialog::dialogflags |= sm::SIDE; }); dialog::add_action([] () { dialog::openColorDialog(modelcolor); dialog::dialogflags |= sm::SIDE; });
dialog::addColorItem(XLAT("standard grid color"), stdgridcolor, 'g'); dialog::addColorItem(XLAT("standard grid color"), stdgridcolor, 'g');
dialog::add_action([] () { vid.grid = true; dialog::openColorDialog(stdgridcolor); dialog::dialogflags |= sm::SIDE; }); dialog::add_action([] () { vid.grid = true; dialog::openColorDialog(stdgridcolor); dialog::dialogflags |= sm::SIDE; });
dialog::addSelItem(XLAT("grid width multiplier"), fts(vid.multiplier_grid), 'G');
dialog::add_action([] () { dialog::editNumber(vid.multiplier_grid, 0, 10, 1, 1, XLAT("grid width multiplier"), ""); });
dialog::addSelItem(XLAT("brightness behind the sphere"), fts(backbrightness), 'i'); dialog::addSelItem(XLAT("brightness behind the sphere"), fts(backbrightness), 'i');
dialog::add_action([] () { dialog::editNumber(backbrightness, 0, 1, .01, 0.25, XLAT("brightness behind the sphere"), dialog::add_action([] () { dialog::editNumber(backbrightness, 0, 1, .01, 0.25, XLAT("brightness behind the sphere"),
@ -1953,9 +1961,15 @@ int read_color_args() {
else if(argis("-ring")) { else if(argis("-ring")) {
PHASEFROM(2); shift(); ringcolor = arghex(); PHASEFROM(2); shift(); ringcolor = arghex();
} }
else if(argis("-ringw")) {
PHASEFROM(2); shift_arg_formula(vid.multiplier_ring);
}
else if(argis("-stdgrid")) { else if(argis("-stdgrid")) {
PHASEFROM(2); shift(); stdgridcolor = arghex(); PHASEFROM(2); shift(); stdgridcolor = arghex();
} }
else if(argis("-gridw")) {
PHASEFROM(2); shift_arg_formula(vid.multiplier_grid);
}
else if(argis("-period")) { else if(argis("-period")) {
PHASEFROM(2); shift(); periodcolor = arghex(); PHASEFROM(2); shift(); periodcolor = arghex();
} }
@ -2201,6 +2215,8 @@ unordered_map<string, ld&> params = {
#if CAP_SHOT #if CAP_SHOT
{"gamma", shot::gamma}, {"gamma", shot::gamma},
{"fade", shot::fade}, {"fade", shot::fade},
{"mgrid", vid.multiplier_grid},
{"mring", vid.multiplier_ring},
#endif #endif
}; };

View File

@ -4516,6 +4516,7 @@ void radar_grid(cell *c, const transmatrix& V) {
void draw_grid_at(cell *c, const transmatrix& V) { void draw_grid_at(cell *c, const transmatrix& V) {
dynamicval<ld> lw(vid.linewidth, vid.linewidth); dynamicval<ld> lw(vid.linewidth, vid.linewidth);
vid.linewidth *= vid.multiplier_grid;
vid.linewidth *= cgi.scalefactor; vid.linewidth *= cgi.scalefactor;
// sphere: 0.3948 // sphere: 0.3948

View File

@ -264,6 +264,8 @@ struct videopar {
#define AA_MULTI 64 #define AA_MULTI 64
#define AA_MULTI16 128 // not configurable #define AA_MULTI16 128 // not configurable
ld linewidth; ld linewidth;
ld multiplier_grid, multiplier_ring;
int joyvalue, joyvalue2, joypanthreshold; int joyvalue, joyvalue2, joypanthreshold;
ld joypanspeed; ld joypanspeed;

View File

@ -1471,6 +1471,7 @@ color_t modelcolor = 0;
#if CAP_QUEUE #if CAP_QUEUE
void draw_model_elements() { void draw_model_elements() {
dynamicval<ld> lw(vid.linewidth, vid.linewidth * vid.multiplier_ring);
switch(pmodel) { switch(pmodel) {
case mdRotatedHyperboles: { case mdRotatedHyperboles: {
@ -1595,6 +1596,8 @@ void draw_boundary(int w) {
if(w == 1) return; if(w == 1) return;
dynamicval<ld> lw(vid.linewidth, vid.linewidth * vid.multiplier_ring);
color_t lc = ringcolor; color_t lc = ringcolor;
color_t fc = modelcolor; color_t fc = modelcolor;
PPR p = PPR::OUTCIRCLE; PPR p = PPR::OUTCIRCLE;