d0d4bf20682cf5abeac054b07e182cba29b98a63
While selecting and transforming multiple grease pencil frames in the timeline, frames would sometimes disappear. This happened when the transformation overlapped, meaning when a frame replaced another moving one in the timeline. The frames transformation was happening in place and in series, and thus leaded to the initial position of the frame to be removed, even if it was occupied by a freshly transformed framed. This commit fixes the issue by storing two separate maps in the transform data structure instead of one, one map to store the static data, meaning the frames that are not affected by the transform, and another one for the moving data, meaning the frames that are affected by the transform. Some changes were made to account for the potential duplication of the frames (move + duplicate): * the map of the duplicated frames was renamed to a more explicit name, * when a duplication occurs, the original frame is stored in the static frames map, and the duplicate is stored in the moving frames map, * thus the check for the duplicate flag of the operator is now done at the init step of the transform, instead of the update step, so that the maps are initialized accordingly. Co-authored-by: Lukas Tönne <lukas@blender.org> Pull Request: https://projects.blender.org/blender/blender/pulls/119337
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
