diff --git a/conformal.cpp b/conformal.cpp index 27675825..dc15f15c 100644 --- a/conformal.cpp +++ b/conformal.cpp @@ -637,7 +637,7 @@ namespace conformal { switchagain: { pmodel = eModel((pmodel + (shiftmul > 0 ? 1 : -1) + MODELCOUNT) % MODELCOUNT); - if(pmodel != mdEquidistant && pmodel != mdDisk && pmodel != mdEquiarea && pmodel != mdPolynomial && pmodel != mdHyperboloid) { + if(!mdEqui() && pmodel != mdDisk && pmodel != mdPolynomial && pmodel != mdHyperboloid) { if(sphere && pmodel != mdBand) goto switchagain; if(euclid && pmodel != mdHalfplane && pmodel != mdBall) diff --git a/graph.cpp b/graph.cpp index a23f825d..5a335ef8 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1937,7 +1937,7 @@ int aurac[AURA+1][4]; bool haveaura() { if(!(vid.aurastr>0 && !svg::in && (auraNOGL || vid.usingGL))) return false; - if(sphere && (pmodel == mdEquidistant || pmodel == mdEquiarea)) return true; + if(sphere && mdEqui()) return true; return pmodel == mdDisk && (!sphere || vid.alpha > 10) && !euclid; } @@ -1989,7 +1989,7 @@ void sumaura(int v) { void drawaura() { if(!haveaura()) return; double rad = vid.radius; - if(sphere && pmodel != mdEquidistant && pmodel != mdEquiarea) rad /= sqrt(vid.alphax*vid.alphax - 1); + if(sphere && !mdEqui()) rad /= sqrt(vid.alphax*vid.alphax - 1); for(int v=0; v<4; v++) sumaura(v); for(auto& p: auraspecials) { @@ -5054,10 +5054,10 @@ void drawfullmap() { ptds.clear(); - if(!vid.goteyes && !euclid && (pmodel == mdDisk || pmodel == mdBall || (sphere && (pmodel == mdEquidistant || pmodel == mdEquiarea)))) { + if(!vid.goteyes && !euclid && (pmodel == mdDisk || pmodel == mdBall || (sphere && mdEqui()))) { double rad = vid.radius; if(sphere) { - if(pmodel == mdEquidistant || pmodel == mdEquiarea) + if(mdEqui()) ; else if(!vid.grid && !elliptic) rad = 0; diff --git a/hyper.h b/hyper.h index ad01a7b7..1efffb0f 100644 --- a/hyper.h +++ b/hyper.h @@ -1297,6 +1297,8 @@ void drawShape(pair* coords, int qty, int color); extern eModel pmodel; +inline bool mdEqui() { return pmodel == mdEquidistant || pmodel == mdEquiarea; } + int darkena(int c, int lev, int a); #define SHSIZE 16 diff --git a/hypgraph.cpp b/hypgraph.cpp index d11e242e..718eaa5f 100644 --- a/hypgraph.cpp +++ b/hypgraph.cpp @@ -150,7 +150,7 @@ void applymodel(hyperpoint H, hyperpoint& ret) { H = H / zlev; } - if(pmodel == mdEquidistant || pmodel == mdEquiarea) { + if(mdEqui()) { ld rad = sqrt(H[0] * H[0] + H[1] * H[1]); ld d = hdist0(H); @@ -166,6 +166,7 @@ void applymodel(hyperpoint H, hyperpoint& ret) { if(zlev != 1 && vid.goteyes) ret[2] = geom3::factor_to_lev(zlev); ghcheck(ret,H); + return; } diff --git a/polygons.cpp b/polygons.cpp index c881a8f7..911c7bfb 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -521,7 +521,7 @@ void drawpolyline(polytodraw& p) { return; // too large! } - if((spherespecial > 0 || pmodel == mdEquidistant || pmodel == mdEquiarea) && !(poly_flags & POLY_ISSIDE)) { + if((spherespecial > 0 || (sphere && mdEqui())) && !(poly_flags & POLY_ISSIDE)) { double rarea = 0; for(int i=0; i