diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-01-04 16:28:47 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-01-04 16:30:34 +0300 |
commit | 2c21e3e35f304afdc1a320fb8ccef91e0119dfc8 (patch) | |
tree | b30f0ac06de3b2d9d9362191defd6920cb9f70b9 /source/blender/blenkernel/intern/particle.c | |
parent | 1753177ad8acfabbcc74c3d8e20fa874f2b97167 (diff) |
Fix T60132: Convert hair particles to mesh
Needed to port operator to use evaluated particle system.
But also changed interface to always show Convert button when
draw type is set to Path (Hair particle system is forced to
be draws as path). This avoid rather expensive lookup on every
redraw, but will show Convert button for un-baked particle
emitter.
Probably, an acceptable compromise.
Diffstat (limited to 'source/blender/blenkernel/intern/particle.c')
-rw-r--r-- | source/blender/blenkernel/intern/particle.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index 7f3bae9d178..3b61c47cb43 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -282,6 +282,24 @@ ParticleSystem *psys_orig_get(ParticleSystem *psys) return psys->orig_psys; } +struct ParticleSystem *psys_eval_get(Depsgraph *depsgraph, + Object *object, + ParticleSystem *psys) +{ + Object *object_eval = DEG_get_evaluated_object(depsgraph, object); + if (object_eval == object) { + return psys; + } + ParticleSystem *psys_eval = object_eval->particlesystem.first; + while (psys_eval != NULL) { + if (psys_eval->orig_psys == psys) { + return psys_eval; + } + psys_eval = psys_eval->next; + } + return psys_eval; +} + static PTCacheEdit *psys_orig_edit_get(ParticleSystem *psys) { if (psys->orig_psys == NULL) { |