[Bf-blender-cvs] [0b3ff01ba4b] functions: bring back some emitter settings

Jacques Lucke noreply at git.blender.org
Mon Jul 15 18:12:36 CEST 2019


Commit: 0b3ff01ba4b0e6dbf5c7781cc5aa0442f8090d21
Author: Jacques Lucke
Date:   Mon Jul 15 15:23:20 2019 +0200
Branches: functions
https://developer.blender.org/rB0b3ff01ba4b0e6dbf5c7781cc5aa0442f8090d21

bring back some emitter settings

===================================================================

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 be901497cf6..919c5eaf636 100644
--- a/source/blender/simulations/bparticles/emitters.cpp
+++ b/source/blender/simulations/bparticles/emitters.cpp
@@ -102,9 +102,9 @@ void SurfaceEmitter::emit(EmitterInterface &interface)
     float3 emitter_velocity = (point_at_birth - point_before_birth) / epsilon;
 
     positions.append(point_at_birth);
-    velocities.append(normal_velocity + emitter_velocity);
+    velocities.append(normal_velocity * m_normal_velocity + emitter_velocity * m_emitter_velocity);
     birth_times.append(interface.time_span().interpolate(birth_moment));
-    sizes.append(0.1f);
+    sizes.append(m_size);
   }
 
   auto target = interface.particle_allocator().request(m_particle_type_name, positions.size());
diff --git a/source/blender/simulations/bparticles/emitters.hpp b/source/blender/simulations/bparticles/emitters.hpp
index a88cb2efa62..f95d1c55407 100644
--- a/source/blender/simulations/bparticles/emitters.hpp
+++ b/source/blender/simulations/bparticles/emitters.hpp
@@ -14,9 +14,13 @@ using FN::TupleCallBody;
 struct SurfaceEmitter : public Emitter {
   std::string m_particle_type_name;
   std::unique_ptr<Action> m_action;
+
   Object *m_object;
   float4x4 m_transform_start, m_transform_end;
   float m_rate;
+  float m_normal_velocity;
+  float m_emitter_velocity;
+  float m_size;
 
   void emit(EmitterInterface &interface) override;
 };
diff --git a/source/blender/simulations/bparticles/inserters.cpp b/source/blender/simulations/bparticles/inserters.cpp
index 294aab2013d..fa4f59aeec0 100644
--- a/source/blender/simulations/bparticles/inserters.cpp
+++ b/source/blender/simulations/bparticles/inserters.cpp
@@ -236,11 +236,17 @@ static std::unique_ptr<Emitter> BUILD_EMITTER_mesh_surface(BuildContext &ctx,
   auto emitter = std::unique_ptr<SurfaceEmitter>(new SurfaceEmitter());
   emitter->m_action = build_action(ctx, {bSocketList(bnode->outputs).get(0), bnode});
   emitter->m_particle_type_name = particle_type_name.to_std_string();
+
   emitter->m_object = fn_out.get<Object *>(0);
   emitter->m_rate = fn_out.get<float>(1);
+  emitter->m_normal_velocity = fn_out.get<float>(2);
+  emitter->m_emitter_velocity = fn_out.get<float>(3);
+  emitter->m_size = fn_out.get<float>(4);
+
   emitter->m_transform_end = emitter->m_object->obmat;
   emitter->m_transform_start = ctx.world_state.get_last_and_store_current(
       bnode->name, emitter->m_transform_end);
+
   return emitter;
 }



More information about the Bf-blender-cvs mailing list