From 7f24972911754b714bbcb1899db1da78159fe7de Mon Sep 17 00:00:00 2001 From: Hans Goudey Date: Wed, 20 Dec 2023 13:16:41 -0500 Subject: [PATCH] Cleanup: Use accessor functions for point cloud positions --- .../blender/editors/object/object_transform.cc | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/source/blender/editors/object/object_transform.cc b/source/blender/editors/object/object_transform.cc index eb8a8f38e6d..0e3cd5f3c0d 100644 --- a/source/blender/editors/object/object_transform.cc +++ b/source/blender/editors/object/object_transform.cc @@ -958,11 +958,8 @@ static int apply_objects_internal(bContext *C, } else if (ob->type == OB_POINTCLOUD) { PointCloud &pointcloud = *static_cast(ob->data); - bke::MutableAttributeAccessor attributes = pointcloud.attributes_for_write(); - bke::SpanAttributeWriter position = attributes.lookup_or_add_for_write_span( - "position", bke::AttrDomain::Point); - transform_positions(position.span, float4x4(mat)); - position.finish(); + transform_positions(pointcloud.positions_for_write(), float4x4(mat)); + pointcloud.tag_positions_changed(); } else if (ob->type == OB_CAMERA) { MovieClip *clip = BKE_object_movieclip_get(scene, ob, false); @@ -1721,9 +1718,7 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) } else if (ob->type == OB_POINTCLOUD) { PointCloud &pointcloud = *static_cast(ob->data); - bke::MutableAttributeAccessor attributes = pointcloud.attributes_for_write(); - bke::SpanAttributeWriter positions = attributes.lookup_or_add_for_write_span( - "position", bke::AttrDomain::Point); + MutableSpan positions = pointcloud.positions_for_write(); if (ELEM(centermode, ORIGIN_TO_CENTER_OF_MASS_SURFACE, ORIGIN_TO_CENTER_OF_MASS_VOLUME) || !ELEM(around, V3D_AROUND_CENTER_BOUNDS, V3D_AROUND_CENTER_MEDIAN)) { @@ -1742,12 +1737,12 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) } } else if (around == V3D_AROUND_CENTER_MEDIAN) { - cent = arithmetic_mean(positions.span); + cent = arithmetic_mean(positions); } tot_change++; - translate_positions(positions.span, -cent); - positions.finish(); + translate_positions(positions, -cent); + pointcloud.tag_positions_changed(); pointcloud.id.tag |= LIB_TAG_DOIT; do_inverse_offset = true; }