Rev Author Line No. Line
23 ovan 1 #include "../scene.h"
2 #include "grid.h"
3  
4 namespace sleek
5 {
6     namespace scene3d
7     {
8         namespace real
9         {
10             Grid::Grid(Scene *smgr, const math::pixel &clr) noexcept : Node(smgr)
11             {
12                 space = math::aabbox2df(math::vec2f(-150,-150), math::vec2f(150.5,150.5));
13                 color = clr;
14                 size = 10;
15             }
16  
17             void Grid::setQuadSize(const f32 i) noexcept
18             {
19                 size = i;
20             }
21  
22             void Grid::setSpace(const math::aabbox2df &i) noexcept
23             {
24                 space = i;
25             }
26  
27             void Grid::setColor(const math::pixel &i) noexcept
28             {
29                 color = i;
30             }
31  
32             math::pixel Grid::getColor() const noexcept
33             {
34                 return color;
35             }
36  
37             math::aabbox2df Grid::getSpace() const noexcept
38             {
39                 return space;
40             }
41  
42             f32 Grid::getQuadSize() const noexcept
43             {
44                 return size;
45             }
46  
47             void Grid::render() noexcept
48             {
49                 Node::render();
50  
51                 for(float x = space.getUpperLeft().x; x<space.getLowerRight().x; x += size)
52                     smgr->getDrawManager()->drawLine(
53                         math::vec3f(x,0,space.getUpperLeft().y),
54                         math::vec3f(x,0,space.getLowerRight().y),
55                         color
56                     );
57  
58                 for(float z = space.getUpperLeft().y; z<space.getLowerRight().y; z += size)
59                     smgr->getDrawManager()->drawLine(
60                         math::vec3f(space.getUpperLeft().x,0,z),
61                         math::vec3f(space.getLowerRight().x,0,z),
62                         color
63                     );
64             }
65         }
66     }
67 }