Cleanup: Move modifier.c to C++

This commit is contained in:
Hans Goudey 2022-09-29 16:43:09 -05:00
parent 3059c0998a
commit 0ff485b6ba
6 changed files with 128 additions and 128 deletions

View File

@ -218,7 +218,7 @@ int cloth_bvh_collision(struct Depsgraph *depsgraph,
/* -------------------------------------------------------------------- */
/* cloth.c */
/* Needed for modifier.c */
/* Needed for modifier.cc */
/** Frees all. */
void cloth_free_modifier_extern(struct ClothModifierData *clmd);
/** Frees all. */

View File

@ -85,7 +85,7 @@ typedef struct FaceCollPair {
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// used in modifier.c from collision.c
// used in modifier.cc from collision.c
/////////////////////////////////////////////////
struct BVHTree *bvhtree_build_from_mvert(const struct MVert *mvert,

View File

@ -214,7 +214,7 @@ set(SRC
intern/mesh_tessellate.cc
intern/mesh_validate.cc
intern/mesh_wrapper.cc
intern/modifier.c
intern/modifier.cc
intern/movieclip.c
intern/multires.c
intern/multires_reshape.c

View File

@ -57,7 +57,7 @@ typedef struct BendSpringRef {
/******************************************************************************
*
* External interface called by modifier.c clothModifier functions.
* External interface called by modifier.cc clothModifier functions.
*
******************************************************************************/

View File

@ -10,12 +10,12 @@
/* Allow using deprecated functionality for .blend file I/O. */
#define DNA_DEPRECATED_ALLOW
#include <float.h>
#include <math.h>
#include <stdarg.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include <cfloat>
#include <cmath>
#include <cstdarg>
#include <cstddef>
#include <cstdlib>
#include <cstring>
#include "MEM_guardedalloc.h"
@ -73,7 +73,7 @@
#include "CLG_log.h"
static CLG_LogRef LOG = {"bke.modifier"};
static ModifierTypeInfo *modifier_types[NUM_MODIFIER_TYPES] = {NULL};
static ModifierTypeInfo *modifier_types[NUM_MODIFIER_TYPES] = {nullptr};
static VirtualModifierData virtualModifierCommonData;
void BKE_modifier_init(void)
@ -113,7 +113,7 @@ const ModifierTypeInfo *BKE_modifier_get_info(ModifierType type)
return modifier_types[type];
}
return NULL;
return nullptr;
}
void BKE_modifier_type_panel_id(ModifierType type, char *r_idname)
@ -131,10 +131,10 @@ void BKE_modifier_panel_expand(ModifierData *md)
/***/
static ModifierData *modifier_allocate_and_init(int type)
static ModifierData *modifier_allocate_and_init(ModifierType type)
{
const ModifierTypeInfo *mti = BKE_modifier_get_info(type);
ModifierData *md = MEM_callocN(mti->structSize, mti->structName);
ModifierData *md = static_cast<ModifierData *>(MEM_callocN(mti->structSize, mti->structName));
/* NOTE: this name must be made unique later. */
BLI_strncpy(md->name, DATA_(mti->name), sizeof(md->name));
@ -158,7 +158,7 @@ static ModifierData *modifier_allocate_and_init(int type)
ModifierData *BKE_modifier_new(int type)
{
ModifierData *md = modifier_allocate_and_init(type);
ModifierData *md = modifier_allocate_and_init(ModifierType(type));
BKE_modifier_session_uuid_generate(md);
@ -171,18 +171,18 @@ static void modifier_free_data_id_us_cb(void *UNUSED(userData),
int cb_flag)
{
ID *id = *idpoin;
if (id != NULL && (cb_flag & IDWALK_CB_USER) != 0) {
if (id != nullptr && (cb_flag & IDWALK_CB_USER) != 0) {
id_us_min(id);
}
}
void BKE_modifier_free_ex(ModifierData *md, const int flag)
{
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
if ((flag & LIB_ID_CREATE_NO_USER_REFCOUNT) == 0) {
if (mti->foreachIDLink) {
mti->foreachIDLink(md, NULL, modifier_free_data_id_us_cb, NULL);
mti->foreachIDLink(md, nullptr, modifier_free_data_id_us_cb, nullptr);
}
}
@ -207,10 +207,10 @@ void BKE_modifier_remove_from_list(Object *ob, ModifierData *md)
if (md->flag & eModifierFlag_Active) {
/* Prefer the previous modifier but use the next if this modifier is the first in the list. */
if (md->next != NULL) {
if (md->next != nullptr) {
BKE_object_modifier_set_active(ob, md->next);
}
else if (md->prev != NULL) {
else if (md->prev != nullptr) {
BKE_object_modifier_set_active(ob, md->prev);
}
}
@ -226,7 +226,7 @@ void BKE_modifier_session_uuid_generate(ModifierData *md)
bool BKE_modifier_unique_name(ListBase *modifiers, ModifierData *md)
{
if (modifiers && md) {
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
return BLI_uniquename(
modifiers, md, DATA_(mti->name), '.', offsetof(ModifierData, name), sizeof(md->name));
@ -236,14 +236,14 @@ bool BKE_modifier_unique_name(ListBase *modifiers, ModifierData *md)
bool BKE_modifier_depends_ontime(Scene *scene, ModifierData *md)
{
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
return mti->dependsOnTime && mti->dependsOnTime(scene, md);
}
bool BKE_modifier_supports_mapping(ModifierData *md)
{
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
return (mti->type == eModifierTypeType_OnlyDeform ||
(mti->flags & eModifierTypeFlag_SupportsMapping));
@ -251,7 +251,7 @@ bool BKE_modifier_supports_mapping(ModifierData *md)
bool BKE_modifier_is_preview(ModifierData *md)
{
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
/* Constructive modifiers are highly likely to also modify data like vgroups or vcol! */
if (!((mti->flags & eModifierTypeFlag_UsesPreview) ||
@ -273,12 +273,13 @@ ModifierData *BKE_modifiers_findby_type(const Object *ob, ModifierType type)
return md;
}
}
return NULL;
return nullptr;
}
ModifierData *BKE_modifiers_findby_name(const Object *ob, const char *name)
{
return BLI_findstring(&(ob->modifiers), name, offsetof(ModifierData, name));
return static_cast<ModifierData *>(
BLI_findstring(&(ob->modifiers), name, offsetof(ModifierData, name)));
}
ModifierData *BKE_modifiers_findby_session_uuid(const Object *ob, const SessionUUID *session_uuid)
@ -288,7 +289,7 @@ ModifierData *BKE_modifiers_findby_session_uuid(const Object *ob, const SessionU
return md;
}
}
return NULL;
return nullptr;
}
void BKE_modifiers_clear_errors(Object *ob)
@ -296,7 +297,7 @@ void BKE_modifiers_clear_errors(Object *ob)
LISTBASE_FOREACH (ModifierData *, md, &ob->modifiers) {
if (md->error) {
MEM_freeN(md->error);
md->error = NULL;
md->error = nullptr;
}
}
}
@ -304,7 +305,7 @@ void BKE_modifiers_clear_errors(Object *ob)
void BKE_modifiers_foreach_ID_link(Object *ob, IDWalkFunc walk, void *userData)
{
LISTBASE_FOREACH (ModifierData *, md, &ob->modifiers) {
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
if (mti->foreachIDLink) {
mti->foreachIDLink(md, ob, walk, userData);
@ -315,7 +316,7 @@ void BKE_modifiers_foreach_ID_link(Object *ob, IDWalkFunc walk, void *userData)
void BKE_modifiers_foreach_tex_link(Object *ob, TexWalkFunc walk, void *userData)
{
LISTBASE_FOREACH (ModifierData *, md, &ob->modifiers) {
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
if (mti->foreachTexLink) {
mti->foreachTexLink(md, ob, walk, userData);
@ -325,7 +326,7 @@ void BKE_modifiers_foreach_tex_link(Object *ob, TexWalkFunc walk, void *userData
ModifierData *BKE_modifier_copy_ex(const ModifierData *md, int flag)
{
ModifierData *md_dst = modifier_allocate_and_init(md->type);
ModifierData *md_dst = modifier_allocate_and_init(ModifierType(md->type));
BLI_strncpy(md_dst->name, md->name, sizeof(md_dst->name));
BKE_modifier_copydata_ex(md, md_dst, flag);
@ -337,7 +338,7 @@ void BKE_modifier_copydata_generic(const ModifierData *md_src,
ModifierData *md_dst,
const int UNUSED(flag))
{
const ModifierTypeInfo *mti = BKE_modifier_get_info(md_src->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md_src->type));
/* md_dst may have already be fully initialized with some extra allocated data,
* we need to free it now to avoid memleak. */
@ -352,7 +353,7 @@ void BKE_modifier_copydata_generic(const ModifierData *md_src,
memcpy(md_dst_data, md_src_data, (size_t)mti->structSize - data_size);
/* Runtime fields are never to be preserved. */
md_dst->runtime = NULL;
md_dst->runtime = nullptr;
}
static void modifier_copy_data_id_us_cb(void *UNUSED(userData),
@ -361,14 +362,14 @@ static void modifier_copy_data_id_us_cb(void *UNUSED(userData),
int cb_flag)
{
ID *id = *idpoin;
if (id != NULL && (cb_flag & IDWALK_CB_USER) != 0) {
if (id != nullptr && (cb_flag & IDWALK_CB_USER) != 0) {
id_us_plus(id);
}
}
void BKE_modifier_copydata_ex(const ModifierData *md, ModifierData *target, const int flag)
{
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
target->mode = md->mode;
target->flag = md->flag;
@ -380,7 +381,7 @@ void BKE_modifier_copydata_ex(const ModifierData *md, ModifierData *target, cons
if ((flag & LIB_ID_CREATE_NO_USER_REFCOUNT) == 0) {
if (mti->foreachIDLink) {
mti->foreachIDLink(target, NULL, modifier_copy_data_id_us_cb, NULL);
mti->foreachIDLink(target, nullptr, modifier_copy_data_id_us_cb, nullptr);
}
}
@ -403,7 +404,7 @@ void BKE_modifier_copydata(const ModifierData *md, ModifierData *target)
bool BKE_modifier_supports_cage(struct Scene *scene, ModifierData *md)
{
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
return ((!mti->isDisabled || !mti->isDisabled(scene, md, 0)) &&
(mti->flags & eModifierTypeFlag_SupportsEditmode) && BKE_modifier_supports_mapping(md));
@ -411,7 +412,7 @@ bool BKE_modifier_supports_cage(struct Scene *scene, ModifierData *md)
bool BKE_modifier_couldbe_cage(struct Scene *scene, ModifierData *md)
{
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
return ((md->mode & eModifierMode_Realtime) && (md->mode & eModifierMode_Editmode) &&
(!mti->isDisabled || !mti->isDisabled(scene, md, 0)) &&
@ -420,13 +421,13 @@ bool BKE_modifier_couldbe_cage(struct Scene *scene, ModifierData *md)
bool BKE_modifier_is_same_topology(ModifierData *md)
{
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
return ELEM(mti->type, eModifierTypeType_OnlyDeform, eModifierTypeType_NonGeometrical);
}
bool BKE_modifier_is_non_geometrical(ModifierData *md)
{
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
return (mti->type == eModifierTypeType_NonGeometrical);
}
@ -450,7 +451,7 @@ void BKE_modifier_set_error(const Object *ob, ModifierData *md, const char *_for
#ifndef NDEBUG
if ((md->mode & eModifierMode_Virtual) == 0) {
/* Ensure correct object is passed in. */
BLI_assert(BKE_modifier_get_original(ob, md) != NULL);
BLI_assert(BKE_modifier_get_original(ob, md) != nullptr);
}
#endif
@ -484,7 +485,7 @@ void BKE_modifier_set_warning(const struct Object *ob,
#ifndef NDEBUG
if ((md->mode & eModifierMode_Virtual) == 0) {
/* Ensure correct object is passed in. */
BLI_assert(BKE_modifier_get_original(ob, md) != NULL);
BLI_assert(BKE_modifier_get_original(ob, md) != nullptr);
}
#endif
@ -499,7 +500,7 @@ int BKE_modifiers_get_cage_index(const Scene *scene,
VirtualModifierData virtualModifierData;
ModifierData *md = (is_virtual) ?
BKE_modifiers_get_virtual_modifierlist(ob, &virtualModifierData) :
ob->modifiers.first;
static_cast<ModifierData *>(ob->modifiers.first);
if (r_lastPossibleCageIndex) {
/* ensure the value is initialized */
@ -509,7 +510,7 @@ int BKE_modifiers_get_cage_index(const Scene *scene,
/* Find the last modifier acting on the cage. */
int cageIndex = -1;
for (int i = 0; md; i++, md = md->next) {
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
bool supports_mapping;
if (mti->isDisabled && mti->isDisabled(scene, md, 0)) {
@ -562,7 +563,7 @@ bool BKE_modifiers_is_cloth_enabled(Object *ob)
bool BKE_modifiers_is_modifier_enabled(Object *ob, int modifierType)
{
ModifierData *md = BKE_modifiers_findby_type(ob, modifierType);
ModifierData *md = BKE_modifiers_findby_type(ob, ModifierType(modifierType));
return (md && md->mode & (eModifierMode_Realtime | eModifierMode_Render));
}
@ -576,12 +577,12 @@ bool BKE_modifiers_is_particle_enabled(Object *ob)
bool BKE_modifier_is_enabled(const struct Scene *scene, ModifierData *md, int required_mode)
{
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
if ((md->mode & required_mode) != required_mode) {
return false;
}
if (scene != NULL && mti->isDisabled &&
if (scene != nullptr && mti->isDisabled &&
mti->isDisabled(scene, md, required_mode == eModifierMode_Render)) {
return false;
}
@ -599,7 +600,7 @@ bool BKE_modifier_is_enabled(const struct Scene *scene, ModifierData *md, int re
bool BKE_modifier_is_nonlocal_in_liboverride(const Object *ob, const ModifierData *md)
{
return (ID_IS_OVERRIDE_LIBRARY(ob) &&
(md == NULL || (md->flag & eModifierFlag_OverrideLibrary_Local) == 0));
(md == nullptr || (md->flag & eModifierFlag_OverrideLibrary_Local) == 0));
}
CDMaskLink *BKE_modifier_calc_data_masks(const struct Scene *scene,
@ -609,15 +610,15 @@ CDMaskLink *BKE_modifier_calc_data_masks(const struct Scene *scene,
ModifierData *previewmd,
const CustomData_MeshMasks *previewmask)
{
CDMaskLink *dataMasks = NULL;
CDMaskLink *dataMasks = nullptr;
CDMaskLink *curr, *prev;
bool have_deform_modifier = false;
/* build a list of modifier data requirements in reverse order */
for (; md; md = md->next) {
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
curr = MEM_callocN(sizeof(CDMaskLink), "CDMaskLink");
curr = MEM_cnew<CDMaskLink>(__func__);
if (BKE_modifier_is_enabled(scene, md, required_mode)) {
if (mti->type == eModifierTypeType_OnlyDeform) {
@ -628,7 +629,7 @@ CDMaskLink *BKE_modifier_calc_data_masks(const struct Scene *scene,
mti->requiredDataMask(md, &curr->mask);
}
if (previewmd == md && previewmask != NULL) {
if (previewmd == md && previewmask != nullptr) {
CustomData_MeshMasks_update(&curr->mask, previewmask);
}
}
@ -654,7 +655,7 @@ CDMaskLink *BKE_modifier_calc_data_masks(const struct Scene *scene,
* note the list is currently in reverse order, so "masks that follow it"
* actually means "masks that precede it" at the moment
*/
for (curr = dataMasks, prev = NULL; curr; prev = curr, curr = curr->next) {
for (curr = dataMasks, prev = nullptr; curr; prev = curr, curr = curr->next) {
if (prev) {
CustomData_MeshMasks_update(&curr->mask, &prev->mask);
}
@ -673,7 +674,7 @@ ModifierData *BKE_modifier_get_last_preview(const struct Scene *scene,
ModifierData *md,
int required_mode)
{
ModifierData *tmp_md = NULL;
ModifierData *tmp_md = nullptr;
if ((required_mode & ~eModifierMode_Editmode) != eModifierMode_Realtime) {
return tmp_md;
@ -691,7 +692,7 @@ ModifierData *BKE_modifier_get_last_preview(const struct Scene *scene,
ModifierData *BKE_modifiers_get_virtual_modifierlist(const Object *ob,
VirtualModifierData *virtualModifierData)
{
ModifierData *md = ob->modifiers.first;
ModifierData *md = static_cast<ModifierData *>(ob->modifiers.first);
*virtualModifierData = virtualModifierCommonData;
@ -735,7 +736,7 @@ Object *BKE_modifiers_is_deformed_by_armature(Object *ob)
{
if (ob->type == OB_GPENCIL) {
GpencilVirtualModifierData gpencilvirtualModifierData;
ArmatureGpencilModifierData *agmd = NULL;
ArmatureGpencilModifierData *agmd = nullptr;
GpencilModifierData *gmd = BKE_gpencil_modifiers_get_virtual_modifierlist(
ob, &gpencilvirtualModifierData);
@ -755,7 +756,7 @@ Object *BKE_modifiers_is_deformed_by_armature(Object *ob)
}
else {
VirtualModifierData virtualModifierData;
ArmatureModifierData *amd = NULL;
ArmatureModifierData *amd = nullptr;
ModifierData *md = BKE_modifiers_get_virtual_modifierlist(ob, &virtualModifierData);
/* return the first selected armature, this lets us use multiple armatures */
@ -773,14 +774,14 @@ Object *BKE_modifiers_is_deformed_by_armature(Object *ob)
}
}
return NULL;
return nullptr;
}
Object *BKE_modifiers_is_deformed_by_meshdeform(Object *ob)
{
VirtualModifierData virtualModifierData;
ModifierData *md = BKE_modifiers_get_virtual_modifierlist(ob, &virtualModifierData);
MeshDeformModifierData *mdmd = NULL;
MeshDeformModifierData *mdmd = nullptr;
/* return the first selected armature, this lets us use multiple armatures */
for (; md; md = md->next) {
@ -796,14 +797,14 @@ Object *BKE_modifiers_is_deformed_by_meshdeform(Object *ob)
return mdmd->object;
}
return NULL;
return nullptr;
}
Object *BKE_modifiers_is_deformed_by_lattice(Object *ob)
{
VirtualModifierData virtualModifierData;
ModifierData *md = BKE_modifiers_get_virtual_modifierlist(ob, &virtualModifierData);
LatticeModifierData *lmd = NULL;
LatticeModifierData *lmd = nullptr;
/* return the first selected lattice, this lets us use multiple lattices */
for (; md; md = md->next) {
@ -819,14 +820,14 @@ Object *BKE_modifiers_is_deformed_by_lattice(Object *ob)
return lmd->object;
}
return NULL;
return nullptr;
}
Object *BKE_modifiers_is_deformed_by_curve(Object *ob)
{
VirtualModifierData virtualModifierData;
ModifierData *md = BKE_modifiers_get_virtual_modifierlist(ob, &virtualModifierData);
CurveModifierData *cmd = NULL;
CurveModifierData *cmd = nullptr;
/* return the first selected curve, this lets us use multiple curves */
for (; md; md = md->next) {
@ -842,14 +843,14 @@ Object *BKE_modifiers_is_deformed_by_curve(Object *ob)
return cmd->object;
}
return NULL;
return nullptr;
}
bool BKE_modifiers_uses_multires(Object *ob)
{
VirtualModifierData virtualModifierData;
ModifierData *md = BKE_modifiers_get_virtual_modifierlist(ob, &virtualModifierData);
MultiresModifierData *mmd = NULL;
MultiresModifierData *mmd = nullptr;
for (; md; md = md->next) {
if (md->type == eModifierType_Multires) {
@ -881,8 +882,8 @@ bool BKE_modifiers_uses_armature(Object *ob, bArmature *arm)
bool BKE_modifier_is_correctable_deformed(ModifierData *md)
{
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
return mti->deformMatricesEM != NULL;
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
return mti->deformMatricesEM != nullptr;
}
bool BKE_modifiers_is_correctable_deformed(const struct Scene *scene, Object *ob)
@ -916,8 +917,6 @@ void BKE_modifier_free_temporary_data(ModifierData *md)
void BKE_modifiers_test_object(Object *ob)
{
ModifierData *md;
/* just multires checked for now, since only multires
* modifies mesh data */
@ -925,7 +924,7 @@ void BKE_modifiers_test_object(Object *ob)
return;
}
for (md = ob->modifiers.first; md; md = md->next) {
LISTBASE_FOREACH (ModifierData *, md, &ob->modifiers) {
if (md->type == eModifierType_Multires) {
MultiresModifierData *mmd = (MultiresModifierData *)md;
@ -992,7 +991,7 @@ struct Mesh *BKE_modifier_modify_mesh(ModifierData *md,
const ModifierEvalContext *ctx,
struct Mesh *me)
{
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
if (me->runtime.wrapper_type == ME_WRAPPER_TYPE_BMESH) {
if ((mti->flags & eModifierTypeFlag_AcceptsBMesh) == 0) {
@ -1012,7 +1011,7 @@ void BKE_modifier_deform_verts(ModifierData *md,
float (*vertexCos)[3],
int numVerts)
{
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
if (me && mti->dependsOnNormals && mti->dependsOnNormals(md)) {
modwrap_dependsOnNormals(me);
}
@ -1026,7 +1025,7 @@ void BKE_modifier_deform_vertsEM(ModifierData *md,
float (*vertexCos)[3],
int numVerts)
{
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
if (me && mti->dependsOnNormals && mti->dependsOnNormals(md)) {
modwrap_dependsOnNormals(me);
}
@ -1037,17 +1036,17 @@ void BKE_modifier_deform_vertsEM(ModifierData *md,
Mesh *BKE_modifier_get_evaluated_mesh_from_evaluated_object(Object *ob_eval)
{
Mesh *me = NULL;
Mesh *me = nullptr;
if ((ob_eval->type == OB_MESH) && (ob_eval->mode & OB_MODE_EDIT)) {
/* In EditMode, evaluated mesh is stored in BMEditMesh, not the object... */
BMEditMesh *em = BKE_editmesh_from_object(ob_eval);
/* 'em' might not exist yet in some cases, just after loading a .blend file, see T57878. */
if (em != NULL) {
if (em != nullptr) {
me = BKE_object_get_editmesh_eval_final(ob_eval);
}
}
if (me == NULL) {
if (me == nullptr) {
me = BKE_object_get_evaluated_mesh(ob_eval);
}
@ -1083,7 +1082,7 @@ void BKE_modifier_check_uuids_unique_and_report(const Object *object)
continue;
}
if (BLI_gset_lookup(used_uuids, session_uuid) != NULL) {
if (BLI_gset_lookup(used_uuids, session_uuid) != nullptr) {
printf("Modifier %s -> %s has duplicate UUID generated.\n", object->id.name + 2, md->name);
continue;
}
@ -1091,23 +1090,23 @@ void BKE_modifier_check_uuids_unique_and_report(const Object *object)
BLI_gset_insert(used_uuids, (void *)session_uuid);
}
BLI_gset_free(used_uuids, NULL);
BLI_gset_free(used_uuids, nullptr);
}
void BKE_modifier_blend_write(BlendWriter *writer, const ID *id_owner, ListBase *modbase)
{
if (modbase == NULL) {
if (modbase == nullptr) {
return;
}
LISTBASE_FOREACH (ModifierData *, md, modbase) {
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
if (mti == NULL) {
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
if (mti == nullptr) {
continue;
}
/* If the blendWrite callback is defined, it should handle the whole writing process. */
if (mti->blendWrite != NULL) {
if (mti->blendWrite != nullptr) {
mti->blendWrite(writer, id_owner, md);
continue;
}
@ -1144,7 +1143,7 @@ void BKE_modifier_blend_write(BlendWriter *writer, const ID *id_owner, ListBase
/* cleanup the fake pointcache */
BKE_ptcache_free_list(&fmd->domain->ptcaches[1]);
fmd->domain->point_cache[1] = NULL;
fmd->domain->point_cache[1] = nullptr;
BLO_write_struct(writer, EffectorWeights, fmd->domain->effector_weights);
}
@ -1230,8 +1229,8 @@ static ModifierData *modifier_replace_with_fluid(BlendDataReader *reader,
if (old_modifier_data->type == eModifierType_Fluidsim) {
FluidsimModifierData *old_fluidsim_modifier_data = (FluidsimModifierData *)old_modifier_data;
FluidsimSettings *old_fluidsim_settings = BLO_read_get_new_data_address(
reader, old_fluidsim_modifier_data->fss);
FluidsimSettings *old_fluidsim_settings = static_cast<FluidsimSettings *>(
BLO_read_get_new_data_address(reader, old_fluidsim_modifier_data->fss));
switch (old_fluidsim_settings->type) {
case OB_FLUIDSIM_ENABLE:
modifier_ensure_type(fluid_modifier_data, 0);
@ -1295,10 +1294,10 @@ static ModifierData *modifier_replace_with_fluid(BlendDataReader *reader,
/* Replace modifier data in the stack. */
new_modifier_data->next = old_modifier_data->next;
new_modifier_data->prev = old_modifier_data->prev;
if (new_modifier_data->prev != NULL) {
if (new_modifier_data->prev != nullptr) {
new_modifier_data->prev->next = new_modifier_data;
}
if (new_modifier_data->next != NULL) {
if (new_modifier_data->next != nullptr) {
new_modifier_data->next->prev = new_modifier_data;
}
if (modifiers->first == old_modifier_data) {
@ -1321,8 +1320,8 @@ void BKE_modifier_blend_read_data(BlendDataReader *reader, ListBase *lb, Object
LISTBASE_FOREACH (ModifierData *, md, lb) {
BKE_modifier_session_uuid_generate(md);
md->error = NULL;
md->runtime = NULL;
md->error = nullptr;
md->runtime = nullptr;
/* Modifier data has been allocated as a part of data migration process and
* no reading of nested fields from file is needed. */
@ -1349,10 +1348,10 @@ void BKE_modifier_blend_read_data(BlendDataReader *reader, ListBase *lb, Object
is_allocated = true;
}
const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type);
const ModifierTypeInfo *mti = BKE_modifier_get_info(ModifierType(md->type));
/* if modifiers disappear, or for upward compatibility */
if (mti == NULL) {
if (mti == nullptr) {
md->type = eModifierType_None;
}
@ -1362,8 +1361,8 @@ void BKE_modifier_blend_read_data(BlendDataReader *reader, ListBase *lb, Object
else if (md->type == eModifierType_Cloth) {
ClothModifierData *clmd = (ClothModifierData *)md;
clmd->clothObject = NULL;
clmd->hairdata = NULL;
clmd->clothObject = nullptr;
clmd->hairdata = nullptr;
BLO_read_data_address(reader, &clmd->sim_parms);
BLO_read_data_address(reader, &clmd->coll_parms);
@ -1380,40 +1379,40 @@ void BKE_modifier_blend_read_data(BlendDataReader *reader, ListBase *lb, Object
BLO_read_data_address(reader, &clmd->sim_parms->effector_weights);
if (!clmd->sim_parms->effector_weights) {
clmd->sim_parms->effector_weights = BKE_effector_add_weights(NULL);
clmd->sim_parms->effector_weights = BKE_effector_add_weights(nullptr);
}
}
clmd->solver_result = NULL;
clmd->solver_result = nullptr;
}
else if (md->type == eModifierType_Fluid) {
FluidModifierData *fmd = (FluidModifierData *)md;
if (fmd->type == MOD_FLUID_TYPE_DOMAIN) {
fmd->flow = NULL;
fmd->effector = NULL;
fmd->flow = nullptr;
fmd->effector = nullptr;
BLO_read_data_address(reader, &fmd->domain);
fmd->domain->fmd = fmd;
fmd->domain->fluid = NULL;
fmd->domain->fluid = nullptr;
fmd->domain->fluid_mutex = BLI_rw_mutex_alloc();
fmd->domain->tex_density = NULL;
fmd->domain->tex_color = NULL;
fmd->domain->tex_shadow = NULL;
fmd->domain->tex_flame = NULL;
fmd->domain->tex_flame_coba = NULL;
fmd->domain->tex_coba = NULL;
fmd->domain->tex_field = NULL;
fmd->domain->tex_velocity_x = NULL;
fmd->domain->tex_velocity_y = NULL;
fmd->domain->tex_velocity_z = NULL;
fmd->domain->tex_wt = NULL;
fmd->domain->tex_density = nullptr;
fmd->domain->tex_color = nullptr;
fmd->domain->tex_shadow = nullptr;
fmd->domain->tex_flame = nullptr;
fmd->domain->tex_flame_coba = nullptr;
fmd->domain->tex_coba = nullptr;
fmd->domain->tex_field = nullptr;
fmd->domain->tex_velocity_x = nullptr;
fmd->domain->tex_velocity_y = nullptr;
fmd->domain->tex_velocity_z = nullptr;
fmd->domain->tex_wt = nullptr;
BLO_read_data_address(reader, &fmd->domain->coba);
BLO_read_data_address(reader, &fmd->domain->effector_weights);
if (!fmd->domain->effector_weights) {
fmd->domain->effector_weights = BKE_effector_add_weights(NULL);
fmd->domain->effector_weights = BKE_effector_add_weights(nullptr);
}
BKE_ptcache_blend_read_data(
@ -1422,7 +1421,8 @@ void BKE_modifier_blend_read_data(BlendDataReader *reader, ListBase *lb, Object
/* Manta sim uses only one cache from now on, so store pointer convert */
if (fmd->domain->ptcaches[1].first || fmd->domain->point_cache[1]) {
if (fmd->domain->point_cache[1]) {
PointCache *cache = BLO_read_get_new_data_address(reader, fmd->domain->point_cache[1]);
PointCache *cache = static_cast<PointCache *>(
BLO_read_get_new_data_address(reader, fmd->domain->point_cache[1]));
if (cache->flag & PTCACHE_FAKE_SMOKE) {
/* Manta-sim/smoke was already saved in "new format" and this cache is a fake one. */
}
@ -1434,34 +1434,34 @@ void BKE_modifier_blend_read_data(BlendDataReader *reader, ListBase *lb, Object
BKE_ptcache_free(cache);
}
BLI_listbase_clear(&fmd->domain->ptcaches[1]);
fmd->domain->point_cache[1] = NULL;
fmd->domain->point_cache[1] = nullptr;
}
}
else if (fmd->type == MOD_FLUID_TYPE_FLOW) {
fmd->domain = NULL;
fmd->effector = NULL;
fmd->domain = nullptr;
fmd->effector = nullptr;
BLO_read_data_address(reader, &fmd->flow);
fmd->flow->fmd = fmd;
fmd->flow->mesh = NULL;
fmd->flow->verts_old = NULL;
fmd->flow->mesh = nullptr;
fmd->flow->verts_old = nullptr;
fmd->flow->numverts = 0;
BLO_read_data_address(reader, &fmd->flow->psys);
}
else if (fmd->type == MOD_FLUID_TYPE_EFFEC) {
fmd->flow = NULL;
fmd->domain = NULL;
fmd->flow = nullptr;
fmd->domain = nullptr;
BLO_read_data_address(reader, &fmd->effector);
if (fmd->effector) {
fmd->effector->fmd = fmd;
fmd->effector->verts_old = NULL;
fmd->effector->verts_old = nullptr;
fmd->effector->numverts = 0;
fmd->effector->mesh = NULL;
fmd->effector->mesh = nullptr;
}
else {
fmd->type = 0;
fmd->flow = NULL;
fmd->domain = NULL;
fmd->effector = NULL;
fmd->flow = nullptr;
fmd->domain = nullptr;
fmd->effector = nullptr;
}
}
}
@ -1478,12 +1478,12 @@ void BKE_modifier_blend_read_data(BlendDataReader *reader, ListBase *lb, Object
LISTBASE_FOREACH (DynamicPaintSurface *, surface, &pmd->canvas->surfaces) {
surface->canvas = pmd->canvas;
surface->data = NULL;
surface->data = nullptr;
BKE_ptcache_blend_read_data(reader, &(surface->ptcaches), &(surface->pointcache), 1);
BLO_read_data_address(reader, &surface->effector_weights);
if (surface->effector_weights == NULL) {
surface->effector_weights = BKE_effector_add_weights(NULL);
if (surface->effector_weights == nullptr) {
surface->effector_weights = BKE_effector_add_weights(nullptr);
}
}
}
@ -1497,7 +1497,7 @@ void BKE_modifier_blend_read_data(BlendDataReader *reader, ListBase *lb, Object
}
}
if ((mti != NULL) && (mti->blendRead != NULL)) {
if ((mti != nullptr) && (mti->blendRead != nullptr)) {
mti->blendRead(reader, md);
}
}

View File

@ -79,7 +79,7 @@ extern ModifierTypeInfo modifierType_VolumeToMesh;
/* MOD_util.c */
/**
* Only called by `BKE_modifier.h/modifier.c`
* Only called by `BKE_modifier.h/modifier.cc`
*/
void modifier_type_init(ModifierTypeInfo *types[]);