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
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs