[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