Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/modifiers/intern/MOD_simulation.cc')
-rw-r--r--source/blender/modifiers/intern/MOD_simulation.cc38
1 files changed, 18 insertions, 20 deletions
diff --git a/source/blender/modifiers/intern/MOD_simulation.cc b/source/blender/modifiers/intern/MOD_simulation.cc
index 85d9b47a861..99cd582f37d 100644
--- a/source/blender/modifiers/intern/MOD_simulation.cc
+++ b/source/blender/modifiers/intern/MOD_simulation.cc
@@ -46,16 +46,11 @@
#include "BKE_mesh.h"
#include "BKE_modifier.h"
#include "BKE_pointcloud.h"
+#include "BKE_screen.h"
#include "BKE_simulation.h"
#include "BLO_read_write.h"
-/* SpaceType struct has a member called 'new' which obviously conflicts with C++
- * so temporarily redefining the new keyword to make it compile. */
-#define new extern_new
-#include "BKE_screen.h"
-#undef new
-
#include "UI_interface.h"
#include "UI_resources.h"
@@ -71,7 +66,7 @@ using blender::float3;
static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
{
- SimulationModifierData *smd = (SimulationModifierData *)md;
+ SimulationModifierData *smd = reinterpret_cast<SimulationModifierData *>(md);
if (smd->simulation) {
DEG_add_simulation_relation(ctx->node, smd->simulation, "Accessed Simulation");
}
@@ -79,7 +74,7 @@ static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphConte
static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
{
- SimulationModifierData *smd = (SimulationModifierData *)md;
+ SimulationModifierData *smd = reinterpret_cast<SimulationModifierData *>(md);
walk(userData, ob, (ID **)&smd->simulation, IDWALK_CB_USER);
}
@@ -87,21 +82,22 @@ static bool isDisabled(const struct Scene *UNUSED(scene),
ModifierData *md,
bool UNUSED(useRenderParams))
{
- SimulationModifierData *smd = (SimulationModifierData *)md;
+ SimulationModifierData *smd = reinterpret_cast<SimulationModifierData *>(md);
return smd->simulation == nullptr;
}
static const ParticleSimulationState *find_particle_state(SimulationModifierData *smd)
{
- return (const ParticleSimulationState *)BKE_simulation_state_try_find_by_name_and_type(
- smd->simulation, smd->data_path, SIM_TYPE_NAME_PARTICLE_SIMULATION);
+ return reinterpret_cast<const ParticleSimulationState *>(
+ BKE_simulation_state_try_find_by_name_and_type(
+ smd->simulation, smd->data_path, SIM_TYPE_NAME_PARTICLE_SIMULATION));
}
static PointCloud *modifyPointCloud(ModifierData *md,
const ModifierEvalContext *UNUSED(ctx),
PointCloud *input_pointcloud)
{
- SimulationModifierData *smd = (SimulationModifierData *)md;
+ SimulationModifierData *smd = reinterpret_cast<SimulationModifierData *>(md);
const ParticleSimulationState *state = find_particle_state(smd);
if (state == nullptr) {
return input_pointcloud;
@@ -112,12 +108,14 @@ static PointCloud *modifyPointCloud(ModifierData *md,
return pointcloud;
}
- const float3 *positions = (const float3 *)CustomData_get_layer_named(
- &state->attributes, CD_PROP_FLOAT3, "Position");
+ const float3 *positions = static_cast<const float3 *>(
+ CustomData_get_layer_named(&state->attributes, CD_PROP_FLOAT3, "Position"));
+ const float *radii = static_cast<const float *>(
+ CustomData_get_layer_named(&state->attributes, CD_PROP_FLOAT, "Radius"));
memcpy(pointcloud->co, positions, sizeof(float3) * state->tot_particles);
for (int i = 0; i < state->tot_particles; i++) {
- pointcloud->radius[i] = 0.03f;
+ pointcloud->radius[i] = radii[i];
}
return pointcloud;
@@ -147,20 +145,20 @@ static void panelRegister(ARegionType *region_type)
static void blendWrite(BlendWriter *writer, const ModifierData *md)
{
- const SimulationModifierData *smd = (const SimulationModifierData *)md;
+ const SimulationModifierData *smd = reinterpret_cast<const SimulationModifierData *>(md);
BLO_write_string(writer, smd->data_path);
}
static void blendRead(BlendDataReader *reader, ModifierData *md)
{
- SimulationModifierData *smd = (SimulationModifierData *)md;
+ SimulationModifierData *smd = reinterpret_cast<SimulationModifierData *>(md);
BLO_read_data_address(reader, &smd->data_path);
}
static void copyData(const ModifierData *md, ModifierData *target, const int flag)
{
- const SimulationModifierData *smd = (const SimulationModifierData *)md;
- SimulationModifierData *tsmd = (SimulationModifierData *)target;
+ const SimulationModifierData *smd = reinterpret_cast<const SimulationModifierData *>(md);
+ SimulationModifierData *tsmd = reinterpret_cast<SimulationModifierData *>(target);
BKE_modifier_copydata_generic(md, target, flag);
if (smd->data_path != nullptr) {
@@ -170,7 +168,7 @@ static void copyData(const ModifierData *md, ModifierData *target, const int fla
static void freeData(ModifierData *md)
{
- SimulationModifierData *smd = (SimulationModifierData *)md;
+ SimulationModifierData *smd = reinterpret_cast<SimulationModifierData *>(md);
if (smd->data_path) {
MEM_freeN(smd->data_path);
}