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 <b.mont29@gmail.com>2020-03-09 14:48:32 +0300
committerBastien Montagne <b.mont29@gmail.com>2020-03-09 14:49:04 +0300
commit3a10c61a7d088712e66ae6cc775f8260dc91518b (patch)
treeb6d3161c8f9d26ab5b0e948ef6417bcfebbdb554
parentb9d1026ce02814473401024e7a3666900488003a (diff)
Cleanup: ParticleSettings: Move to IDTypeInfo and remove unused BKE API.
-rw-r--r--source/blender/blenkernel/BKE_idtype.h2
-rw-r--r--source/blender/blenkernel/BKE_particle.h9
-rw-r--r--source/blender/blenkernel/intern/idtype.c2
-rw-r--r--source/blender/blenkernel/intern/lib_id.c9
-rw-r--r--source/blender/blenkernel/intern/lib_id_delete.c2
-rw-r--r--source/blender/blenkernel/intern/particle.c166
6 files changed, 92 insertions, 98 deletions
diff --git a/source/blender/blenkernel/BKE_idtype.h b/source/blender/blenkernel/BKE_idtype.h
index 243275e5219..91c0216db0b 100644
--- a/source/blender/blenkernel/BKE_idtype.h
+++ b/source/blender/blenkernel/BKE_idtype.h
@@ -149,7 +149,7 @@ extern IDTypeInfo IDType_ID_AR;
extern IDTypeInfo IDType_ID_AC;
extern IDTypeInfo IDType_ID_NT;
extern IDTypeInfo IDType_ID_BR;
-// extern IDTypeInfo IDType_ID_PA;
+extern IDTypeInfo IDType_ID_PA;
// extern IDTypeInfo IDType_ID_GD;
extern IDTypeInfo IDType_ID_WM;
// extern IDTypeInfo IDType_ID_MC;
diff --git a/source/blender/blenkernel/BKE_particle.h b/source/blender/blenkernel/BKE_particle.h
index a7569951616..e9f83a55a70 100644
--- a/source/blender/blenkernel/BKE_particle.h
+++ b/source/blender/blenkernel/BKE_particle.h
@@ -331,7 +331,6 @@ int psys_uses_gravity(struct ParticleSimulationData *sim);
void BKE_particlesettings_fluid_default_settings(struct ParticleSettings *part);
/* free */
-void BKE_particlesettings_free(struct ParticleSettings *part);
void psys_free_path_cache(struct ParticleSystem *psys, struct PTCacheEdit *edit);
void psys_free(struct Object *ob, struct ParticleSystem *psys);
@@ -369,16 +368,8 @@ struct ModifierData *object_add_particle_system(struct Main *bmain,
const char *name);
void object_remove_particle_system(struct Main *bmain, struct Scene *scene, struct Object *ob);
struct ParticleSettings *BKE_particlesettings_add(struct Main *bmain, const char *name);
-void BKE_particlesettings_copy_data(struct Main *bmain,
- struct ParticleSettings *part_dst,
- const struct ParticleSettings *part_src,
- const int flag);
struct ParticleSettings *BKE_particlesettings_copy(struct Main *bmain,
const struct ParticleSettings *part);
-void BKE_particlesettings_make_local(struct Main *bmain,
- struct ParticleSettings *part,
- const int flags);
-
void psys_reset(struct ParticleSystem *psys, int mode);
void psys_find_parents(struct ParticleSimulationData *sim, const bool use_render_params);
diff --git a/source/blender/blenkernel/intern/idtype.c b/source/blender/blenkernel/intern/idtype.c
index 347327dfd1b..56b85f32ff7 100644
--- a/source/blender/blenkernel/intern/idtype.c
+++ b/source/blender/blenkernel/intern/idtype.c
@@ -76,7 +76,7 @@ static void id_type_init(void)
INIT_TYPE(ID_AC);
INIT_TYPE(ID_NT);
INIT_TYPE(ID_BR);
- // INIT_TYPE(ID_PA);
+ INIT_TYPE(ID_PA);
// INIT_TYPE(ID_GD);
INIT_TYPE(ID_WM);
// INIT_TYPE(ID_MC);
diff --git a/source/blender/blenkernel/intern/lib_id.c b/source/blender/blenkernel/intern/lib_id.c
index ff9f342f27d..37b416918c7 100644
--- a/source/blender/blenkernel/intern/lib_id.c
+++ b/source/blender/blenkernel/intern/lib_id.c
@@ -533,9 +533,7 @@ bool BKE_lib_id_make_local(Main *bmain, ID *id, const bool test, const int flags
BLI_assert(0);
return true;
case ID_PA:
- if (!test) {
- BKE_particlesettings_make_local(bmain, (ParticleSettings *)id, flags);
- }
+ BLI_assert(0);
return true;
case ID_GD:
if (!test) {
@@ -745,8 +743,7 @@ bool BKE_id_copy_ex(Main *bmain, const ID *id, ID **r_newid, const int flag)
BLI_assert(0);
break;
case ID_PA:
- BKE_particlesettings_copy_data(
- bmain, (ParticleSettings *)*r_newid, (ParticleSettings *)id, flag);
+ BLI_assert(0);
break;
case ID_GD:
BKE_gpencil_copy_data((bGPdata *)*r_newid, (bGPdata *)id, flag);
@@ -1372,7 +1369,7 @@ void BKE_libblock_init_empty(ID *id)
BLI_assert(0);
break;
case ID_PA:
- /* Nothing to do. */
+ BLI_assert(0);
break;
case ID_PC:
BLI_assert(0);
diff --git a/source/blender/blenkernel/intern/lib_id_delete.c b/source/blender/blenkernel/intern/lib_id_delete.c
index 430b40b57df..268e906333d 100644
--- a/source/blender/blenkernel/intern/lib_id_delete.c
+++ b/source/blender/blenkernel/intern/lib_id_delete.c
@@ -214,7 +214,7 @@ void BKE_libblock_free_datablock(ID *id, const int UNUSED(flag))
BLI_assert(0);
break;
case ID_PA:
- BKE_particlesettings_free((ParticleSettings *)id);
+ BLI_assert(0);
break;
case ID_WM:
BLI_assert(0);
diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c
index a77eb0b5ed6..cdfaa0fe075 100644
--- a/source/blender/blenkernel/intern/particle.c
+++ b/source/blender/blenkernel/intern/particle.c
@@ -58,6 +58,7 @@
#include "BKE_collection.h"
#include "BKE_colortools.h"
#include "BKE_effect.h"
+#include "BKE_idtype.h"
#include "BKE_main.h"
#include "BKE_lattice.h"
@@ -80,6 +81,91 @@
#include "particle_private.h"
+static void fluid_free_settings(SPHFluidSettings *fluid);
+
+static void particle_settings_copy_data(Main *UNUSED(bmain),
+ ID *id_dst,
+ const ID *id_src,
+ const int UNUSED(flag))
+{
+ ParticleSettings *particle_settings_dst = (ParticleSettings *)id_dst;
+ const ParticleSettings *partticle_settings_src = (const ParticleSettings *)id_src;
+
+ particle_settings_dst->pd = BKE_partdeflect_copy(partticle_settings_src->pd);
+ particle_settings_dst->pd2 = BKE_partdeflect_copy(partticle_settings_src->pd2);
+ particle_settings_dst->effector_weights = MEM_dupallocN(
+ partticle_settings_src->effector_weights);
+ particle_settings_dst->fluid = MEM_dupallocN(partticle_settings_src->fluid);
+
+ if (partticle_settings_src->clumpcurve) {
+ particle_settings_dst->clumpcurve = BKE_curvemapping_copy(partticle_settings_src->clumpcurve);
+ }
+ if (partticle_settings_src->roughcurve) {
+ particle_settings_dst->roughcurve = BKE_curvemapping_copy(partticle_settings_src->roughcurve);
+ }
+ if (partticle_settings_src->twistcurve) {
+ particle_settings_dst->twistcurve = BKE_curvemapping_copy(partticle_settings_src->twistcurve);
+ }
+
+ particle_settings_dst->boids = boid_copy_settings(partticle_settings_src->boids);
+
+ for (int a = 0; a < MAX_MTEX; a++) {
+ if (partticle_settings_src->mtex[a]) {
+ particle_settings_dst->mtex[a] = MEM_dupallocN(partticle_settings_src->mtex[a]);
+ }
+ }
+
+ BLI_duplicatelist(&particle_settings_dst->instance_weights,
+ &partticle_settings_src->instance_weights);
+}
+
+static void particle_settings_free_data(ID *id)
+{
+ ParticleSettings *particle_settings = (ParticleSettings *)id;
+
+ BKE_animdata_free((ID *)particle_settings, false);
+
+ for (int a = 0; a < MAX_MTEX; a++) {
+ MEM_SAFE_FREE(particle_settings->mtex[a]);
+ }
+
+ if (particle_settings->clumpcurve) {
+ BKE_curvemapping_free(particle_settings->clumpcurve);
+ }
+ if (particle_settings->roughcurve) {
+ BKE_curvemapping_free(particle_settings->roughcurve);
+ }
+ if (particle_settings->twistcurve) {
+ BKE_curvemapping_free(particle_settings->twistcurve);
+ }
+
+ BKE_partdeflect_free(particle_settings->pd);
+ BKE_partdeflect_free(particle_settings->pd2);
+
+ MEM_SAFE_FREE(particle_settings->effector_weights);
+
+ BLI_freelistN(&particle_settings->instance_weights);
+
+ boid_free_settings(particle_settings->boids);
+ fluid_free_settings(particle_settings->fluid);
+}
+
+IDTypeInfo IDType_ID_PA = {
+ .id_code = ID_PA,
+ .id_filter = FILTER_ID_PA,
+ .main_listbase_index = INDEX_ID_PA,
+ .struct_size = sizeof(ParticleSettings),
+ .name = "ParticleSettings",
+ .name_plural = "particles",
+ .translation_context = BLT_I18NCONTEXT_ID_PARTICLESETTINGS,
+ .flags = 0,
+
+ .init_data = NULL,
+ .copy_data = particle_settings_copy_data,
+ .free_data = particle_settings_free_data,
+ .make_local = NULL,
+};
+
unsigned int PSYS_FRAND_SEED_OFFSET[PSYS_FRAND_COUNT];
unsigned int PSYS_FRAND_SEED_MULTIPLIER[PSYS_FRAND_COUNT];
float PSYS_FRAND_BASE[PSYS_FRAND_COUNT];
@@ -484,40 +570,6 @@ static void fluid_free_settings(SPHFluidSettings *fluid)
}
}
-/**
- * Free (or release) any data used by this particle settings (does not free the partsett itself).
- */
-void BKE_particlesettings_free(ParticleSettings *part)
-{
- int a;
-
- BKE_animdata_free((ID *)part, false);
-
- for (a = 0; a < MAX_MTEX; a++) {
- MEM_SAFE_FREE(part->mtex[a]);
- }
-
- if (part->clumpcurve) {
- BKE_curvemapping_free(part->clumpcurve);
- }
- if (part->roughcurve) {
- BKE_curvemapping_free(part->roughcurve);
- }
- if (part->twistcurve) {
- BKE_curvemapping_free(part->twistcurve);
- }
-
- BKE_partdeflect_free(part->pd);
- BKE_partdeflect_free(part->pd2);
-
- MEM_SAFE_FREE(part->effector_weights);
-
- BLI_freelistN(&part->instance_weights);
-
- boid_free_settings(part->boids);
- fluid_free_settings(part->fluid);
-}
-
void free_hair(Object *object, ParticleSystem *psys, int dynamics)
{
PARTICLE_P;
@@ -3789,47 +3841,6 @@ void BKE_particlesettings_twist_curve_init(ParticleSettings *part)
part->twistcurve = cumap;
}
-/**
- * Only copy internal data of ParticleSettings ID from source
- * to already allocated/initialized destination.
- * You probably never want to use that directly,
- * use #BKE_id_copy or #BKE_id_copy_ex for typical needs.
- *
- * WARNING! This function will not handle ID user count!
- *
- * \param flag: Copying options (see BKE_lib_id.h's LIB_ID_COPY_... flags for more).
- */
-void BKE_particlesettings_copy_data(Main *UNUSED(bmain),
- ParticleSettings *part_dst,
- const ParticleSettings *part_src,
- const int UNUSED(flag))
-{
- part_dst->pd = BKE_partdeflect_copy(part_src->pd);
- part_dst->pd2 = BKE_partdeflect_copy(part_src->pd2);
- part_dst->effector_weights = MEM_dupallocN(part_src->effector_weights);
- part_dst->fluid = MEM_dupallocN(part_src->fluid);
-
- if (part_src->clumpcurve) {
- part_dst->clumpcurve = BKE_curvemapping_copy(part_src->clumpcurve);
- }
- if (part_src->roughcurve) {
- part_dst->roughcurve = BKE_curvemapping_copy(part_src->roughcurve);
- }
- if (part_src->twistcurve) {
- part_dst->twistcurve = BKE_curvemapping_copy(part_src->twistcurve);
- }
-
- part_dst->boids = boid_copy_settings(part_src->boids);
-
- for (int a = 0; a < MAX_MTEX; a++) {
- if (part_src->mtex[a]) {
- part_dst->mtex[a] = MEM_dupallocN(part_src->mtex[a]);
- }
- }
-
- BLI_duplicatelist(&part_dst->instance_weights, &part_src->instance_weights);
-}
-
ParticleSettings *BKE_particlesettings_copy(Main *bmain, const ParticleSettings *part)
{
ParticleSettings *part_copy;
@@ -3837,11 +3848,6 @@ ParticleSettings *BKE_particlesettings_copy(Main *bmain, const ParticleSettings
return part_copy;
}
-void BKE_particlesettings_make_local(Main *bmain, ParticleSettings *part, const int flags)
-{
- BKE_lib_id_make_local_generic(bmain, &part->id, flags);
-}
-
/************************************************/
/* Textures */
/************************************************/