mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-26 12:22:32 +00:00
added support for >16 colors in color picker
This commit is contained in:
39
tests/libslic3r/test_triangle_selector.cpp
Normal file
39
tests/libslic3r/test_triangle_selector.cpp
Normal file
@@ -0,0 +1,39 @@
|
||||
#include <catch2/catch.hpp>
|
||||
|
||||
#include "libslic3r/TriangleMesh.hpp"
|
||||
#include "libslic3r/TriangleSelector.hpp"
|
||||
|
||||
using namespace Slic3r;
|
||||
|
||||
TEST_CASE("Triangle selector round-trips painted states above sixteen", "[TriangleSelector][MMUPaint]")
|
||||
{
|
||||
indexed_triangle_set its;
|
||||
its.vertices = {
|
||||
Vec3f(0.f, 0.f, 0.f),
|
||||
Vec3f(1.f, 0.f, 0.f),
|
||||
Vec3f(0.f, 1.f, 0.f),
|
||||
};
|
||||
its.indices = {
|
||||
stl_triangle_vertex_indices(0, 1, 2),
|
||||
};
|
||||
|
||||
TriangleMesh mesh(its);
|
||||
TriangleSelector selector(mesh);
|
||||
|
||||
constexpr int painted_state = 120;
|
||||
selector.set_facet(0, static_cast<EnforcerBlockerType>(painted_state));
|
||||
|
||||
auto data = selector.serialize();
|
||||
REQUIRE_FALSE(data.triangles_to_split.empty());
|
||||
REQUIRE(data.used_states.size() > painted_state);
|
||||
CHECK(data.used_states[painted_state]);
|
||||
|
||||
data.reset_used_states();
|
||||
data.update_used_states(size_t(data.triangles_to_split.front().bitstream_start_idx));
|
||||
CHECK(data.used_states[painted_state]);
|
||||
CHECK(TriangleSelector::has_facets(data, static_cast<EnforcerBlockerType>(painted_state)));
|
||||
|
||||
TriangleSelector restored(mesh);
|
||||
restored.deserialize(data, true, static_cast<EnforcerBlockerType>(painted_state));
|
||||
CHECK(restored.has_facets(static_cast<EnforcerBlockerType>(painted_state)));
|
||||
}
|
||||
Reference in New Issue
Block a user