[Bf-blender-cvs] [8ac6bb57380] refactor-mesh-bevel-weight-generic: Fix python API
Hans Goudey
noreply at git.blender.org
Tue Aug 2 18:47:22 CEST 2022
Commit: 8ac6bb573804b2addac67af6da137140b080e2ec
Author: Hans Goudey
Date: Tue Aug 2 11:35:50 2022 -0500
Branches: refactor-mesh-bevel-weight-generic
https://developer.blender.org/rB8ac6bb573804b2addac67af6da137140b080e2ec
Fix python API
===================================================================
M source/blender/makesrna/intern/rna_mesh.c
===================================================================
diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c
index ae42fa927dc..c2107462169 100644
--- a/source/blender/makesrna/intern/rna_mesh.c
+++ b/source/blender/makesrna/intern/rna_mesh.c
@@ -352,6 +352,9 @@ static void rna_Mesh_update_positions_tag(Main *bmain, Scene *scene, PointerRNA
/** \name Property get/set Callbacks
* \{ */
+static int rna_MeshVertex_index_get(PointerRNA *ptr);
+static int rna_MeshEdge_index_get(PointerRNA *ptr);
+
static void rna_MeshVertex_normal_get(PointerRNA *ptr, float *value)
{
Mesh *mesh = rna_mesh(ptr);
@@ -367,33 +370,33 @@ static void rna_MeshVertex_normal_get(PointerRNA *ptr, float *value)
static float rna_MeshVertex_bevel_weight_get(PointerRNA *ptr)
{
const Mesh *mesh = rna_mesh(ptr);
- const MVert *vert = (const MVert *)ptr->data;
+ const int index = rna_MeshVertex_index_get(ptr);
const float *values = CustomData_get_layer(&mesh->vdata, CD_BWEIGHT);
- return values[vert - mesh->mvert];
+ return values == NULL ? 0.0f : values[index];
}
static void rna_MeshVertex_bevel_weight_set(PointerRNA *ptr, float value)
{
- const Mesh *mesh = rna_mesh(ptr);
- MVert *vert = (MVert *)ptr->data;
- float *values = CustomData_get_layer(&mesh->vdata, CD_BWEIGHT);
- values[vert - mesh->mvert] = clamp_f(value, 0.0f, 1.0f);
+ Mesh *mesh = rna_mesh(ptr);
+ const int index = rna_MeshVertex_index_get(ptr);
+ float *values = CustomData_add_layer(&mesh->vdata, CD_BWEIGHT, CD_CALLOC, NULL, mesh->totvert);
+ values[index] = clamp_f(value, 0.0f, 1.0f);
}
static float rna_MEdge_bevel_weight_get(PointerRNA *ptr)
{
const Mesh *mesh = rna_mesh(ptr);
- const MEdge *edge = (const MEdge *)ptr->data;
+ const int index = rna_MeshEdge_index_get(ptr);
const float *values = CustomData_get_layer(&mesh->edata, CD_BWEIGHT);
- return values[edge - mesh->medge];
+ return values == NULL ? 0.0f : values[index];
}
static void rna_MEdge_bevel_weight_set(PointerRNA *ptr, float value)
{
Mesh *mesh = rna_mesh(ptr);
- const MEdge *edge = (const MEdge *)ptr->data;
- float *values = CustomData_get_layer(&mesh->edata, CD_BWEIGHT);
- values[edge - mesh->medge] = clamp_f(value, 0.0f, 1.0f);
+ const int index = rna_MeshEdge_index_get(ptr);
+ float *values = CustomData_add_layer(&mesh->edata, CD_BWEIGHT, CD_CALLOC, NULL, mesh->totedge);
+ values[index] = clamp_f(value, 0.0f, 1.0f);
}
static float rna_MEdge_crease_get(PointerRNA *ptr)
More information about the Bf-blender-cvs
mailing list