diff options
author | Chris Blackbourn <chrisbblend@gmail.com> | 2022-11-13 02:27:28 +0300 |
---|---|---|
committer | Chris Blackbourn <chrisbblend@gmail.com> | 2022-11-13 02:48:17 +0300 |
commit | 721fc9c1c95017d55785ea42e7ba473a0285b9ad (patch) | |
tree | 89d080fe16fddc3d63762c8ea61c47b746514da7 /release | |
parent | 533c396898c170a0e55993d7ce6af04ca6efce32 (diff) |
UV: implement copy and paste for uv
Implement a new topology-based copy and paste solution for UVs.
Usage notes:
* Open the UV Editor
* Use the selection tools to select a Quad joined to a Triangle joined to another Quad.
* From the menu, choose UV > UV Copy
* The UV co-ordinates for your quad<=>tri<=>quad are now stored internally
* Use the selection tools to select a different Quad joined to a Triangle joined to a Quad.
* (Optional) From the menu, choose UV > Split > Selection
* From the menu, choose UV > UV Paste
* The UV co-ordinates for the new selection will be moved to match the stored UVs.
Repeat selection / UV Paste steps as many times as desired.
For performance considerations, see https://en.wikipedia.org/wiki/Graph_isomorphism_problem
In theory, UV Copy and Paste should work with all UV selection modes.
Please report any problems.
A copy has been made of the Graph Isomorphism code from https://github.com/stefanoquer/graphISO
Copyright (c) 2019 Stefano Quer stefano.quer@polito.it GPL v3 or later.
Additional integration code Copyright (c) 2022 by Blender Foundation, GPL v2 or later.
Maniphest Tasks: T77911
Differential Revision: https://developer.blender.org/D16278
Diffstat (limited to 'release')
-rw-r--r-- | release/scripts/startup/bl_ui/space_image.py | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/release/scripts/startup/bl_ui/space_image.py b/release/scripts/startup/bl_ui/space_image.py index fcbd7bb423d..f4c64831b3e 100644 --- a/release/scripts/startup/bl_ui/space_image.py +++ b/release/scripts/startup/bl_ui/space_image.py @@ -440,6 +440,11 @@ class IMAGE_MT_uvs(Menu): layout.separator() + layout.operator("uv.copy") + layout.operator("uv.paste") + + layout.separator() + layout.menu("IMAGE_MT_uvs_showhide") layout.separator() |