Fix #139466: Grease Pencil: Face Project / Face Nearest snapping broken

Reported for Grease Pencil, but also true for Curves.

This was simply missing the call to
`transform_snap_project_individual_apply`.

Even though we cannot snap **onto** Grease Pencil / Curves faces, we can
snap Grease Pencil / Curves onto other suitable face geometry.

So to resolve, just add the calls to
`transform_snap_project_individual_apply` in both
`recalcData_grease_pencil` and `recalcData_curves`

Pull Request: https://projects.blender.org/blender/blender/pulls/139489
This commit is contained in:
Philipp Oeser
2025-05-28 08:32:00 +02:00
committed by Philipp Oeser
parent bdf1c2c583
commit 795f589989
2 changed files with 10 additions and 0 deletions

View File

@@ -28,6 +28,7 @@
#include "transform.hh"
#include "transform_convert.hh"
#include "transform_snap.hh"
/* -------------------------------------------------------------------- */
/** \name Curve/Surfaces Transform Creation
@@ -351,6 +352,10 @@ static void calculate_aligned_handles(const TransCustomData &custom_data,
static void recalcData_curves(TransInfo *t)
{
if (t->state != TRANS_CANCEL) {
transform_snap_project_individual_apply(t);
}
const Span<TransDataContainer> trans_data_contrainers(t->data_container, t->data_container_len);
for (const TransDataContainer &tc : trans_data_contrainers) {
Curves *curves_id = static_cast<Curves *>(tc.obedit->data);

View File

@@ -19,6 +19,7 @@
#include "transform.hh"
#include "transform_convert.hh"
#include "transform_snap.hh"
/* -------------------------------------------------------------------- */
/** \name Grease Pencil Transform Creation
@@ -232,6 +233,10 @@ static void createTransGreasePencilVerts(bContext *C, TransInfo *t)
static void recalcData_grease_pencil(TransInfo *t)
{
if (t->state != TRANS_CANCEL) {
transform_snap_project_individual_apply(t);
}
bContext *C = t->context;
Scene *scene = CTX_data_scene(C);