From ba4de8c1fc29996f568b9b8d5aace828b61b010c Mon Sep 17 00:00:00 2001 From: ExPikaPaka Date: Thu, 15 Oct 2026 13:13:26 +0200 Subject: [PATCH] Measure the placement gizmo in the frame the texture is projected in The gizmo worked in mesh-local millimetres while the texture is projected in the bake frame - world orientation and scale, anchored at the volume's origin. On an unscaled object the two agree, which is why this went unnoticed; on a scaled one the drawn tile differed from the rendered one by exactly the object's scale, and a rotated one would have skewed its axes as well. The anchor is carried into that frame at the point of use rather than stored converted, since the object can be moved, turned or scaled without leaving the mode. Getting from the frame to the screen is then a translation and nothing more, which is the point: rotation and scale are what a tile's millimetres must not be measured through. Also in this commit: a pale casing outside the dark halo, because a dark halo alone disappears against a dark backdrop and a photographic texture offers both within one tile; one rotate ring instead of four, moved to whichever corner the cursor is nearest and held there by a margin so it does not flit between two; one constant for the casing's width, after the move grip's dots turned out to carry nearly twice the casing of everything around them; a request for one more frame when a panel edit changes a preview parameter, since the panel is drawn after the 3D view and the edit was otherwise a frame late; and an animated illustration for the square-tile lock. --- .../images/texture_displacement/tile_lock.gif | Bin 0 -> 134747 bytes .../GUI/Gizmos/GLGizmoTextureDisplacement.cpp | 198 ++++++++++++++---- .../GUI/Gizmos/GLGizmoTextureDisplacement.hpp | 33 ++- 3 files changed, 189 insertions(+), 42 deletions(-) create mode 100644 resources/images/texture_displacement/tile_lock.gif diff --git a/resources/images/texture_displacement/tile_lock.gif b/resources/images/texture_displacement/tile_lock.gif new file mode 100644 index 0000000000000000000000000000000000000000..5503a3c06ae81fca32487f7b368546cd95dbde3d GIT binary patch literal 134747 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

