2e9fc8ef2d6684c52b601787cba40a78c86f911b
Support segment mode in Grease Pencil v3 selection operators. This is a continuation of #109221. Segment selection works in multiple stages: 1. When enabled, the 2D evaluated lines for all visible curves are entered into a BVH tree. This tree is used to find intersections later on. All the visible drawings are in the tree, an `OffsetIndices` array is used to record ranges of BVH elements for each drawing. 2. Primary selection functions get alternative versions that produce an `IndexMask` instead of writing directly to selection attributes. This makes it possible to detect select actions on points that are already selected. Using a delta of selection attributes for this is not enough to detect such user actions (and inefficient). 3. In segment mode the `IndexMask` is extended to fully cover segment points (or exclude them when deselecting respectively). This first performs and intersection test using the BVH tree, then finds all point range with selected elements. 4. Finally the extended index mask is applied to selection attributes as usual. Pull Request: https://projects.blender.org/blender/blender/pulls/126027
…
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%
