Fix T37387 VIEW3D_OT_view_selected in sculpt mode zooms far from

sculpted object if last sculpt stroke ends outside the mesh.

Code here used the last true location which is invalid in that case,
just reuse the average stroke location instead.
This commit is contained in:
Antonis Ryakiotakis 2013-12-19 05:09:42 +02:00
parent 58ae499fc1
commit e915ecdfc4
Notes: blender-bot 2023-02-14 11:38:02 +01:00
Referenced by issue #37387, I seem to have tracked down the cause for the 'disappearing models' in sculpt mode
2 changed files with 1 additions and 7 deletions

View File

@ -45,7 +45,6 @@ void ED_operatortypes_sculpt(void);
void sculpt_get_redraw_planes(float planes[4][4], struct ARegion *ar,
struct RegionView3D *rv3d, struct Object *ob);
void ED_sculpt_force_update(struct bContext *C);
float *ED_sculpt_get_last_stroke(struct Object *ob);
void ED_sculpt_get_average_stroke(struct Object *ob, float stroke[3]);
int ED_sculpt_minmax(struct bContext *C, float min[3], float max[3]);
int ED_sculpt_mask_layers_ensure(struct Object *ob,

View File

@ -117,11 +117,6 @@ void ED_sculpt_force_update(bContext *C)
}
}
float *ED_sculpt_get_last_stroke(struct Object *ob)
{
return (ob && ob->sculpt && ob->sculpt->last_stroke_valid) ? ob->sculpt->last_stroke : NULL;
}
void ED_sculpt_get_average_stroke(Object *ob, float stroke[3])
{
if (ob->sculpt->last_stroke_valid && ob->sculpt->average_stroke_counter > 0) {
@ -4575,7 +4570,7 @@ static void sculpt_stroke_done(const bContext *C, struct PaintStroke *UNUSED(str
/* update last stroke position */
ob->sculpt->last_stroke_valid = 1;
copy_v3_v3(ob->sculpt->last_stroke, ss->cache->true_location);
ED_sculpt_get_average_stroke(ob, ob->sculpt->last_stroke);
mul_m4_v3(ob->obmat, ob->sculpt->last_stroke);
sculpt_cache_free(ss->cache);