Updated GUI library

This commit is contained in:
2024-09-27 19:46:39 +02:00
parent 95f181be0c
commit 65c4cab8aa
6 changed files with 535 additions and 191 deletions

View File

@@ -37,9 +37,9 @@ struct Box
inline bool is_inside(Box b, v3 p)
{
return
(p.x < b.min.x || p.x > b.max.x) ||
(p.y < b.min.y || p.y > b.max.y) ||
(p.z < b.min.z || p.z > b.max.z);
(p.x > b.min.x && p.x < b.max.x) &&
(p.y > b.min.y && p.y < b.max.y) &&
(p.z > b.min.z && p.z < b.max.z);
}
inline bool overlaps(Box a, Box b)
@@ -67,7 +67,7 @@ inline Box box_from_point_cloud(v3 *points, u32 count)
Box box;
box.min = points[0];
box.max = points[0];
for(u32 i = 0; i < count; i++)
for(u32 i = 1; i < count; i++)
{
v3 p = points[i];
box.min.x = minimum(box.min.x, p.x);
@@ -302,6 +302,17 @@ inline m4 scale(f32 factor)
}
// Other geometric algebra
inline void compute_basis(v3 a, v3 *b, v3 *c)
{
// from https://box2d.org/posts/2014/02/computing-a-basis/
if(abs(a.x) >= 0.57735f)
*b = {a.y, -a.x, 0.0f};
else
*b = {0.0f, a.z, -a.y};
*b = normalize(*b);
*c = cross(a, *b);
}
// Primitives