blob: e9907a0f908d564eceec9808c40f1806992d8731 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#pragma once
#include "Vector.hpp"
namespace Math {
struct GridCellBoundaries {
float x1, x2, y1, y2;
[[nodiscard]] Vector<2> top_left() const;
[[nodiscard]] Vector<2> top_right() const;
[[nodiscard]] Vector<2> bottom_left() const;
[[nodiscard]] Vector<2> bottom_right() const;
};
GridCellBoundaries grid_cell_for_point(Vector<2> point);
struct CubeCellBoundaries {
float x1, x2, y1, y2, z1, z2;
[[nodiscard]] Vector<3> front_top_left() const;
[[nodiscard]] Vector<3> front_top_right() const;
[[nodiscard]] Vector<3> front_bottom_left() const;
[[nodiscard]] Vector<3> front_bottom_right() const;
[[nodiscard]] Vector<3> back_top_left() const;
[[nodiscard]] Vector<3> back_top_right() const;
[[nodiscard]] Vector<3> back_bottom_left() const;
[[nodiscard]] Vector<3> back_bottom_right() const;
[[nodiscard]] GridCellBoundaries grid_cell() const;
};
CubeCellBoundaries cube_cell_for_point(Vector<3> point);
}
|