diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-06-10 00:21:55 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2017-06-10 00:21:55 +0300 |
commit | a17bb772a04fd34b6a2e03bf2dfde29aa20ec930 (patch) | |
tree | 152473de5edeb9b5a156a31ffe504d34ed18161f /source/blender/draw/modes/object_mode.c | |
parent | 85990343f631e78ef62980f20a372907ce344e2f (diff) |
Probe: Add object mode volume visualisation
Diffstat (limited to 'source/blender/draw/modes/object_mode.c')
-rw-r--r-- | source/blender/draw/modes/object_mode.c | 28 |
1 files 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]); |