yiup(6|{u`ZPTR(`mB;2*i`5mZKwEtB2)w{d% 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 z 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 literal 0 HcmV?d00001 diff --git a/src/slic3r/GUI/Gizmos/GLGizmoTextureDisplacement.cpp b/src/slic3r/GUI/Gizmos/GLGizmoTextureDisplacement.cpp index abea83e33f..e4ce74e437 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoTextureDisplacement.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoTextureDisplacement.cpp @@ -3358,13 +3358,47 @@ void GLGizmoTextureDisplacement::on_uv_vertex_edited(const std::vectorselection_info()->model_object(); + const ModelVolume *mv = texture_volume(); + if (mo == nullptr || mv == nullptr) + return false; + const int idx = m_parent.get_selection().get_instance_idx(); + if (idx < 0 || size_t(idx) >= mo->instances.size()) + return false; + out = mo->instances[size_t(idx)]->get_transformation().get_matrix() * mv->get_matrix(); + return true; +} + bool GLGizmoTextureDisplacement::update_adjust_anchor() { const ModelVolume *mv = texture_volume(); - m_adjust_anchor_valid = mv != nullptr && + Vec3f pos_local, n_local; + Transform3d volume_to_world; + m_adjust_anchor_valid = mv != nullptr && adjust_volume_to_world(volume_to_world) && compute_layer_paint_anchor(mv->mesh().its, mv->texture_displacement_facet(m_active_layer_slot).get_data(), - m_adjust_anchor_pos, m_adjust_anchor_normal); - return m_adjust_anchor_valid; + pos_local, n_local); + if (!m_adjust_anchor_valid) + return false; + + m_adjust_anchor_pos = pos_local; + m_adjust_anchor_normal = n_local; + return true; +} + +bool GLGizmoTextureDisplacement::adjust_anchor_in_frame(Vec3f &pos, Vec3f &normal) const +{ + Transform3d volume_to_world; + if (!m_adjust_anchor_valid || !adjust_volume_to_world(volume_to_world)) + return false; + // tiling_scale counts *printed* millimetres, so a scaled instance tiles the texture at a + // different rate than its own local millimetres would suggest, and a rotated one turns the axes + // the projection picks. Both are why the gizmo is measured here rather than in mesh space. + const Transform3d frame = texture_displacement_bake_frame(volume_to_world); + pos = (frame * m_adjust_anchor_pos.cast()).cast(); + normal = Vec3f((frame.linear().inverse().transpose() * m_adjust_anchor_normal.cast()).normalized().cast()); + return true; } TextureDisplacementLayer *GLGizmoTextureDisplacement::active_layer() @@ -3385,10 +3419,17 @@ const TextureDisplacementLayer *GLGizmoTextureDisplacement::active_layer() const Vec3f GLGizmoTextureDisplacement::adjust_plane_point() const { - const ModelVolume *mv = texture_volume(); - const float bbox_size = (mv != nullptr) ? float(mv->mesh().bounding_box().size().norm()) : 1.f; - const float lift = bbox_size * 0.01f + 0.2f; // clear of the surface, to avoid z-fighting - return m_adjust_anchor_pos + m_adjust_anchor_normal * lift; + // Measured in bake-frame millimetres like the anchor itself: the lift has to clear the surface as + // it is actually drawn, and on a scaled instance local millimetres are the wrong unit for that. + const ModelVolume *mv = texture_volume(); + Transform3d volume_to_world; + float bbox_size = 1.f; + if (mv != nullptr && adjust_volume_to_world(volume_to_world)) + bbox_size = float(mv->mesh().bounding_box().transformed(texture_displacement_bake_frame(volume_to_world)).size().norm()); + const float lift = bbox_size * 0.01f + 0.2f; // clear of the surface, to avoid z-fighting + Vec3f pos = m_adjust_anchor_pos, n = m_adjust_anchor_normal; + adjust_anchor_in_frame(pos, n); + return pos + n * lift; } void GLGizmoTextureDisplacement::end_adjust_texture_mode() @@ -3458,7 +3499,9 @@ void GLGizmoTextureDisplacement::adjust_tangent_basis(Vec3f &u_axis, Vec3f &v_ax // pointing *down* the texture and u flipping on the far side of each plane. The whole gizmo is // derived from this basis (see adjust_frame()), so it follows those conventions rather than // having to know about them. - box_projection_axes(m_adjust_anchor_normal, u_axis, v_axis); + Vec3f pos = m_adjust_anchor_pos, n = m_adjust_anchor_normal; + adjust_anchor_in_frame(pos, n); + box_projection_axes(n, u_axis, v_axis); } namespace { @@ -3489,6 +3532,15 @@ constexpr double ADJUST_PICK_GRIP_PX = 11.0 * ADJUST_UI_SCALE; constexpr double ADJUST_PICK_BAR_PX = 9.0 * ADJUST_UI_SCALE; // around the bar's own segment constexpr double ADJUST_PICK_TIP_PX = 11.0 * ADJUST_UI_SCALE; // around the arrow's chevron constexpr double ADJUST_PICK_SHAFT_PX = 8.0 * ADJUST_UI_SCALE; // around the arrow's shaft +// How much nearer another corner has to be before the rotate ring moves to it. Without a margin the +// ring swaps corners on every pixel of cursor movement along the line equidistant from two of them. +constexpr double ADJUST_ROT_SWAP_PX = 18.0 * ADJUST_UI_SCALE; +// How much wider than the stroke it protects each casing is drawn, in total width - so half of it +// lies on each side. One number rather than one per shape: a circle quoted as a radius and a line +// quoted as a width drift apart as soon as either is touched, which is how the move grip's dots +// ended up with almost twice the casing of everything around them. +constexpr float ADJUST_CASING_W_PX = 5.6f; +constexpr float ADJUST_HALO_W_PX = 2.7f; double point_to_segment_px(const Vec2d &p, const Vec2d &a, const Vec2d &b) { @@ -3526,11 +3578,15 @@ bool GLGizmoTextureDisplacement::adjust_basis(Transform3d &trafo, Vec3f &u_axis, const ModelVolume *mv = texture_volume(); if (mo == nullptr || mv == nullptr || active_layer() == nullptr) return false; - const Selection &selection = m_parent.get_selection(); - const int idx = selection.get_instance_idx(); - if (idx < 0 || size_t(idx) >= mo->instances.size()) + Transform3d volume_to_world; + if (!adjust_volume_to_world(volume_to_world)) return false; - trafo = mo->instances[size_t(idx)]->get_transformation().get_matrix() * mv->get_matrix(); + // Everything the gizmo computes is already in the bake frame, and that frame is the world one + // with its origin moved to the volume's: so getting a point of it onto the screen is a + // translation and nothing more. No rotation or scale here is the whole point - they are what the + // tile's millimetres must not be measured through. + trafo = Transform3d::Identity(); + trafo.translation() = volume_to_world.translation(); adjust_tangent_basis(u_axis, v_axis); base = adjust_plane_point(); return true; @@ -3652,14 +3708,42 @@ GLGizmoTextureDisplacement::AdjustFrame GLGizmoTextureDisplacement::adjust_frame f.arm_tip[size_t(i)] = f.arm_base[size_t(i)] + f.arm_dir[size_t(i)] * ADJUST_ARM_PX; } - const Vec2d rot_out = f.corner[0] - f.center; - const double rot_len = rot_out.norm(); - f.rotate_at = f.corner[0] + ((rot_len > 1e-6) ? Vec2d(rot_out / rot_len) : Vec2d(0.0, 1.0)) * ADJUST_ROT_STEM_PX; + // One ring per corner, each on a short stem straight out along its own diagonal. Four rather + // than one because a tile seen at an angle can have any of them nearest the camera, and reaching + // around the model for the only ring was the kind of thing that makes a control feel stiff. + static const Vec2d fallback_diag[4] = { { 0.7, 0.7 }, { 0.7, -0.7 }, { -0.7, -0.7 }, { -0.7, 0.7 } }; + for (int i = 0; i < 4; ++i) { + const Vec2d out = f.corner[size_t(i)] - f.center; + const double len = out.norm(); + f.rotate_at[size_t(i)] = f.corner[size_t(i)] + + ((len > 1e-6) ? Vec2d(out / len) : fallback_diag[i]) * ADJUST_ROT_STEM_PX; + } - f.valid = true; + f.rotate_shown = std::clamp(m_adjust_rotate_corner, 0, 3); + f.valid = true; return f; } +void GLGizmoTextureDisplacement::update_rotate_corner(const AdjustFrame &f, const Vec2d &mouse) +{ + // Never while a drag is running: the ring the gesture started on has to stay where it is, or it + // would vanish mid-rotation. + if (!f.valid || m_adjust_drag_kind != AdjustHandle::None) + return; + const int cur = std::clamp(m_adjust_rotate_corner, 0, 3); + int best = cur; + double best_d = std::numeric_limits::max(); + for (int i = 0; i < 4; ++i) { + const double d = (mouse - f.corner[size_t(i)]).norm(); + if (d < best_d) { + best_d = d; + best = i; + } + } + if (best != cur && best_d < (mouse - f.corner[size_t(cur)]).norm() - ADJUST_ROT_SWAP_PX) + m_adjust_rotate_corner = best; +} + GLGizmoTextureDisplacement::AdjustHandle GLGizmoTextureDisplacement::adjust_pick(const Vec2d &mouse, const AdjustFrame &f, int &index) const { @@ -3672,8 +3756,11 @@ GLGizmoTextureDisplacement::adjust_pick(const Vec2d &mouse, const AdjustFrame &f // Outermost first. The rotate ring is the only handle off the frame, so it is the cheapest to // rule out; the corners and the arms come before the interior so that a grip stays grabbable // even when the frame is foreshortened to a sliver and every handle lands on the move area. - if (within(f.rotate_at, ADJUST_PICK_ROT_PX)) + // Only the ring that is drawn: a hidden handle that still takes clicks is worse than no handle. + if (within(f.rotate_at[size_t(std::clamp(f.rotate_shown, 0, 3))], ADJUST_PICK_ROT_PX)) { + index = f.rotate_shown; return AdjustHandle::Rotate; + } for (int i = 0; i < 4; ++i) if (within(f.corner[size_t(i)], ADJUST_PICK_GRIP_PX)) { index = i; @@ -3713,13 +3800,15 @@ bool GLGizmoTextureDisplacement::adjust_planar_under(const Vec2d &mouse, Vec2f & return false; const Camera &camera = wxGetApp().plater()->get_camera(); Vec3d world_hit; - if (!ray_plane_hit(camera, mouse, trafo, base, m_adjust_anchor_normal, world_hit)) + Vec3f anchor_pos = m_adjust_anchor_pos, anchor_n = m_adjust_anchor_normal; + adjust_anchor_in_frame(anchor_pos, anchor_n); + if (!ray_plane_hit(camera, mouse, trafo, base, anchor_n, world_hit)) return false; const Vec3f local = (trafo.inverse() * world_hit).cast(); // project_planar() is absolute, and everything here is relative to the anchor, so the base's own // planar coordinate is the origin. Taking it from the very point the frame is built on is what // keeps the hit, the frame and the offset arithmetic in one coordinate system. - planar = project_planar(local, m_adjust_anchor_normal) - project_planar(base, m_adjust_anchor_normal); + planar = project_planar(local, anchor_n) - project_planar(base, anchor_n); return true; } @@ -3741,7 +3830,13 @@ void GLGizmoTextureDisplacement::render_adjust_texture_gizmo() const ImU32 held = dark ? IM_COL32(128, 203, 196, 255) : IM_COL32(0, 103, 91, 255); const ImU32 structc = dark ? IM_COL32(182, 182, 182, 255) : IM_COL32(148, 148, 148, 255); const ImU32 dimc = dark ? IM_COL32(182, 182, 182, 115) : IM_COL32(148, 148, 148, 128); - const ImU32 halo = dark ? IM_COL32(0, 0, 0, 133) : IM_COL32(0, 0, 0, 82); + // Two casings, not one. A dark halo alone disappears against a dark backdrop, and a photographic + // texture gives you both: the near-black of a bird's beak sits right next to bright green. A pale + // ring outside the dark one means that whichever the backdrop, one of the two separates the mark + // from it. The pale one is kept faint so that over the plain grey of an uncoloured preview it + // reads as a soft edge rather than as a white outline. + const ImU32 halo = IM_COL32(0, 0, 0, 170); + const ImU32 casing = IM_COL32(255, 255, 255, 112); const ImU32 fill = dark ? IM_COL32(38, 166, 154, 31) : IM_COL32(0, 150, 136, 20); const ImU32 fill_hot = dark ? IM_COL32(38, 166, 154, 51) : IM_COL32(0, 150, 136, 41); const ImU32 handle = dark ? IM_COL32(45, 45, 49, 255) : IM_COL32(255, 255, 255, 255); @@ -3769,7 +3864,8 @@ void GLGizmoTextureDisplacement::render_adjust_texture_gizmo() // painted one alike, and it is why this is drawn through ImGui rather than the flat shader. const auto stroke = [&](const ImVec2 *pts, int n, bool closed, ImU32 col, float w) { const ImDrawFlags fl = closed ? ImDrawFlags_Closed : ImDrawFlags(0); - dl->AddPolyline(pts, n, halo, fl, w + 2.4f); + dl->AddPolyline(pts, n, casing, fl, w + ADJUST_CASING_W_PX); + dl->AddPolyline(pts, n, halo, fl, w + ADJUST_HALO_W_PX); dl->AddPolyline(pts, n, col, fl, w); }; const auto dashed = [&](const Vec2d &a, const Vec2d &b, ImU32 col, double dash, double gap) { @@ -3875,8 +3971,10 @@ void GLGizmoTextureDisplacement::render_adjust_texture_gizmo() // A capsule lying just outside its edge, parallel to it: a bar across the axis it resizes, // which is the usual way of saying "this side moves" and leaves the corners to mean both. const ImVec2 bar[2] = { P(f.bar_a[size_t(i)]), P(f.bar_b[size_t(i)]) }; - dl->AddLine(bar[0], bar[1], halo, (live ? 5.4f : 4.2f) + 2.4f); - dl->AddLine(bar[0], bar[1], col, live ? 5.4f : 4.2f); + const float bw = live ? 5.4f : 4.2f; + dl->AddLine(bar[0], bar[1], casing, bw + ADJUST_CASING_W_PX); + dl->AddLine(bar[0], bar[1], halo, bw + ADJUST_HALO_W_PX); + dl->AddLine(bar[0], bar[1], col, bw); // A tick from the bar back to its edge while it is live, so which edge is moving is not left // to be inferred from a bar floating beside the frame. if (live) { @@ -3896,8 +3994,11 @@ void GLGizmoTextureDisplacement::render_adjust_texture_gizmo() for (int c = -1; c <= 1; c += 2) { const Vec2d p = f.center + eu * (double(c) * 2.9 * ADJUST_UI_SCALE) + ev * (double(r) * 5.4 * ADJUST_UI_SCALE); - dl->AddCircleFilled(P(p), 2.6f * S, halo, 10); - dl->AddCircleFilled(P(p), 1.5f * S, col, 10); + // Half the casing's width on each side, as for a stroke, so a dot and a line look + // like they belong to the same control. + dl->AddCircleFilled(P(p), 1.5f * S + 0.5f * ADJUST_CASING_W_PX, casing, 12); + dl->AddCircleFilled(P(p), 1.5f * S + 0.5f * ADJUST_HALO_W_PX, halo, 12); + dl->AddCircleFilled(P(p), 1.5f * S, col, 12); } } @@ -3912,16 +4013,18 @@ void GLGizmoTextureDisplacement::render_adjust_texture_gizmo() stroke(sq, 4, true, live ? act_col : frame_col, 1.6f); } - // ---- rotate handle ------------------------------------------------------------------------- + // ---- rotate rings, one off each corner ------------------------------------------------------- { + const int i = std::clamp(f.rotate_shown, 0, 3); const bool live = act == AdjustHandle::Rotate; const ImU32 col = live ? act_col : rest_col; - const ImVec2 stem[2] = { P(f.corner[0]), P(f.rotate_at) }; + const ImVec2 stem[2] = { P(f.corner[size_t(i)]), P(f.rotate_at[size_t(i)]) }; stroke(stem, 2, false, col, live ? 1.8f : 1.6f); - const ImVec2 at = P(f.rotate_at); - dl->AddCircleFilled(at, float(ADJUST_ROT_R_PX) + 1.2f * S, halo, 20); - dl->AddCircleFilled(at, float(ADJUST_ROT_R_PX), live ? act_col : handle, 20); - dl->AddCircle(at, float(ADJUST_ROT_R_PX), live ? act_col : frame_col, 20, 1.6f); + const ImVec2 at = P(f.rotate_at[size_t(i)]); + dl->AddCircleFilled(at, float(ADJUST_ROT_R_PX) + 0.5f * ADJUST_CASING_W_PX, casing, 24); + dl->AddCircleFilled(at, float(ADJUST_ROT_R_PX) + 0.5f * ADJUST_HALO_W_PX, halo, 24); + dl->AddCircleFilled(at, float(ADJUST_ROT_R_PX), live ? act_col : handle, 24); + dl->AddCircle(at, float(ADJUST_ROT_R_PX), live ? act_col : frame_col, 24, 1.6f); // The same curved arrow Orca's rotate gizmo uses, so the handle says what it does without a // tooltip: a part ring with an arrowhead on its leading end. const ImU32 gcol = live ? handle : rest_col; @@ -4133,9 +4236,14 @@ bool GLGizmoTextureDisplacement::on_mouse_adjust_texture(const wxMouseEvent &mou return true; } - const AdjustFrame f = adjust_frame(); - int idx = -1; - const AdjustHandle k = adjust_pick(mouse, f, idx); + AdjustFrame f = adjust_frame(); + // Before the pick, so the ring about to be tested is the one that will be drawn. The frame is + // only re-pointed at the new corner rather than rebuilt: everything else in it is unaffected, + // and building one projects a dozen points through the camera. + update_rotate_corner(f, mouse); + f.rotate_shown = std::clamp(m_adjust_rotate_corner, 0, 3); + int idx = -1; + const AdjustHandle k = adjust_pick(mouse, f, idx); if (mouse_event.LeftDown()) { if (k == AdjustHandle::None) @@ -7835,10 +7943,17 @@ void GLGizmoTextureDisplacement::on_render_input_window(float x, float y, float ImGui::SameLine(0.f, gap_s); if (icon_toggle(843, tile_split ? "lock_open.svg" : "lock_closed.svg", !tile_split, icon_sm, _L("Square tile"), - tile_split ? _L("Width and height are set separately. Click to lock the tile " - "square again, taking the height from the width.") : - _L("The tile is square: one size sets both axes. Click to unlock " - "and set the height on its own."))) { + tile_split ? + _L("Width and height are set separately, so one copy of the texture can be " + "wider than it is tall - which is what a woodgrain or a brushed finish " + "wants. Click to lock the tile square again, taking the height from the " + "width.\n\nThe edge handles on the model set the same two numbers, and " + "dragging one back through the middle mirrors the texture on that axis.") : + _L("The tile is square: one size sets both axes, which is what almost every " + "texture wants. Click to unlock and set the height on its own.\n\nThe " + "edge handles on the model set the same two numbers, and dragging one " + "back through the middle mirrors the texture on that axis."), + { { "tile_lock.gif", tile_split ? _L("Separate") : _L("Square") } })) { // Unlocking seeds v from u, so the lock on its own never changes what is baked. layer.tiling_scale_v = tile_split ? -1.f : layer.tiling_scale; m_preview_params_dirty = true; @@ -8705,6 +8820,13 @@ void GLGizmoTextureDisplacement::on_render_input_window(float x, float y, float // only rebuilds on release, which made the subdivide wireframe look like it ignored those edits - so // rebuild it live here (during the drag), the same cadence its own sliders use. Cheap: it is bounded by // the painted region. + // This panel is drawn *after* the 3D view in the same frame, so an edit made on it was already + // missed by this frame's render: the placement gizmo, which is drawn in this ImGui frame, shows + // the new tile while the preview behind it still shows the old one. Nothing would correct that + // until some other event provoked a redraw, which is why nudging the mouse appeared to fix it. + // One more frame is all it takes, and the request stops as soon as the edit has been taken up. + if (m_preview_params_dirty) + m_parent.set_as_dirty(); if (m_preview_params_dirty && m_subdivide_editing && m_subdivide_adaptive && m_subdivide_feature) rebuild_subdivide_preview(); if (m_preview_params_dirty && (m_auto_update || !ImGui::IsMouseDown(ImGuiMouseButton_Left))) { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoTextureDisplacement.hpp b/src/slic3r/GUI/Gizmos/GLGizmoTextureDisplacement.hpp index 7f02a872b5..ec03f5d5d9 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoTextureDisplacement.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoTextureDisplacement.hpp @@ -550,7 +550,12 @@ private: std::array arm_base{}; std::array arm_tip{}; std::array arm_dir{}; // unit, pointing outward from the centre - Vec2d rotate_at = Vec2d::Zero(); + // A ring is placed off every corner, but only one is drawn and only that one can be picked: + // four marks for a single operation is clutter, and whichever corner the cursor is near is + // the one worth offering. `rotate_shown` says which, and see update_rotate_corner() for why + // it does not simply track the nearest. + std::array rotate_at{}; + int rotate_shown = 0; // The tile projects to less than ADJUST_MIN_TILE_PX across, so the frame was drawn at that // floor instead. It is dashed to say so, and the readout still gives the true millimetres. bool clamped = false; @@ -564,6 +569,13 @@ private: }; bool update_adjust_anchor(); // recomputes m_adjust_anchor_pos/normal; false if nothing painted + // The selected instance's volume-to-world transform, which the bake frame is derived from. + bool adjust_volume_to_world(Transform3d &out) const; + // The anchor, carried from mesh-local into the bake frame. Converted on every use rather than + // stored converted: the object can be moved, rotated or scaled while this mode is open, and a + // stored copy would quietly describe the shape it used to be. The expensive part - finding the + // paint patch's centroid - stays cached in the local members. + bool adjust_anchor_in_frame(Vec3f &pos, Vec3f &normal) const; // Drops every scrap of live gizmo state. Called from each of the several ways out of the mode - // the panel's toggle, collapsing the card, switching to seam marking, closing the gizmo - so a // stale hover highlight or a half-finished drag cannot survive into the next time it is opened. @@ -575,6 +587,10 @@ private: // Which handle is under `mouse`, with `index` set to the arm or corner it belongs to. Tested // outermost first; see the hit-area board of the design for the order and the radii. AdjustHandle adjust_pick(const Vec2d &mouse, const AdjustFrame &f, int &index) const; + // Chooses which corner carries the rotate ring. The nearest to the cursor, but it only moves once + // the newcomer is clearly nearer, because without that margin the ring flits between two corners + // every time the cursor wanders along the line equidistant from both. Never moves during a drag. + void update_rotate_corner(const AdjustFrame &f, const Vec2d &mouse); // Where the tile's centre sits, in planar mm relative to the anchor, for a layer's placement. // Not the patch centroid: the gizmo *is* the texture's placement, so it has to travel as the @@ -605,7 +621,7 @@ private: // obvious whether the next stroke adds paint (default) or erases it (Shift). Uses ImGui's // foreground draw list, so it must be called from inside the gizmo's ImGui frame. void render_paint_cursor_hint(); - // Mesh-local tangent-plane basis at m_adjust_anchor_normal: box_projection_axes(), so dragging + // Bake-frame tangent-plane basis at m_adjust_anchor_normal: box_projection_axes(), so dragging // on-canvas maps consistently onto offset whichever face the anchor is on. void adjust_tangent_basis(Vec3f &u_axis, Vec3f &v_axis) const; @@ -1197,12 +1213,21 @@ private: // See the "Adjust Texture" block of private methods above. bool m_adjust_texture_mode = false; bool m_adjust_anchor_valid = false; - Vec3f m_adjust_anchor_pos = Vec3f::Zero(); // mesh-local - Vec3f m_adjust_anchor_normal = Vec3f::UnitZ(); // mesh-local + // Mesh-local, as compute_layer_paint_anchor() produces them. Everything else about the gizmo + // works in the bake frame - world orientation and scale, origin at the volume's own, which is + // where the texture is projected (texture_displacement_bake_frame()) - so these go through + // adjust_anchor_in_frame() at the point of use. A tile is so many *printed* millimetres whatever + // the instance's scale, which is why measuring the gizmo in mesh-local millimetres made its tile + // differ from the rendered one by exactly that scale. + Vec3f m_adjust_anchor_pos = Vec3f::Zero(); + Vec3f m_adjust_anchor_normal = Vec3f::UnitZ(); // What the cursor is over, and what is being dragged. `index` picks the arm or the corner // (0..3, in AdjustFrame's order); it is -1 for Move and Rotate, which have only one of each. // Only ever one of each is set, so two handles can never both look live. + // Which corner currently carries the rotate ring. Persists between frames, which is what gives + // update_rotate_corner() something to apply its margin against. + int m_adjust_rotate_corner = 0; AdjustHandle m_adjust_hover_kind = AdjustHandle::None; int m_adjust_hover_index = -1; AdjustHandle m_adjust_drag_kind = AdjustHandle::None;