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:
authorCampbell Barton <ideasman42@gmail.com>2020-06-12 07:29:59 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-06-12 07:39:49 +0300
commitf79856f9fb12d47d08e14a1e0edaee9e638362c0 (patch)
treee9dd1186517eec1289cef9fb1376fe2b29b9fb0e
parent24d39620fb7299590220af8ea3cb4d61fdb0c9a2 (diff)
Cleanup: minor changes to deform functions
- Use 'float (*)[3]' to avoid casts. - Remove unnecessary float[3] copy in gpencil_deform_verts. - Use MEM_SAFE_FREE - Use const arguments.
-rw-r--r--source/blender/blenkernel/BKE_mesh_wrapper.h2
-rw-r--r--source/blender/blenkernel/intern/armature.c4
-rw-r--r--source/blender/blenkernel/intern/mesh_wrapper.c4
-rw-r--r--source/blender/blenkernel/intern/modifier.c5
-rw-r--r--source/blender/blenloader/intern/readfile.c2
-rw-r--r--source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c16
-rw-r--r--source/blender/makesdna/DNA_gpencil_modifier_types.h6
-rw-r--r--source/blender/makesdna/DNA_modifier_types.h6
-rw-r--r--source/blender/modifiers/intern/MOD_armature.c16
-rw-r--r--source/blender/modifiers/intern/MOD_util.c8
-rw-r--r--source/blender/modifiers/intern/MOD_util.h4
11 files changed, 30 insertions, 43 deletions
diff --git a/source/blender/blenkernel/BKE_mesh_wrapper.h b/source/blender/blenkernel/BKE_mesh_wrapper.h
index ec6a1e3457c..00e2dd08726 100644
--- a/source/blender/blenkernel/BKE_mesh_wrapper.h
+++ b/source/blender/blenkernel/BKE_mesh_wrapper.h
@@ -31,7 +31,7 @@ extern "C" {
struct Mesh *BKE_mesh_wrapper_from_editmesh_with_coords(
struct BMEditMesh *em,
const struct CustomData_MeshMasks *cd_mask_extra,
- float (*vertexCos)[3],
+ const float (*vert_coords)[3],
const struct Mesh *me_settings);
struct Mesh *BKE_mesh_wrapper_from_editmesh(struct BMEditMesh *em,
const struct CustomData_MeshMasks *cd_mask_extra,
diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c
index becb78bd6fe..1d9a2424ef8 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -1566,7 +1566,7 @@ static void armature_vert_task(void *__restrict userdata,
dq = &sumdq;
}
else {
- sumvec[0] = sumvec[1] = sumvec[2] = 0.0f;
+ zero_v3(sumvec);
vec = sumvec;
if (vert_deform_mats) {
@@ -1622,7 +1622,7 @@ static void armature_vert_task(void *__restrict userdata,
mul_m4_v3(data->premat, co);
if (use_dverts && dvert && dvert->totweight) { /* use weight groups ? */
- MDeformWeight *dw = dvert->dw;
+ const MDeformWeight *dw = dvert->dw;
int deformed = 0;
unsigned int j;
for (j = dvert->totweight; j != 0; j--, dw++) {
diff --git a/source/blender/blenkernel/intern/mesh_wrapper.c b/source/blender/blenkernel/intern/mesh_wrapper.c
index 98b77256ad7..6a8bc698b11 100644
--- a/source/blender/blenkernel/intern/mesh_wrapper.c
+++ b/source/blender/blenkernel/intern/mesh_wrapper.c
@@ -53,7 +53,7 @@
Mesh *BKE_mesh_wrapper_from_editmesh_with_coords(BMEditMesh *em,
const CustomData_MeshMasks *cd_mask_extra,
- float (*vertexCos)[3],
+ const float (*vert_coords)[3],
const Mesh *me_settings)
{
Mesh *me = BKE_id_new_nomain(ID_ME, NULL);
@@ -83,7 +83,7 @@ Mesh *BKE_mesh_wrapper_from_editmesh_with_coords(BMEditMesh *em,
#endif
EditMeshData *edit_data = me->runtime.edit_data;
- edit_data->vertexCos = vertexCos;
+ edit_data->vertexCos = vert_coords;
return me;
}
diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c
index d4b7d05c228..7c77746ea1c 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -878,10 +878,7 @@ void BKE_modifier_free_temporary_data(ModifierData *md)
if (md->type == eModifierType_Armature) {
ArmatureModifierData *amd = (ArmatureModifierData *)md;
- if (amd->prevCos) {
- MEM_freeN(amd->prevCos);
- amd->prevCos = NULL;
- }
+ MEM_SAFE_FREE(amd->vert_coords_prev);
}
}
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 79705385538..cc53af2b4ff 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -5595,7 +5595,7 @@ static void direct_link_modifiers(BlendDataReader *reader, ListBase *lb, Object
else if (md->type == eModifierType_Armature) {
ArmatureModifierData *amd = (ArmatureModifierData *)md;
- amd->prevCos = NULL;
+ amd->vert_coords_prev = NULL;
}
else if (md->type == eModifierType_Cloth) {
ClothModifierData *clmd = (ClothModifierData *)md;
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c
index 8e7fe872358..fde5ebcff8d 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c
@@ -69,38 +69,34 @@ static void copyData(const GpencilModifierData *md, GpencilModifierData *target)
static void gpencil_deform_verts(ArmatureGpencilModifierData *mmd, Object *target, bGPDstroke *gps)
{
bGPDspoint *pt = gps->points;
- float *all_vert_coords = MEM_callocN(sizeof(float) * 3 * gps->totpoints, __func__);
+ float(*vert_coords)[3] = MEM_mallocN(sizeof(float[3]) * gps->totpoints, __func__);
int i;
BKE_gpencil_dvert_ensure(gps);
/* prepare array of points */
for (i = 0; i < gps->totpoints; i++, pt++) {
- float *pt_coords = &all_vert_coords[3 * i];
- float co[3];
- copy_v3_v3(co, &pt->x);
- copy_v3_v3(pt_coords, co);
+ copy_v3_v3(vert_coords[i], &pt->x);
}
/* deform verts */
BKE_armature_deform_coords_with_gpencil_stroke(mmd->object,
target,
- (float(*)[3])all_vert_coords,
+ vert_coords,
NULL,
gps->totpoints,
mmd->deformflag,
- (float(*)[3])mmd->prevCos,
+ mmd->vert_coords_prev,
mmd->vgname,
gps);
/* Apply deformed coordinates */
pt = gps->points;
for (i = 0; i < gps->totpoints; i++, pt++) {
- float *pt_coords = &all_vert_coords[3 * i];
- copy_v3_v3(&pt->x, pt_coords);
+ copy_v3_v3(&pt->x, vert_coords[i]);
}
- MEM_SAFE_FREE(all_vert_coords);
+ MEM_freeN(vert_coords);
}
/* deform stroke */
diff --git a/source/blender/makesdna/DNA_gpencil_modifier_types.h b/source/blender/makesdna/DNA_gpencil_modifier_types.h
index 125423cd061..ea1c0f1fda0 100644
--- a/source/blender/makesdna/DNA_gpencil_modifier_types.h
+++ b/source/blender/makesdna/DNA_gpencil_modifier_types.h
@@ -655,12 +655,12 @@ typedef enum eSmoothGpencil_Flag {
typedef struct ArmatureGpencilModifierData {
GpencilModifierData modifier;
- /** Deformflag replaces armature->deformflag. */
+ /** #eArmature_DeformFlag use instead of #bArmature.deformflag. */
short deformflag, multi;
int _pad;
struct Object *object;
- /** Stored input of previous modifier, for vertexgroup blending. */
- float *prevCos;
+ /** Stored input of previous modifier, for vertex-group blending. */
+ float (*vert_coords_prev)[3];
/** MAX_VGROUP_NAME. */
char vgname[64];
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index a2b96ac2772..1413db4baea 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -693,12 +693,12 @@ enum {
typedef struct ArmatureModifierData {
ModifierData modifier;
- /** Deformflag replaces armature->deformflag. */
+ /** #eArmature_DeformFlag use instead of #bArmature.deformflag. */
short deformflag, multi;
char _pad2[4];
struct Object *object;
- /** Stored input of previous modifier, for vertexgroup blending. */
- float *prevCos;
+ /** Stored input of previous modifier, for vertex-group blending. */
+ float (*vert_coords_prev)[3];
/** MAX_VGROUP_NAME. */
char defgrp_name[64];
} ArmatureModifierData;
diff --git a/source/blender/modifiers/intern/MOD_armature.c b/source/blender/modifiers/intern/MOD_armature.c
index 214c6dbe9dc..800de546a5a 100644
--- a/source/blender/modifiers/intern/MOD_armature.c
+++ b/source/blender/modifiers/intern/MOD_armature.c
@@ -74,7 +74,7 @@ static void copyData(const ModifierData *md, ModifierData *target, const int fla
ArmatureModifierData *tamd = (ArmatureModifierData *)target;
BKE_modifier_copydata_generic(md, target, flag);
- tamd->prevCos = NULL;
+ tamd->vert_coords_prev = NULL;
}
static void requiredDataMask(Object *UNUSED(ob),
@@ -152,15 +152,12 @@ static void deformVerts(ModifierData *md,
NULL,
numVerts,
amd->deformflag,
- (float(*)[3])amd->prevCos,
+ amd->vert_coords_prev,
amd->defgrp_name,
mesh);
/* free cache */
- if (amd->prevCos) {
- MEM_freeN(amd->prevCos);
- amd->prevCos = NULL;
- }
+ MEM_SAFE_FREE(amd->vert_coords_prev);
}
static void deformVertsEM(ModifierData *md,
@@ -186,15 +183,12 @@ static void deformVertsEM(ModifierData *md,
NULL,
numVerts,
amd->deformflag,
- (float(*)[3])amd->prevCos,
+ amd->vert_coords_prev,
amd->defgrp_name,
mesh_src);
/* free cache */
- if (amd->prevCos) {
- MEM_freeN(amd->prevCos);
- amd->prevCos = NULL;
- }
+ MEM_SAFE_FREE(amd->vert_coords_prev);
if (mesh_src != mesh) {
BKE_id_free(NULL, mesh_src);
diff --git a/source/blender/modifiers/intern/MOD_util.c b/source/blender/modifiers/intern/MOD_util.c
index 1aee545aa43..c6dff375109 100644
--- a/source/blender/modifiers/intern/MOD_util.c
+++ b/source/blender/modifiers/intern/MOD_util.c
@@ -169,12 +169,12 @@ void MOD_get_texture_coords(MappingInfoModifierData *dmd,
}
}
-void MOD_previous_vcos_store(ModifierData *md, float (*vertexCos)[3])
+void MOD_previous_vcos_store(ModifierData *md, const float (*vert_coords)[3])
{
while ((md = md->next) && md->type == eModifierType_Armature) {
ArmatureModifierData *amd = (ArmatureModifierData *)md;
- if (amd->multi && amd->prevCos == NULL) {
- amd->prevCos = MEM_dupallocN(vertexCos);
+ if (amd->multi && amd->vert_coords_prev == NULL) {
+ amd->vert_coords_prev = MEM_dupallocN(vert_coords);
}
else {
break;
@@ -187,7 +187,7 @@ void MOD_previous_vcos_store(ModifierData *md, float (*vertexCos)[3])
Mesh *MOD_deform_mesh_eval_get(Object *ob,
struct BMEditMesh *em,
Mesh *mesh,
- float (*vertexCos)[3],
+ const float (*vertexCos)[3],
const int num_verts,
const bool use_normals,
const bool use_orco)
diff --git a/source/blender/modifiers/intern/MOD_util.h b/source/blender/modifiers/intern/MOD_util.h
index 38e2083082d..a05e25d204c 100644
--- a/source/blender/modifiers/intern/MOD_util.h
+++ b/source/blender/modifiers/intern/MOD_util.h
@@ -40,12 +40,12 @@ void MOD_get_texture_coords(struct MappingInfoModifierData *dmd,
float (*cos)[3],
float (*r_texco)[3]);
-void MOD_previous_vcos_store(struct ModifierData *md, float (*vertexCos)[3]);
+void MOD_previous_vcos_store(struct ModifierData *md, const float (*vertexCos)[3]);
struct Mesh *MOD_deform_mesh_eval_get(struct Object *ob,
struct BMEditMesh *em,
struct Mesh *mesh,
- float (*vertexCos)[3],
+ const float (*vertexCos)[3],
const int num_verts,
const bool use_normals,
const bool use_orco);