[Bf-blender-cvs] [ae346fb5790] functions: bring back old test setup

Jacques Lucke noreply at git.blender.org
Sun Jun 30 16:01:22 CEST 2019


Commit: ae346fb5790049363d7f7b2b9c4be7472a676ed7
Author: Jacques Lucke
Date:   Sun Jun 30 14:07:58 2019 +0200
Branches: functions
https://developer.blender.org/rBae346fb5790049363d7f7b2b9c4be7472a676ed7

bring back old test setup

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

M	source/blender/simulations/bparticles/c_wrapper.cpp
M	source/blender/simulations/bparticles/simulate.cpp

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

diff --git a/source/blender/simulations/bparticles/c_wrapper.cpp b/source/blender/simulations/bparticles/c_wrapper.cpp
index a8563b64f46..e84df89dff4 100644
--- a/source/blender/simulations/bparticles/c_wrapper.cpp
+++ b/source/blender/simulations/bparticles/c_wrapper.cpp
@@ -207,7 +207,7 @@ class ModifierStepDescription : public StepDescription {
 
   ArrayRef<uint> particle_type_ids() override
   {
-    return {0};
+    return {0, 1};
   }
 
   ParticleType &particle_type(uint type_id) override
@@ -225,44 +225,34 @@ void BParticles_simulate_modifier(NodeParticlesModifierData *npmd,
   ParticlesState &state = *unwrap(state_c);
   ModifierStepDescription description;
   description.m_duration = 1.0f / 24.0f;
-  description.m_emitters.append(EMITTER_emit_at_start());
 
   auto *type0 = new ModifierParticleType();
   description.m_types.add_new(0, type0);
-  type0->m_events.append(new EventActionTest(EVENT_age_reached(30.0f), ACTION_kill()));
-
-  // if (npmd->emitter_object) {
-  //   description.m_emitters.append(EMITTER_mesh_surface(
-  //       0, (Mesh *)npmd->emitter_object->data, npmd->emitter_object->obmat, npmd->control1));
-  // }
-  // BVHTreeFromMesh treedata = {0};
-  // if (npmd->collision_object) {
-  //   BKE_bvhtree_from_mesh_get(
-  //       &treedata, (Mesh *)npmd->collision_object->data, BVHTREE_FROM_LOOPTRI, 4);
-
-  //   EventActionTest *event_action = new EventActionTest();
-  //   event_action->m_event = EVENT_mesh_collection(&treedata, npmd->collision_object->obmat);
-  //   event_action->m_action = ACTION_explode();
-  //   type0->m_events.append(event_action);
-  // }
   type0->m_integrator = new EulerIntegrator();
   type0->m_integrator->m_forces.append(FORCE_directional({0, 0, -2}));
 
-  // auto *type1 = new ModifierParticleType();
-  // description.m_types.add_new(1, type1);
-  // {
-  //   EventActionTest *event_action = new EventActionTest();
-  //   event_action->m_event = EVENT_age_reached(0.3f);
-  //   event_action->m_action = ACTION_kill();
-  //   type1->m_events.append(event_action);
-  // }
-  // type1->m_integrator = new EulerIntegrator();
+  if (npmd->emitter_object) {
+    description.m_emitters.append(EMITTER_mesh_surface(
+        0, (Mesh *)npmd->emitter_object->data, npmd->emitter_object->obmat, npmd->control1));
+  }
+  BVHTreeFromMesh treedata = {0};
+  if (npmd->collision_object) {
+    BKE_bvhtree_from_mesh_get(
+        &treedata, (Mesh *)npmd->collision_object->data, BVHTREE_FROM_LOOPTRI, 4);
+    type0->m_events.append(new EventActionTest(
+        EVENT_mesh_collection(&treedata, npmd->collision_object->obmat), ACTION_explode()));
+  }
+
+  auto *type1 = new ModifierParticleType();
+  description.m_types.add_new(1, type1);
+  type1->m_integrator = new EulerIntegrator();
+  type1->m_events.append(new EventActionTest(EVENT_age_reached(0.3f), ACTION_kill()));
 
   simulate_step(state, description);
 
-  // if (npmd->collision_object) {
-  //   free_bvhtree_from_mesh(&treedata);
-  // }
+  if (npmd->collision_object) {
+    free_bvhtree_from_mesh(&treedata);
+  }
 
   auto &containers = state.particle_containers();
   for (auto item : containers.items()) {
diff --git a/source/blender/simulations/bparticles/simulate.cpp b/source/blender/simulations/bparticles/simulate.cpp
index 2f2fd8c7a3e..6188d17a51a 100644
--- a/source/blender/simulations/bparticles/simulate.cpp
+++ b/source/blender/simulations/bparticles/simulate.cpp
@@ -379,7 +379,7 @@ BLI_NOINLINE static void apply_remaining_offsets(ParticleSet particles,
     auto offsets = attribute_offsets.get_float3(attribute_index);
 
     if (particles.indices_are_trivial()) {
-      add_float3_arrays(values, offsets);
+      add_float3_arrays(values.take_front(particles.size()), offsets);
     }
     else {
       for (uint pindex : particles.indices()) {



More information about the Bf-blender-cvs mailing list