Fixed implementation of rounded rectangles for hiliting the active PC in combat
This commit is contained in:
@@ -841,7 +841,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
sf::Vector2f getPoint(unsigned int i) const override {
|
sf::Vector2f getPoint(unsigned int i) const override {
|
||||||
int t = i * divSz;
|
float t = i * divSz;
|
||||||
return sf::Vector2f(a + a*sin(t), b + b*cos(t));
|
return sf::Vector2f(a + a*sin(t), b + b*cos(t));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -857,7 +857,7 @@ public:
|
|||||||
w = size.x;
|
w = size.x;
|
||||||
h = size.y;
|
h = size.y;
|
||||||
r = cornerRadius;
|
r = cornerRadius;
|
||||||
divSz = 0.5 * pi<float>() / points;
|
divSz = 2 * pi<float>() / points;
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -866,20 +866,22 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
sf::Vector2f getPoint(unsigned int i) const override {
|
sf::Vector2f getPoint(unsigned int i) const override {
|
||||||
int t = i * divSz;
|
const float pi = ::pi<float>();
|
||||||
|
const float half_pi = 0.5 * pi;
|
||||||
|
float t = i * divSz;
|
||||||
switch(i / points) {
|
switch(i / points) {
|
||||||
case 0:
|
case 0: // top left corner
|
||||||
return sf::Vector2f(r*sin(t), r*cos(t));
|
return {r + r*sin(t + pi), r + r*cos(t + pi)};
|
||||||
case 1:
|
case 1: // bottom left corner
|
||||||
return sf::Vector2f(w + r*sin(t), r*cos(t));
|
return {r + r*cos(t + half_pi), h - r + r*sin(t - half_pi)};
|
||||||
case 2:
|
case 2: // bottom right corner
|
||||||
return sf::Vector2f(w + r*sin(t), h + r*cos(t));
|
return {w - r + r*cos(t + half_pi), h - r - r*sin(t + half_pi)};
|
||||||
case 3:
|
case 3: // top right corner
|
||||||
return sf::Vector2f(r*sin(t), h + r*cos(t));
|
return {w - r - r*cos(t - half_pi), r + r*sin(t - half_pi)};
|
||||||
}
|
}
|
||||||
// Unreachable
|
// Unreachable
|
||||||
printf("Whoops, rounded rectangle had bad point!");
|
printf("Whoops, rounded rectangle had bad point!");
|
||||||
return sf::Vector2f();
|
return {0,0};
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Additional functions?
|
// TODO: Additional functions?
|
||||||
|
|||||||
Reference in New Issue
Block a user