blob: e2a50519dc66007b0a3dc33bf20ab8103f28283a (
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
36
37
|
#pragma once
#include "Vector.hpp"
namespace Math {
struct GridCellBoundaries {
Real 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_containing_point(Vec2 point, Vec2 cell_size = Vec2(1.0));
GridCellBoundaries grid_cell_from_point(Vec2 point, Vec2 cell_size = Vec2(1.0));
struct CubeCellBoundaries {
Real 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_containing_point(Vec3 point, Vec3 cell_size = Vec3(1.0));
CubeCellBoundaries cube_cell_from_point(Vec3 point, Vec3 cell_size = Vec3(1.0));
}
|