diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2018-08-23 22:26:44 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2018-08-23 22:40:43 +0300 |
commit | a6b65c75cd2d08afb0bc9543e0528ac583b720a3 (patch) | |
tree | c9750adafa6576a26cd96525e8852041e9ff176d /source/blender/blenkernel/intern/mball.c | |
parent | 8ec74106f83f02d170facb75868783ccae5a222f (diff) |
Fix T56360: metaball viewport checkbox crash.
Do same as for other geometry types to compute bbox, instead of blindly
returning NULL `ob->bb`...
Diffstat (limited to 'source/blender/blenkernel/intern/mball.c')
-rw-r--r-- | source/blender/blenkernel/intern/mball.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/mball.c b/source/blender/blenkernel/intern/mball.c index bc2d7ed79d5..5e4f5614370 100644 --- a/source/blender/blenkernel/intern/mball.c +++ b/source/blender/blenkernel/intern/mball.c @@ -238,6 +238,23 @@ void BKE_mball_texspace_calc(Object *ob) bb->flag &= ~BOUNDBOX_DIRTY; } +/** Return or compute bbox for given metaball object. */ +BoundBox *BKE_mball_boundbox_get(Object *ob) +{ + BLI_assert(ob->type == OB_MBALL); + + if (ob->bb != NULL && (ob->bb->flag & BOUNDBOX_DIRTY) == 0) { + return ob->bb; + } + + /* This should always only be called with evaluated objects, but currently RNA is a problem here... */ + if (ob->runtime.curve_cache != NULL) { + BKE_mball_texspace_calc(ob); + } + + return ob->bb; +} + float *BKE_mball_make_orco(Object *ob, ListBase *dispbase) { BoundBox *bb; |