32{
33 const std::string status =
_u8L(
"Capturing bake stages");
34 ctl.update_status(1, status);
35
36
37
38 int last_reported = 1;
39 const auto report = [&ctl, &status, &last_reported](int percent) {
40 if (ctl.was_canceled())
41 return false;
42 if (percent > last_reported) {
43 last_reported = percent;
44 ctl.update_status(percent, status);
45 }
46 return true;
47 };
48
49 BakeStageRecorder recorder;
50 recorder.enable(true);
51 recorder.set_check_topology(
m_input.check_topology);
52 recorder.set_mesh_cap(
m_input.mesh_cap);
53
54 indexed_triangle_set mesh =
m_input.base_mesh;
56 std::vector<Vec2f> uv =
m_input.model_uv;
57
58
59
60
62 const TextureDisplacementPrepareResult prepared =
65
66
67 [&report](int pct) { return report(1 + pct / 2); },
68 &recorder);
69 if (ctl.was_canceled())
70 return;
71
72
73
74 if (prepared.paint_lost) {
76 ctl.update_status(100, status);
77 return;
78 }
79 if (!prepared.mesh.indices.empty()) {
80 mesh = prepared.mesh;
81 masks = prepared.masks;
82 uv = prepared.uv;
83 }
84 }
85
87 [&report](int pct) { return report(50 + pct / 2); },
88 nullptr,
m_input.volume_to_world, &recorder,
nullptr,
89 uv.empty() ? nullptr : &uv, nullptr,
91
93 ctl.update_status(100, status);
94}
static TextureDisplacementPrepareResult prepare_mesh(const indexed_triangle_set &base, const TextureDisplacementFacetsData &masks, const std::vector< TextureDisplacementLayer > &layers, const std::vector< Vec2f > &model_uv, const Transform3d &texture_frame, const TextureDisplacementPrepareParams ¶ms, const TextureColorSettings &color_settings, const DisplacementProgressFn &progress, BakeStageRecorder *debug=nullptr)
Definition GLGizmoTextureDisplacement.cpp:6071
std::array< TriangleSelector::TriangleSplittingData, TEXTURE_DISPLACEMENT_MAX_LAYERS > TextureDisplacementFacetsData
Definition TextureDisplacement.hpp:913
indexed_triangle_set build_texture_displacement(const indexed_triangle_set &base_mesh, const std::vector< TextureDisplacementLayer > &layers, const TextureDisplacementFacetsData &facets_data, const TextureDisplacementOptions &options, const DisplacementProgressFn &progress, const TextureColorRequest *color, const Transform3d &volume_to_world, BakeStageRecorder *debug, TextureBakeStats *stats, const std::vector< Vec2f > *model_uv, const Vec3d *texture_anchor, float resting_drop)
Definition TextureDisplacement.cpp:3495
#define _u8L(s)
Definition I18N.hpp:11