Fix for [#34654] Cycles hair particle system modifier obeys viewport visibility as...
authorThomas Dinges <blender@dingto.org>
Sat, 16 Mar 2013 08:49:39 +0000 (08:49 +0000)
committerThomas Dinges <blender@dingto.org>
Sat, 16 Mar 2013 08:49:39 +0000 (08:49 +0000)
* Now Show Render and Show Viewport flags work independently and correct.

intern/cycles/blender/blender_curves.cpp

index 5b8d495084dec499de8ae6ec813495340103da39..768a5a6ee3ae7b8deac069981386dacc9b781c64 100644 (file)
@@ -166,7 +166,7 @@ bool ObtainCacheParticleData(Mesh *mesh, BL::Mesh *b_mesh, BL::Object *b_ob, Par
 
        BL::Object::modifiers_iterator b_mod;
        for(b_ob->modifiers.begin(b_mod); b_mod != b_ob->modifiers.end(); ++b_mod) {
-               if((b_mod->type() == b_mod->type_PARTICLE_SYSTEM) && (b_mod->show_viewport()) && (b_mod->show_render())) {
+               if((b_mod->type() == b_mod->type_PARTICLE_SYSTEM) && (background ? b_mod->show_render() : b_mod->show_viewport())) {
                        BL::ParticleSystemModifier psmd((const PointerRNA)b_mod->ptr);
 
                        BL::ParticleSystem b_psys((const PointerRNA)psmd.particle_system().ptr);
@@ -257,7 +257,7 @@ bool ObtainCacheParticleUV(Mesh *mesh, BL::Mesh *b_mesh, BL::Object *b_ob, Parti
 
        BL::Object::modifiers_iterator b_mod;
        for(b_ob->modifiers.begin(b_mod); b_mod != b_ob->modifiers.end(); ++b_mod) {
-               if ((b_mod->type() == b_mod->type_PARTICLE_SYSTEM) && (b_mod->show_viewport()) && (b_mod->show_render())) {
+               if((b_mod->type() == b_mod->type_PARTICLE_SYSTEM) && (background ? b_mod->show_render() : b_mod->show_viewport())) {
                        BL::ParticleSystemModifier psmd((const PointerRNA)b_mod->ptr);
 
                        BL::ParticleSystem b_psys((const PointerRNA)psmd.particle_system().ptr);
@@ -327,7 +327,7 @@ bool ObtainCacheParticleVcol(Mesh *mesh, BL::Mesh *b_mesh, BL::Object *b_ob, Par
 
        BL::Object::modifiers_iterator b_mod;
        for(b_ob->modifiers.begin(b_mod); b_mod != b_ob->modifiers.end(); ++b_mod) {
-               if ((b_mod->type() == b_mod->type_PARTICLE_SYSTEM) && (b_mod->show_viewport()) && (b_mod->show_render())) {
+               if((b_mod->type() == b_mod->type_PARTICLE_SYSTEM) && (background ? b_mod->show_render() : b_mod->show_viewport())) {
                        BL::ParticleSystemModifier psmd((const PointerRNA)b_mod->ptr);
 
                        BL::ParticleSystem b_psys((const PointerRNA)psmd.particle_system().ptr);
@@ -383,7 +383,7 @@ static void set_resolution(Mesh *mesh, BL::Mesh *b_mesh, BL::Object *b_ob, BL::S
 {
        BL::Object::modifiers_iterator b_mod;
        for(b_ob->modifiers.begin(b_mod); b_mod != b_ob->modifiers.end(); ++b_mod) {
-               if ((b_mod->type() == b_mod->type_PARTICLE_SYSTEM) && (b_mod->show_viewport()) && (b_mod->show_render())) {
+               if ((b_mod->type() == b_mod->type_PARTICLE_SYSTEM) && ((b_mod->show_viewport()) || (b_mod->show_render()))) {
                        BL::ParticleSystemModifier psmd((const PointerRNA)b_mod->ptr);
                        BL::ParticleSystem b_psys((const PointerRNA)psmd.particle_system().ptr);
                        b_psys.set_resolution(*scene, *b_ob, (render)? 2: 1);