mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-04-20 17:53:20 +00:00
atscreenpos(x,y) now returns the pixel-based matrix
This commit is contained in:
parent
5575608b76
commit
cd21ec8900
22
hypgraph.cpp
22
hypgraph.cpp
@ -2563,27 +2563,27 @@ struct flat_model_enabler {
|
||||
};
|
||||
#endif
|
||||
|
||||
EX transmatrix atscreenpos(ld x, ld y, ld size) {
|
||||
EX transmatrix atscreenpos(ld x, ld y) {
|
||||
transmatrix V = Id;
|
||||
|
||||
if(pmodel == mdPixel) {
|
||||
V[0][3] += (x - current_display->xcenter);
|
||||
V[1][3] += (y - current_display->ycenter);
|
||||
V[0][0] = size * 2 * cgi.hcrossf / cgi.crossf;
|
||||
V[1][1] = size * 2 * cgi.hcrossf / cgi.crossf;
|
||||
V[0][0] = 1;
|
||||
V[1][1] = 1;
|
||||
if(WDIM == 3) V[2][2] = -1;
|
||||
}
|
||||
else if(pmodel == mdHorocyclic) {
|
||||
V[0][3] += (x - current_display->xcenter) * 2 / current_display->radius;
|
||||
V[1][3] += (y - current_display->ycenter) * 2/ current_display->radius;
|
||||
V[0][0] = size * 2 / current_display->radius;
|
||||
V[1][1] = size * 2 / current_display->radius;
|
||||
V[0][0] = 1;
|
||||
V[1][1] = 1;
|
||||
}
|
||||
else {
|
||||
V[0][2] += (x - current_display->xcenter);
|
||||
V[1][2] += (y - current_display->ycenter);
|
||||
V[0][0] = size * 2 * cgi.hcrossf / cgi.crossf;
|
||||
V[1][1] = size * 2 * cgi.hcrossf / cgi.crossf;
|
||||
V[0][0] = 1;
|
||||
V[1][1] = 1;
|
||||
V[2][2] = current_display->radius;
|
||||
if(S3 >= OINF) V[0][0] /= 5, V[1][1] /= 5;
|
||||
}
|
||||
@ -2591,6 +2591,14 @@ EX transmatrix atscreenpos(ld x, ld y, ld size) {
|
||||
return V;
|
||||
}
|
||||
|
||||
EX transmatrix atscreenpos(ld x, ld y, ld size) {
|
||||
transmatrix V = atscreenpos(x, y);
|
||||
ld s = size * 2 * cgi.hcrossf / cgi.crossf;
|
||||
V[0][0] *= s;
|
||||
V[1][1] *= s;
|
||||
return V;
|
||||
}
|
||||
|
||||
void circle_around_center(ld radius, color_t linecol, color_t fillcol, PPR prio) {
|
||||
#if CAP_QUEUE
|
||||
if(among(pmodel, mdDisk, mdEquiarea, mdEquidistant, mdFisheye, mdFisheye2) && !(pmodel == mdDisk && hyperbolic && pconf.alpha <= -1) && models::camera_straight) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user