mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-15 11:51:33 +00:00
Follows the first pass on the placement gizmo. Handles and hit radii are twice the size, and the minimum frame with them, so the corner zones cannot bury the move area on a small tile. Each edge carries a bar that sets one tile extent, so width and height can be set on the model rather than only in the panel. The four axis arrows stay, further out on the same rays, kept apart from the bars by distance. Dragging a width or height handle back through the tile's middle mirrors the texture on that axis instead of sticking at the minimum extent. The new mirror_u and mirror_v ride as a sign on the same division as the tile extents, in apply_uv_transform and in all four shaders, and the shaded shaders' normal gradient carries the sign too. The frame was centred on uv 0, which is a corner of the image, so it straddled the four tiles meeting there and rotation pivoted on that corner. It is now centred on uv (0.5, 0.5): the frame bounds one whole tile and rotating or scaling turns and resizes the image about its middle. A scale drag read the extents straight off the cursor, so grabbing a handle anywhere inside its hit radius jumped the tile by that much. The offset of the grab from the handle is now subtracted. The square-tile lock is an icon on the Tile size row instead of a text link, reusing lock_closed.svg and lock_open.svg.