From a17bb772a04fd34b6a2e03bf2dfde29aa20ec930 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Fri, 9 Jun 2017 23:21:55 +0200 Subject: [PATCH] Probe: Add object mode volume visualisation --- source/blender/draw/modes/object_mode.c | 28 +++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c index ae144272dc4..0f91ae27903 100644 --- a/source/blender/draw/modes/object_mode.c +++ b/source/blender/draw/modes/object_mode.c @@ -1418,8 +1418,32 @@ static void DRW_shgroup_probe(OBJECT_StorageList *stl, Object *ob, SceneLayer *s DRW_shgroup_call_dynamic_add(stl->g_data->probe, ob->obmat[3], color); - DRW_shgroup_call_dynamic_add(stl->g_data->sphere, color, &prb->distinf, ob->obmat); - DRW_shgroup_call_dynamic_add(stl->g_data->sphere, color, &prb->distfalloff, ob->obmat); + if ((prb->flag & PRB_SHOW_INFLUENCE) != 0) { + if (prb->attenuation_type == PROBE_BOX) { + DRW_shgroup_call_dynamic_add(stl->g_data->cube, color, &prb->distinf, ob->obmat); + DRW_shgroup_call_dynamic_add(stl->g_data->cube, color, &prb->distfalloff, ob->obmat); + } + else { + DRW_shgroup_call_dynamic_add(stl->g_data->sphere, color, &prb->distinf, ob->obmat); + DRW_shgroup_call_dynamic_add(stl->g_data->sphere, color, &prb->distfalloff, ob->obmat); + } + } + + if ((prb->flag & PRB_SHOW_PARALLAX) != 0) { + if ((prb->flag & PRB_CUSTOM_PARALLAX) != 0) { + float (*obmat)[4]; + + /* TODO object parallax */ + obmat = ob->obmat; + + if (prb->parallax_type == PROBE_BOX) { + DRW_shgroup_call_dynamic_add(stl->g_data->cube, color, &prb->distpar, obmat); + } + else { + DRW_shgroup_call_dynamic_add(stl->g_data->sphere, color, &prb->distpar, obmat); + } + } + } DRW_shgroup_call_dynamic_add(stl->g_data->lamp_center_group, ob->obmat[3]);