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:
authorBastien Montagne <bastien@blender.org>2020-10-08 19:07:20 +0300
committerBastien Montagne <bastien@blender.org>2020-10-08 19:19:09 +0300
commitcac0e78aff06a48b6b3c1296c0fc0102cc0aa0ae (patch)
tree7ea9a2beea76cf2d9455a7667b0642448e88773b /source/blender/blenkernel
parentd6f409b862715ba4a07212b5149d6d6c0ec269be (diff)
Cleanup/refactor: move init of ParticleSettings to proper place.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/intern/particle.c101
1 files changed, 13 insertions, 88 deletions
diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c
index 329f11a57b9..88d3f8bf707 100644
--- a/source/blender/blenkernel/intern/particle.c
+++ b/source/blender/blenkernel/intern/particle.c
@@ -27,6 +27,8 @@
#include "MEM_guardedalloc.h"
+#include "DNA_defaults.h"
+
#include "DNA_collection_types.h"
#include "DNA_curve_types.h"
#include "DNA_dynamicpaint_types.h"
@@ -82,6 +84,16 @@
static void fluid_free_settings(SPHFluidSettings *fluid);
+static void particle_settings_init(ID *id)
+{
+ ParticleSettings *particle_settings = (ParticleSettings *)id;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(particle_settings, id));
+
+ MEMCPY_STRUCT_AFTER(particle_settings, DNA_struct_default_get(ParticleSettings), id);
+
+ particle_settings->effector_weights = BKE_effector_add_weights(NULL);
+}
+
static void particle_settings_copy_data(Main *UNUSED(bmain),
ID *id_dst,
const ID *id_src,
@@ -204,7 +216,7 @@ IDTypeInfo IDType_ID_PA = {
.translation_context = BLT_I18NCONTEXT_ID_PARTICLESETTINGS,
.flags = 0,
- .init_data = NULL,
+ .init_data = particle_settings_init,
.copy_data = particle_settings_copy_data,
.free_data = particle_settings_free_data,
.make_local = NULL,
@@ -3769,99 +3781,12 @@ void object_remove_particle_system(Main *bmain, Scene *UNUSED(scene), Object *ob
DEG_id_tag_update(&ob->id, ID_RECALC_COPY_ON_WRITE);
}
-static void default_particle_settings(ParticleSettings *part)
-{
- part->type = PART_EMITTER;
- part->distr = PART_DISTR_JIT;
- part->draw_as = PART_DRAW_REND;
- part->ren_as = PART_DRAW_HALO;
- part->bb_uv_split = 1;
- part->flag = PART_EDISTR | PART_TRAND | PART_HIDE_ADVANCED_HAIR;
-
- part->sta = 1.0;
- part->end = 200.0;
- part->lifetime = 50.0;
- part->jitfac = 1.0;
- part->totpart = 1000;
- part->grid_res = 10;
- part->timetweak = 1.0;
- part->courant_target = 0.2;
-
- part->integrator = PART_INT_MIDPOINT;
- part->phystype = PART_PHYS_NEWTON;
- part->hair_step = 5;
- part->keys_step = 5;
- part->draw_step = 2;
- part->ren_step = 3;
- part->adapt_angle = 5;
- part->adapt_pix = 3;
- part->kink_axis = 2;
- part->kink_amp_clump = 1.f;
- part->kink_extra_steps = 4;
- part->clump_noise_size = 1.0f;
- part->reactevent = PART_EVENT_DEATH;
- part->disp = 100;
- part->from = PART_FROM_FACE;
-
- part->normfac = 1.0f;
-
- part->mass = 1.0;
- part->size = 0.05;
- part->childsize = 1.0;
-
- part->rotmode = PART_ROT_VEL;
- part->avemode = PART_AVE_VELOCITY;
-
- part->child_nbr = 10;
- part->ren_child_nbr = 100;
- part->childrad = 0.2f;
- part->childflat = 0.0f;
- part->clumppow = 0.0f;
- part->kink_amp = 0.2f;
- part->kink_freq = 2.0;
-
- part->rough1_size = 1.0;
- part->rough2_size = 1.0;
- part->rough_end_shape = 1.0;
-
- part->clength = 1.0f;
- part->clength_thres = 0.0f;
-
- part->draw = 0;
- part->draw_line[0] = 0.5;
- part->path_start = 0.0f;
- part->path_end = 1.0f;
-
- part->bb_size[0] = part->bb_size[1] = 1.0f;
-
- part->keyed_loops = 1;
-
- part->color_vec_max = 1.f;
- part->draw_col = PART_DRAW_COL_MAT;
-
- if (!part->effector_weights) {
- part->effector_weights = BKE_effector_add_weights(NULL);
- }
-
- part->omat = 1;
- part->use_modifier_stack = false;
- part->draw_size = 0.1f;
-
- part->shape_flag = PART_SHAPE_CLOSE_TIP;
- part->shape = 0.0f;
- part->rad_root = 1.0f;
- part->rad_tip = 0.0f;
- part->rad_scale = 0.01f;
-}
-
ParticleSettings *BKE_particlesettings_add(Main *bmain, const char *name)
{
ParticleSettings *part;
part = BKE_id_new(bmain, ID_PA, name);
- default_particle_settings(part);
-
return part;
}