mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-12 18:31:18 +00:00
A separate toolbar tool for the simple case of texture displacement: put a colour picture on the model with no relief at all. It is a thin wrapper, not a fork. GLGizmoImage subclasses GLGizmoTextureDisplacement and overrides one new protected virtual, image_mode(). Painting, the layer stack, the paint masks, the texture library, the previews and the bake are the same code reached the same way; a zero-depth bake refines the painted area and writes the per-triangle filament indices exactly as a relief bake does, it just displaces by nothing. In the base gizmo, image_mode() does three things: - apply_image_mode_presets() pins every layer to depth 0 and turns colour on wherever the image has any, alongside the existing Standard-mode presets. - The panel leaves out Depth, Midlevel, Invert, Edge fade and Blend, and the Standard/Pro switch, which is what keeps the mesh-preparation sections hidden. Bake is disabled when no image carries colour, since that bake would refine the mesh and produce nothing. - add_texture_layer() seeds a new layer from the first library texture that has colour, rather than the first one, because most of the shipped library is grayscale height maps. The two tools share one layer stack, so opening the Image tool on a volume whose layers carry relief flattens them. Only depth changes: the paint, the image, the tiling, the mapping and any relief already baked into the mesh are untouched. The toolbar icon follows Orca's menu-icon style: 16 px, 1 px #949494 frame, #009688 on the picture inside. The shortcut is registered but unbound: every single letter the Plater context can reach is already taken, and a default that shadows one of them is worse than none. docs/HLSD/keyboard-shortcuts.md now documents that an empty default chord is a supported choice. Measured with a probe built against this tree in the texture-bake harness: a depth-0 bake of a painted cube face leaves every output vertex within 7 nm of the original surface (tolerance 1 um) while colouring 17090 of 24226 output triangles across 3 filaments; the same scene at depth 0.4 mm moves vertices up to 0.216 mm.