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. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs