[Bf-blender-cvs] [d5bc8a68406] functions: support point and tetrahedon mesh creation
Jacques Lucke
noreply at git.blender.org
Fri Jun 21 14:56:20 CEST 2019
Commit: d5bc8a68406648322a29ebf6fc5c77bc56d1b02a
Author: Jacques Lucke
Date: Fri Jun 21 14:45:41 2019 +0200
Branches: functions
https://developer.blender.org/rBd5bc8a68406648322a29ebf6fc5c77bc56d1b02a
support point and tetrahedon mesh creation
===================================================================
M source/blender/modifiers/intern/MOD_nodeparticles.c
===================================================================
diff --git a/source/blender/modifiers/intern/MOD_nodeparticles.c b/source/blender/modifiers/intern/MOD_nodeparticles.c
index 306a9983f6c..c33660be62b 100644
--- a/source/blender/modifiers/intern/MOD_nodeparticles.c
+++ b/source/blender/modifiers/intern/MOD_nodeparticles.c
@@ -80,7 +80,23 @@ static void free_modifier_runtime_data(NodeParticlesModifierData *npmd)
}
}
-static Mesh *mesh_from_particles_state(BParticlesState state, float scale)
+static Mesh *point_mesh_from_particle_state(BParticlesState state)
+{
+ uint point_amount = BParticles_state_particle_count(state);
+ Mesh *mesh = BKE_mesh_new_nomain(point_amount, 0, 0, 0, 0);
+
+ float(*positions)[3] = MEM_malloc_arrayN(point_amount, sizeof(float[3]), __func__);
+ BParticles_state_get_positions(state, positions);
+
+ for (uint i = 0; i < point_amount; i++) {
+ copy_v3_v3(mesh->mvert[i].co, positions[i]);
+ }
+
+ MEM_freeN(positions);
+ return mesh;
+}
+
+static Mesh *tetrahedon_mesh_from_particle_state(BParticlesState state, float scale)
{
uint point_amount = BParticles_state_particle_count(state);
Mesh *mesh = BKE_mesh_new_nomain(point_amount * 4, 0, 0, point_amount * 12, point_amount * 4);
@@ -155,7 +171,7 @@ static Mesh *applyModifier(ModifierData *md,
runtime->last_simulated_frame = current_frame;
}
- return mesh_from_particles_state(runtime->state, npmd->control1);
+ return point_mesh_from_particle_state(runtime->state);
}
static void initData(ModifierData *md)
More information about the Bf-blender-cvs
mailing list