Fix vector metamethods + add some debug funcs
This commit is contained in:
parent
100ae9cd22
commit
5d85ea110b
@ -25,12 +25,14 @@ namespace gui::debug
|
|||||||
float start[3];
|
float start[3];
|
||||||
float end[3];
|
float end[3];
|
||||||
float color[4];
|
float color[4];
|
||||||
|
bool deleted;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct debug_square
|
struct debug_square
|
||||||
{
|
{
|
||||||
float origin[3];
|
float origin[3];
|
||||||
float color[4];
|
float color[4];
|
||||||
|
bool deleted;
|
||||||
};
|
};
|
||||||
|
|
||||||
std::vector<debug_line> debug_lines;
|
std::vector<debug_line> debug_lines;
|
||||||
@ -683,12 +685,22 @@ namespace gui::debug
|
|||||||
|
|
||||||
for (auto& line : debug_lines)
|
for (auto& line : debug_lines)
|
||||||
{
|
{
|
||||||
|
if (line.deleted)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
draw_line(line.start, line.end, line.color, 1.f);
|
draw_line(line.start, line.end, line.color, 1.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto& square : debug_squares)
|
for (auto& square : debug_squares)
|
||||||
{
|
{
|
||||||
draw_square(square.origin, 100.f, square.color);
|
if (square.deleted)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
draw_square(square.origin, 50.f, square.color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -734,11 +746,22 @@ namespace gui::debug
|
|||||||
std::memcpy(line.color, color, sizeof(float[4]));
|
std::memcpy(line.color, color, sizeof(float[4]));
|
||||||
|
|
||||||
std::lock_guard _0(debug_items_mutex);
|
std::lock_guard _0(debug_items_mutex);
|
||||||
const auto index = debug_squares.size();
|
const auto index = debug_lines.size();
|
||||||
debug_lines.emplace_back(line);
|
debug_lines.emplace_back(line);
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void remove_debug_line(const size_t line)
|
||||||
|
{
|
||||||
|
std::lock_guard _0(debug_items_mutex);
|
||||||
|
if (line >= debug_lines.size())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
debug_lines[line].deleted = true;
|
||||||
|
}
|
||||||
|
|
||||||
void set_debug_line_color(size_t line, const float* color)
|
void set_debug_line_color(size_t line, const float* color)
|
||||||
{
|
{
|
||||||
std::lock_guard _0(debug_items_mutex);
|
std::lock_guard _0(debug_items_mutex);
|
||||||
@ -763,6 +786,17 @@ namespace gui::debug
|
|||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void remove_debug_square(const size_t square)
|
||||||
|
{
|
||||||
|
std::lock_guard _0(debug_items_mutex);
|
||||||
|
if (square >= debug_squares.size())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
debug_squares[square].deleted = true;
|
||||||
|
}
|
||||||
|
|
||||||
void set_debug_square_color(size_t square, const float* color)
|
void set_debug_square_color(size_t square, const float* color)
|
||||||
{
|
{
|
||||||
std::lock_guard _0(debug_items_mutex);
|
std::lock_guard _0(debug_items_mutex);
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
namespace gui::debug
|
namespace gui::debug
|
||||||
{
|
{
|
||||||
size_t add_debug_line(const float* start, const float* end, const float* color);
|
size_t add_debug_line(const float* start, const float* end, const float* color);
|
||||||
|
void remove_debug_line(const size_t line);
|
||||||
void set_debug_line_color(size_t line, const float* color);
|
void set_debug_line_color(size_t line, const float* color);
|
||||||
|
|
||||||
size_t add_debug_square(const float* origin, const float* color);
|
size_t add_debug_square(const float* origin, const float* color);
|
||||||
|
void remove_debug_square(const size_t line);
|
||||||
void set_debug_square_color(size_t square, const float* color);
|
void set_debug_square_color(size_t square, const float* color);
|
||||||
|
|
||||||
void reset_debug_items();
|
void reset_debug_items();
|
||||||
|
@ -101,7 +101,7 @@ namespace scripting::lua
|
|||||||
a.get_z() + b.get_z()
|
a.get_z() + b.get_z()
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
[](const vector& a, const int value)
|
[](const vector& a, const float value)
|
||||||
{
|
{
|
||||||
return vector(
|
return vector(
|
||||||
a.get_x() + value,
|
a.get_x() + value,
|
||||||
@ -120,7 +120,7 @@ namespace scripting::lua
|
|||||||
a.get_z() - b.get_z()
|
a.get_z() - b.get_z()
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
[](const vector& a, const int value)
|
[](const vector& a, const float value)
|
||||||
{
|
{
|
||||||
return vector(
|
return vector(
|
||||||
a.get_x() - value,
|
a.get_x() - value,
|
||||||
@ -139,7 +139,7 @@ namespace scripting::lua
|
|||||||
a.get_z() * b.get_z()
|
a.get_z() * b.get_z()
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
[](const vector& a, const int value)
|
[](const vector& a, const float value)
|
||||||
{
|
{
|
||||||
return vector(
|
return vector(
|
||||||
a.get_x() * value,
|
a.get_x() * value,
|
||||||
@ -158,7 +158,7 @@ namespace scripting::lua
|
|||||||
a.get_z() / b.get_z()
|
a.get_z() / b.get_z()
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
[](const vector& a, const int value)
|
[](const vector& a, const float value)
|
||||||
{
|
{
|
||||||
return vector(
|
return vector(
|
||||||
a.get_x() / value,
|
a.get_x() / value,
|
||||||
@ -504,6 +504,11 @@ namespace scripting::lua
|
|||||||
return gui::debug::add_debug_line(start, end, color_);
|
return gui::debug::add_debug_line(start, end, color_);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
debug_type["removeline"] = [](const debug&, const size_t line)
|
||||||
|
{
|
||||||
|
return gui::debug::remove_debug_line(line);
|
||||||
|
};
|
||||||
|
|
||||||
debug_type["addsquare"] = [](const debug&, const vector& origin, const vector& color)
|
debug_type["addsquare"] = [](const debug&, const vector& origin, const vector& color)
|
||||||
{
|
{
|
||||||
float color_[4]{};
|
float color_[4]{};
|
||||||
@ -515,6 +520,11 @@ namespace scripting::lua
|
|||||||
return gui::debug::add_debug_square(origin, color_);
|
return gui::debug::add_debug_square(origin, color_);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
debug_type["removesquare"] = [](const debug&, const size_t square)
|
||||||
|
{
|
||||||
|
return gui::debug::remove_debug_square(square);
|
||||||
|
};
|
||||||
|
|
||||||
debug_type["setsquarecolor"] = [](const debug&, const size_t& square, const vector& color)
|
debug_type["setsquarecolor"] = [](const debug&, const size_t& square, const vector& color)
|
||||||
{
|
{
|
||||||
float color_[4]{};
|
float color_[4]{};
|
||||||
|
Loading…
Reference in New Issue
Block a user