Commit: ab6106149fcd16e96614b600ab8def2f89089eea Author: Jacques Lucke Date: Tue Jul 9 17:01:58 2019 +0200 Branches: functions https://developer.blender.org/rBab6106149fcd16e96614b600ab8def2f89089eea
move world state to mesh emitter =================================================================== M source/blender/simulations/bparticles/emitters.cpp M source/blender/simulations/bparticles/emitters.hpp M source/blender/simulations/bparticles/inserters.cpp =================================================================== diff --git a/source/blender/simulations/bparticles/emitters.cpp b/source/blender/simulations/bparticles/emitters.cpp index 212bb403e59..5231166fa13 100644 --- a/source/blender/simulations/bparticles/emitters.cpp +++ b/source/blender/simulations/bparticles/emitters.cpp @@ -1,5 +1,3 @@ -#include "emitters.hpp" - #include "DNA_mesh_types.h" #include "DNA_meshdata_types.h" #include "DNA_curve_types.h" @@ -10,6 +8,8 @@ #include "BLI_math_geom.h" +#include "emitters.hpp" + namespace BParticles { class PointEmitter : public Emitter { @@ -37,11 +37,15 @@ class SurfaceEmitter : public Emitter { std::string m_particle_type_name; SharedFunction m_compute_inputs_fn; TupleCallBody *m_compute_inputs_body; + WorldState &m_world_state; public: - SurfaceEmitter(StringRef particle_type_name, SharedFunction &compute_inputs) + SurfaceEmitter(StringRef particle_type_name, + SharedFunction &compute_inputs, + WorldState &world_state) : m_particle_type_name(particle_type_name.to_std_string()), - m_compute_inputs_fn(compute_inputs) + m_compute_inputs_fn(compute_inputs), + m_world_state(world_state) { m_compute_inputs_body = m_compute_inputs_fn->body<TupleCallBody>(); } @@ -71,7 +75,7 @@ class SurfaceEmitter : public Emitter { } Mesh *mesh = (Mesh *)object->data; - float4x4 transform_start = object->obmat; + float4x4 transform_start = m_world_state.update(object->id.name, object->obmat); float4x4 transform_end = object->obmat; float normal_factor = 1.0f; @@ -140,9 +144,11 @@ Emitter *EMITTER_point(StringRef particle_type_name, float3 point) return new PointEmitter(particle_type_name, point); } -Emitter *EMITTER_mesh_surface(StringRef particle_type_name, SharedFunction &compute_inputs_fn) +Emitter *EMITTER_mesh_surface(StringRef particle_type_name, + SharedFunction &compute_inputs_fn, + WorldState &world_state) { - return new SurfaceEmitter(particle_type_name, compute_inputs_fn); + return new SurfaceEmitter(particle_type_name, compute_inputs_fn, world_state); } } // namespace BParticles diff --git a/source/blender/simulations/bparticles/emitters.hpp b/source/blender/simulations/bparticles/emitters.hpp index 4f8aa9a34ce..a99a05b4179 100644 --- a/source/blender/simulations/bparticles/emitters.hpp +++ b/source/blender/simulations/bparticles/emitters.hpp @@ -1,19 +1,19 @@ #pragma once -#include "core.hpp" #include "FN_tuple_call.hpp" -struct Mesh; -struct Path; +#include "core.hpp" +#include "world_state.hpp" namespace BParticles { -using BLI::float4x4; using FN::SharedFunction; using FN::TupleCallBody; Emitter *EMITTER_point(StringRef particle_type_name, float3 point); -Emitter *EMITTER_mesh_surface(StringRef particle_type_name, SharedFunction &compute_inputs_fn); +Emitter *EMITTER_mesh_surface(StringRef particle_type_name, + SharedFunction &compute_inputs_fn, + WorldState &world_state); } // namespace BParticles diff --git a/source/blender/simulations/bparticles/inserters.cpp b/source/blender/simulations/bparticles/inserters.cpp index c3080490ddd..2e9f7a46c0e 100644 --- a/source/blender/simulations/bparticles/inserters.cpp +++ b/source/blender/simulations/bparticles/inserters.cpp @@ -220,7 +220,7 @@ static void INSERT_EMITTER_mesh_surface(ProcessNodeInterface &interface) interface.bnode()->name); bNode *type_node = linked.node; - Emitter *emitter = EMITTER_mesh_surface(type_node->name, fn); + Emitter *emitter = EMITTER_mesh_surface(type_node->name, fn, interface.world_state()); interface.step_description().m_emitters.append(emitter); } } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs