[Bf-blender-cvs] [7ea1b5a5e45] refactor-mesh-corners-generic: Merge branch 'master' into refactor-mesh-corners-generic
Hans Goudey
noreply at git.blender.org
Thu Jan 26 23:10:24 CET 2023
Commit: 7ea1b5a5e453ecde1eceb6010f7bd5cde4dc825a
Author: Hans Goudey
Date: Thu Jan 26 15:52:23 2023 -0600
Branches: refactor-mesh-corners-generic
https://developer.blender.org/rB7ea1b5a5e453ecde1eceb6010f7bd5cde4dc825a
Merge branch 'master' into refactor-mesh-corners-generic
===================================================================
===================================================================
diff --cc source/blender/blenkernel/intern/cdderivedmesh.cc
index 720c78d283e,9cf5f7ecedf..580cd6966d8
--- a/source/blender/blenkernel/intern/cdderivedmesh.cc
+++ b/source/blender/blenkernel/intern/cdderivedmesh.cc
@@@ -234,12 -223,12 +231,14 @@@ static DerivedMesh *cdDM_from_mesh_ex(M
/* Though this may be an unnecessary calculation, simply retrieving the layer may return nothing
* or dirty normals. */
cddm->vert_normals = BKE_mesh_vertex_normals_ensure(mesh);
- cddm->medge = CustomData_get_layer_for_write(&dm->edgeData, CD_MEDGE, mesh->totedge);
- cddm->corner_verts = CustomData_get_layer_named_for_write(
- &dm->loopData, CD_PROP_INT32, ".corner_vert", mesh->totloop);
- cddm->corner_edges = CustomData_get_layer_named_for_write(
- &dm->loopData, CD_PROP_INT32, ".corner_edge", mesh->totloop);
- cddm->mpoly = CustomData_get_layer_for_write(&dm->polyData, CD_MPOLY, mesh->totpoly);
+ cddm->medge = static_cast<MEdge *>(
+ CustomData_get_layer_for_write(&dm->edgeData, CD_MEDGE, mesh->totedge));
- cddm->mloop = static_cast<MLoop *>(
- CustomData_get_layer_for_write(&dm->loopData, CD_MLOOP, mesh->totloop));
++ cddm->corner_verts = static_cast<int *>(CustomData_get_layer_named_for_write(
++ &dm->loopData, CD_PROP_INT32, ".corner_vert", mesh->totloop));
++ cddm->corner_edges = static_cast<int *>(CustomData_get_layer_named_for_write(
++ &dm->loopData, CD_PROP_INT32, ".corner_edge", mesh->totloop));
+ cddm->mpoly = static_cast<MPoly *>(
+ CustomData_get_layer_for_write(&dm->polyData, CD_MPOLY, mesh->totpoly));
#if 0
cddm->mface = CustomData_get_layer(&dm->faceData, CD_MFACE);
#else
diff --cc source/blender/blenkernel/intern/deform.cc
index 103f5afdb98,dda4d098126..988a757b126
--- a/source/blender/blenkernel/intern/deform.cc
+++ b/source/blender/blenkernel/intern/deform.cc
@@@ -1106,8 -1103,8 +1101,8 @@@ void BKE_defvert_extract_vgroup_to_loop
void BKE_defvert_extract_vgroup_to_polyweights(const MDeformVert *dvert,
const int defgroup,
const int verts_num,
- const MLoop *loops,
+ const int *corner_verts,
- const int UNUSED(loops_num),
+ const int /*loops_num*/,
const MPoly *polys,
const int polys_num,
const bool invert_vgroup,
@@@ -1126,10 -1124,10 +1122,10 @@@
int j = mp->totloop;
float w = 0.0f;
- for (; j--; ml++) {
- w += tmp_weights[ml->v];
+ for (; j--; corner_vert++) {
+ w += tmp_weights[*corner_vert];
}
- r_weights[i] = w / (float)mp->totloop;
+ r_weights[i] = w / float(mp->totloop);
}
MEM_freeN(tmp_weights);
diff --cc source/blender/blenkernel/intern/dynamicpaint.cc
index 79a8db6648b,9b30d34aabb..f4a8a2baf2f
--- a/source/blender/blenkernel/intern/dynamicpaint.cc
+++ b/source/blender/blenkernel/intern/dynamicpaint.cc
@@@ -1464,10 -1476,10 +1476,10 @@@ static void dynamicPaint_initAdjacencyD
MEM_freeN(temp_data);
}
- typedef struct DynamicPaintSetInitColorData {
+ struct DynamicPaintSetInitColorData {
const DynamicPaintSurface *surface;
- const MLoop *mloop;
+ const int *corner_verts;
const float (*mloopuv)[2];
const MLoopTri *mlooptri;
const MLoopCol *mloopcol;
@@@ -1484,10 -1497,10 +1497,10 @@@ static void dynamic_paint_set_init_colo
const PaintSurfaceData *sData = data->surface->data;
PaintPoint *pPoint = (PaintPoint *)sData->type_data;
- const MLoop *mloop = data->mloop;
+ const int *corner_verts = data->corner_verts;
const MLoopTri *mlooptri = data->mlooptri;
const float(*mloopuv)[2] = data->mloopuv;
- struct ImagePool *pool = data->pool;
+ ImagePool *pool = data->pool;
Tex *tex = data->surface->init_texture;
const bool scene_color_manage = data->scene_color_manage;
@@@ -1627,14 -1642,14 +1642,14 @@@ static void dynamicPaint_setInitialColo
if (surface->format == MOD_DPAINT_SURFACE_F_VERTEX) {
struct ImagePool *pool = BKE_image_pool_new();
- DynamicPaintSetInitColorData data = {
- .surface = surface,
- .corner_verts = corner_verts,
- .mlooptri = mlooptri,
- .mloopuv = mloopuv,
- .pool = pool,
- .scene_color_manage = scene_color_manage,
- };
+ DynamicPaintSetInitColorData data{};
+ data.surface = surface;
- data.mloop = mloop;
++ data.corner_verts = corner_verts;
+ data.mlooptri = mlooptri;
+ data.mloopuv = mloopuv;
+ data.pool = pool;
+ data.scene_color_manage = scene_color_manage;
+
TaskParallelSettings settings;
BLI_parallel_range_settings_defaults(&settings);
settings.use_threading = (tottri > 1000);
@@@ -1661,10 -1676,10 +1676,10 @@@
/* For vertex surface, just copy colors from #MLoopCol. */
if (surface->format == MOD_DPAINT_SURFACE_F_VERTEX) {
- const MLoop *mloop = BKE_mesh_loops(mesh);
+ const int *corner_verts = BKE_mesh_corner_verts(mesh);
const int totloop = mesh->totloop;
- const MLoopCol *col = CustomData_get_layer_named(
- &mesh->ldata, CD_PROP_BYTE_COLOR, surface->init_layername);
+ const MLoopCol *col = static_cast<const MLoopCol *>(
+ CustomData_get_layer_named(&mesh->ldata, CD_PROP_BYTE_COLOR, surface->init_layername));
if (!col) {
return;
}
@@@ -1838,11 -1856,12 +1856,12 @@@ static void dynamic_paint_apply_surface
static void dynamic_paint_apply_surface_vpaint_cb(void *__restrict userdata,
const int p_index,
- const TaskParallelTLS *__restrict UNUSED(tls))
+ const TaskParallelTLS *__restrict /*tls*/)
{
- const DynamicPaintModifierApplyData *data = userdata;
+ const DynamicPaintModifierApplyData *data = static_cast<DynamicPaintModifierApplyData *>(
+ userdata);
- const MLoop *mloop = data->mloop;
+ const int *corner_verts = data->corner_verts;
const MPoly *mpoly = data->mpoly;
const DynamicPaintSurface *surface = data->surface;
@@@ -2181,8 -2197,8 +2197,8 @@@ struct DynamicPaintCreateUVSurfaceData
const MLoopTri *mlooptri;
const float (*mloopuv)[2];
- const MLoop *mloop;
+ const int *corner_verts;
- const int tottri;
+ int tottri;
const Bounds2D *faceBB;
uint32_t *active_points;
@@@ -2797,12 -2819,13 +2819,12 @@@ int dynamicPaint_createUVSurface(Scene
DynamicPaintCanvasSettings *canvas = surface->canvas;
Mesh *mesh = dynamicPaint_canvas_mesh_get(canvas);
- PaintUVPoint *tempPoints = NULL;
- Vec3f *tempWeights = NULL;
- const MLoopTri *mlooptri = NULL;
- const float(*mloopuv)[2] = NULL;
+ PaintUVPoint *tempPoints = nullptr;
+ Vec3f *tempWeights = nullptr;
+ const MLoopTri *mlooptri = nullptr;
+ const float(*mloopuv)[2] = nullptr;
- const MLoop *mloop = nullptr;
- Bounds2D *faceBB = NULL;
+ Bounds2D *faceBB = nullptr;
int *final_index;
*progress = 0.0f;
@@@ -2893,16 -2920,16 +2919,16 @@@
*do_update = true;
/* Loop through every pixel and check if pixel is uv-mapped on a canvas face. */
- DynamicPaintCreateUVSurfaceData data = {
- .surface = surface,
- .tempPoints = tempPoints,
- .tempWeights = tempWeights,
- .mlooptri = mlooptri,
- .mloopuv = mloopuv,
- .corner_verts = corner_verts,
- .tottri = tottri,
- .faceBB = faceBB,
- };
+ DynamicPaintCreateUVSurfaceData data{};
+ data.surface = surface;
+ data.tempPoints = tempPoints;
+ data.tempWeights = tempWeights;
+ data.mlooptri = mlooptri;
+ data.mloopuv = mloopuv;
- data.mloop = mloop;
++ data.corner_verts = corner_verts;
+ data.tottri = tottri;
+ data.faceBB = faceBB;
+
{
TaskParallelSettings settings;
BLI_parallel_range_settings_defaults(&settings);
@@@ -3879,9 -3915,9 +3914,9 @@@ struct DynamicPaintPaintData
Mesh *mesh;
const float (*positions)[3];
- const MLoop *mloop;
+ const int *corner_verts;
const MLoopTri *mlooptri;
- const float brush_radius;
+ float brush_radius;
const float *avg_brushNor;
const Vec3f *brushVelocity;
@@@ -4235,9 -4272,10 +4271,9 @@@ static bool dynamicPaint_paintMesh(Deps
{
PaintSurfaceData *sData = surface->data;
PaintBakeData *bData = sData->bData;
- Mesh *mesh = NULL;
- Vec3f *brushVelocity = NULL;
- const MLoopTri *mlooptri = NULL;
+ Mesh *mesh = nullptr;
+ Vec3f *brushVelocity = nullptr;
+ const MLoopTri *mlooptri = nullptr;
- const MLoop *mloop = nullptr;
if (brush->flags & MOD_DPAINT_USES_VELOCITY) {
dynamicPaint_brushMeshCalculateVelocity(
@@@ -4307,22 -4345,22 +4343,22 @@@
}
/* loop through cell points and process brush */
- DynamicPaintPaintData data = {
- .surface = surface,
- .brush = brush,
- .brushOb = brushOb,
- .scene = scene,
- .timescale = timescale,
- .c_index = c_index,
- .mesh = mesh,
- .positions = positions,
- .corner_verts = corner_verts,
- .mlooptri = mlooptri,
- .brush_radius = brush_radius,
- .avg_brushNor = avg_brushNor,
- .brushVelocity = brushVelocity,
- .treeData = &treeData,
- };
+ DynamicPaintPaintData data{};
+ data.surface = surface;
+ data.brush = brush;
+ data.brushOb = brushOb;
+ data.scene = scene;
+ data.timescale = timescale;
+ data.c_index = c_index;
+ data.mesh = mesh;
+ data.positions = positions;
-
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list