added range.c
This commit is contained in:
parent
cc8d186dc3
commit
36c6ff5589
2 changed files with 43 additions and 0 deletions
|
@ -265,6 +265,7 @@ typedef u8 bool;
|
||||||
#include "hash.c"
|
#include "hash.c"
|
||||||
#include "path_utils.c"
|
#include "path_utils.c"
|
||||||
#include "linmath.c"
|
#include "linmath.c"
|
||||||
|
#include "range.c"
|
||||||
|
|
||||||
#include "hash_table.c"
|
#include "hash_table.c"
|
||||||
|
|
||||||
|
|
42
oogabooga/range.c
Normal file
42
oogabooga/range.c
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
|
||||||
|
// randy: we might wanna remove the f by default, similar to the Vector2 ?
|
||||||
|
// I know that we'll have a Range2i at some point, so maybe it's better to be explicit for less confusion?
|
||||||
|
// I'll leave this decision up to u charlie just delete this whenever u see it
|
||||||
|
|
||||||
|
typedef struct Range1f {
|
||||||
|
float min;
|
||||||
|
float max;
|
||||||
|
} Range1f;
|
||||||
|
// ...
|
||||||
|
|
||||||
|
typedef struct Range2f {
|
||||||
|
Vector2 min;
|
||||||
|
Vector2 max;
|
||||||
|
} Range2f;
|
||||||
|
|
||||||
|
inline Range2f range2f_make(Vector2 min, Vector2 max) { return (Range2f) { min, max }; }
|
||||||
|
|
||||||
|
Range2f range2f_shift(Range2f r, Vector2 shift) {
|
||||||
|
r.min = v2_add(r.min, shift);
|
||||||
|
r.max = v2_add(r.max, shift);
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
Range2f range2f_make_bottom_center(Vector2 size) {
|
||||||
|
Range2f range = {0};
|
||||||
|
range.max = size;
|
||||||
|
range = range2f_shift(range, v2(size.x * -0.5, 0.0));
|
||||||
|
return range;
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector2 range2f_size(Range2f range) {
|
||||||
|
Vector2 size = {0};
|
||||||
|
size = v2_sub(range.min, range.max);
|
||||||
|
size.x = fabsf(size.x);
|
||||||
|
size.y = fabsf(size.y);
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool range2f_contains(Range2f range, Vector2 v) {
|
||||||
|
return v.x >= range.min.x && v.x <= range.max.x && v.y >= range.min.y && v.y <= range.max.y;
|
||||||
|
}
|
Reference in a new issue