Fix T88998: GPencil not projecting to the most front surface

It was projecting from the stroke position.

The behavior has changed in {rB5400be9ffee2}.
This commit is contained in:
Germano Cavalcante 2021-06-09 09:32:50 -03:00 committed by Jeroen Bakker
parent d97e586f58
commit 0cd6c1d502
Notes: blender-bot 2023-02-14 08:40:26 +01:00
Referenced by issue #88449, Blender LTS: Maintenance Task 2.93
Referenced by issue #88998, Grease Pencil Reproject Strokes is incorrectly placing the strokes on the Back Faces when canvas is intersecting the object
1 changed files with 6 additions and 2 deletions

View File

@ -1276,6 +1276,7 @@ void ED_gpencil_stroke_reproject(Depsgraph *depsgraph,
}
else {
/* Geometry - Snap to surfaces of visible geometry */
float ray_start[3];
float ray_normal[3];
/* magic value for initial depth copied from the default
* value of Python's Scene.ray_cast function
@ -1284,14 +1285,17 @@ void ED_gpencil_stroke_reproject(Depsgraph *depsgraph,
float location[3] = {0.0f, 0.0f, 0.0f};
float normal[3] = {0.0f, 0.0f, 0.0f};
ED_view3d_win_to_vector(region, xy, &ray_normal[0]);
BLI_assert(gps->flag & GP_STROKE_3DSPACE);
BLI_assert(gsc->area && gsc->area->spacetype == SPACE_VIEW3D);
const View3D *v3d = gsc->area->spacedata.first;
ED_view3d_win_to_ray_clipped(
depsgraph, region, v3d, xy, &ray_start[0], &ray_normal[0], true);
if (ED_transform_snap_object_project_ray(sctx,
depsgraph,
&(const struct SnapObjectParams){
.snap_select = SNAP_ALL,
},
&pt2.x,
&ray_start[0],
&ray_normal[0],
&depth,
&location[0],