Files
test/source
Sean Kim 99c55bdbfb Sculpt: Partial refactor of boundary brush
Part of #118145

This commit tackles splitting up the cached, per element data that is
calculated prior to the first stroke of the boundary brush occuring. The
main entry point is the `data_init` function which handles the following
rough steps:

* Find the closest boundary vert to the current position.
* Check to see if the selected boundary is valid.
* Find all boundary vertices to affect with this task.
* For all vertices near each of the boundary vertices, populate various
  information to be used when actually performing the deformation into
  an array that is sized to the total number of elements in the backing
  data structure.

The result at the end of this is the `SculptBoundary` struct which has
remained unchanged and is populated for each of the symmetry passes.
Because the current algorithm is single threaded, this commit opts to
avoid making any major changes to this structure, as improving this
performance will likely require reevaluating the problem from the base
needs of this brush.

For each of the preceding four rough areas of computation, the methods
have been split into separate implementations per PBVH type to remove
most usage of `SculptSession` and `PBVHVertRef`.

Additionally, the method which is used to display the targeted boundary
and the pivot data has been updated as well to use this same code path.

Pull Request: https://projects.blender.org/blender/blender/pulls/125525
2024-07-30 00:05:14 +02:00
..