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:
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
|
@ -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],
|
||||
|
|
Loading…
Reference in New Issue