Cleanup: Declare field context variables const

This commit is contained in:
Hans Goudey 2023-04-25 22:23:38 -04:00
parent 91020ccde1
commit 5727851d65
42 changed files with 64 additions and 69 deletions

View File

@ -422,7 +422,7 @@ bool try_capture_field_on_geometry(GeometryComponent &component,
return attributes.add(attribute_id, domain, data_type, AttributeInitConstruct{});
}
bke::GeometryFieldContext field_context{component, domain};
const bke::GeometryFieldContext field_context{component, domain};
const IndexMask mask{IndexMask(domain_size)};
const bke::AttributeValidator validator = attributes.lookup_validator(attribute_id);
@ -433,9 +433,9 @@ bool try_capture_field_on_geometry(GeometryComponent &component,
/* We are writing to an attribute that exists already with the correct domain and type. */
if (attribute_exists) {
if (GSpanAttributeWriter dst_attribute = attributes.lookup_for_write_span(attribute_id)) {
bke::GeometryFieldContext field_context{component, domain};
const IndexMask mask{IndexMask(domain_size)};
const bke::GeometryFieldContext field_context{component, domain};
fn::FieldEvaluator evaluator{field_context, &mask};
evaluator.add(validator.validate_field_if_necessary(field));
evaluator.set_selection(selection);

View File

@ -200,10 +200,8 @@ static void node_geo_exec(GeoNodeExecParams params)
continue;
}
if (attributes->domain_supported(domain)) {
bke::GeometryFieldContext field_context{*component, domain};
const int domain_num = attributes->domain_size(domain);
fn::FieldEvaluator data_evaluator{field_context, domain_num};
const bke::GeometryFieldContext field_context{*component, domain};
fn::FieldEvaluator data_evaluator{field_context, attributes->domain_size(domain)};
data_evaluator.add(input_field);
data_evaluator.set_selection(selection_field);
data_evaluator.evaluate();
@ -282,10 +280,8 @@ static void node_geo_exec(GeoNodeExecParams params)
continue;
}
if (attributes->domain_supported(domain)) {
bke::GeometryFieldContext field_context{*component, domain};
const int domain_num = attributes->domain_size(domain);
fn::FieldEvaluator data_evaluator{field_context, domain_num};
const bke::GeometryFieldContext field_context{*component, domain};
fn::FieldEvaluator data_evaluator{field_context, attributes->domain_size(domain)};
data_evaluator.add(input_field);
data_evaluator.set_selection(selection_field);
data_evaluator.evaluate();

View File

@ -53,7 +53,7 @@ class EndpointFieldInput final : public bke::CurvesFieldInput {
return {};
}
bke::CurvesFieldContext size_context{curves, ATTR_DOMAIN_CURVE};
const bke::CurvesFieldContext size_context{curves, ATTR_DOMAIN_CURVE};
fn::FieldEvaluator evaluator{size_context, curves.curves_num()};
evaluator.add(start_size_);
evaluator.add(end_size_);

View File

@ -77,7 +77,7 @@ static void node_geo_exec(GeoNodeExecParams params)
const Curves &curves_id = *geometry_set.get_curves_for_read();
const bke::CurvesGeometry &curves = curves_id.geometry.wrap();
bke::CurvesFieldContext context{curves, ATTR_DOMAIN_POINT};
const bke::CurvesFieldContext context{curves, ATTR_DOMAIN_POINT};
fn::FieldEvaluator evaluator{context, curves.points_num()};
evaluator.add(radius_field);

View File

@ -28,7 +28,7 @@ static void node_geo_exec(GeoNodeExecParams params)
const Curves &src_curves_id = *geometry_set.get_curves_for_read();
const bke::CurvesGeometry &src_curves = src_curves_id.geometry.wrap();
bke::CurvesFieldContext field_context{src_curves, ATTR_DOMAIN_CURVE};
const bke::CurvesFieldContext field_context{src_curves, ATTR_DOMAIN_CURVE};
fn::FieldEvaluator selection_evaluator{field_context, src_curves.curves_num()};
selection_evaluator.add(params.get_input<Field<bool>>("Selection"));
selection_evaluator.evaluate();

View File

@ -56,7 +56,7 @@ static void set_handle_type(bke::CurvesGeometry &curves,
const HandleType new_handle_type,
const Field<bool> &selection_field)
{
bke::CurvesFieldContext field_context{curves, ATTR_DOMAIN_POINT};
const bke::CurvesFieldContext field_context{curves, ATTR_DOMAIN_POINT};
fn::FieldEvaluator evaluator{field_context, curves.points_num()};
evaluator.set_selection(selection_field);
evaluator.evaluate();

View File

@ -51,7 +51,7 @@ static void node_geo_exec(GeoNodeExecParams params)
return;
}
bke::CurvesFieldContext field_context{src_curves, ATTR_DOMAIN_CURVE};
const bke::CurvesFieldContext field_context{src_curves, ATTR_DOMAIN_CURVE};
fn::FieldEvaluator evaluator{field_context, src_curves.curves_num()};
evaluator.set_selection(selection_field);
evaluator.evaluate();

View File

@ -39,7 +39,7 @@ static void node_geo_exec(GeoNodeExecParams params)
const Curves &src_curves_id = *geometry_set.get_curves_for_read();
const bke::CurvesGeometry &src_curves = src_curves_id.geometry.wrap();
bke::CurvesFieldContext field_context{src_curves, ATTR_DOMAIN_POINT};
const bke::CurvesFieldContext field_context{src_curves, ATTR_DOMAIN_POINT};
fn::FieldEvaluator evaluator{field_context, src_curves.points_num()};
evaluator.add(cuts_field);
evaluator.evaluate();

View File

@ -124,7 +124,7 @@ static void geometry_set_curve_trim(GeometrySet &geometry_set,
return;
}
bke::CurvesFieldContext field_context{src_curves, ATTR_DOMAIN_CURVE};
const bke::CurvesFieldContext field_context{src_curves, ATTR_DOMAIN_CURVE};
fn::FieldEvaluator evaluator{field_context, src_curves.curves_num()};
evaluator.add(selection_field);
evaluator.add(start_field);

View File

@ -304,7 +304,7 @@ static void delete_curves_selection(GeometrySet &geometry_set,
const bke::CurvesGeometry &src_curves = src_curves_id.geometry.wrap();
const int domain_size = src_curves.attributes().domain_size(selection_domain);
bke::CurvesFieldContext field_context{src_curves, selection_domain};
const bke::CurvesFieldContext field_context{src_curves, selection_domain};
fn::FieldEvaluator evaluator{field_context, domain_size};
evaluator.set_selection(selection_field);
evaluator.evaluate();
@ -336,7 +336,7 @@ static void separate_point_cloud_selection(
{
const PointCloud &src_pointcloud = *geometry_set.get_pointcloud_for_read();
bke::PointCloudFieldContext field_context{src_pointcloud};
const bke::PointCloudFieldContext field_context{src_pointcloud};
fn::FieldEvaluator evaluator{field_context, src_pointcloud.totpoint};
evaluator.set_selection(selection_field);
evaluator.evaluate();
@ -1088,7 +1088,7 @@ static void separate_mesh_selection(GeometrySet &geometry_set,
const AnonymousAttributePropagationInfo &propagation_info)
{
const Mesh &src_mesh = *geometry_set.get_mesh_for_read();
bke::MeshFieldContext field_context{src_mesh, selection_domain};
const bke::MeshFieldContext field_context{src_mesh, selection_domain};
fn::FieldEvaluator evaluator{field_context, src_mesh.attributes().domain_size(selection_domain)};
evaluator.add(selection_field);
evaluator.evaluate();

View File

@ -446,7 +446,7 @@ static Array<float> calc_full_density_factors_with_selection(const Mesh &mesh,
const int domain_size = mesh.attributes().domain_size(domain);
Array<float> densities(domain_size, 0.0f);
bke::MeshFieldContext field_context{mesh, domain};
const bke::MeshFieldContext field_context{mesh, domain};
fn::FieldEvaluator evaluator{field_context, domain_size};
evaluator.set_selection(selection_field);
evaluator.add_with_destination(density_field, densities.as_mutable_span());

View File

@ -305,7 +305,7 @@ static void duplicate_curves(GeometrySet &geometry_set,
const Curves &curves_id = *geometry_set.get_curves_for_read();
const bke::CurvesGeometry &curves = curves_id.geometry.wrap();
bke::CurvesFieldContext field_context{curves, ATTR_DOMAIN_CURVE};
const bke::CurvesFieldContext field_context{curves, ATTR_DOMAIN_CURVE};
FieldEvaluator evaluator{field_context, curves.curves_num()};
evaluator.add(count_field);
evaluator.set_selection(selection_field);
@ -491,7 +491,7 @@ static void duplicate_faces(GeometrySet &geometry_set,
const Span<int> corner_verts = mesh.corner_verts();
const Span<int> corner_edges = mesh.corner_edges();
bke::MeshFieldContext field_context{mesh, ATTR_DOMAIN_FACE};
const bke::MeshFieldContext field_context{mesh, ATTR_DOMAIN_FACE};
FieldEvaluator evaluator(field_context, polys.size());
evaluator.add(count_field);
evaluator.set_selection(selection_field);
@ -683,7 +683,7 @@ static void duplicate_edges(GeometrySet &geometry_set,
const Mesh &mesh = *geometry_set.get_mesh_for_read();
const Span<int2> edges = mesh.edges();
bke::MeshFieldContext field_context{mesh, ATTR_DOMAIN_EDGE};
const bke::MeshFieldContext field_context{mesh, ATTR_DOMAIN_EDGE};
FieldEvaluator evaluator{field_context, edges.size()};
evaluator.add(count_field);
evaluator.set_selection(selection_field);
@ -764,7 +764,7 @@ static void duplicate_points_curve(GeometrySet &geometry_set,
return;
}
bke::CurvesFieldContext field_context{src_curves, ATTR_DOMAIN_POINT};
const bke::CurvesFieldContext field_context{src_curves, ATTR_DOMAIN_POINT};
FieldEvaluator evaluator{field_context, src_curves.points_num()};
evaluator.add(count_field);
evaluator.set_selection(selection_field);
@ -844,7 +844,7 @@ static void duplicate_points_mesh(GeometrySet &geometry_set,
{
const Mesh &mesh = *geometry_set.get_mesh_for_read();
bke::MeshFieldContext field_context{mesh, ATTR_DOMAIN_POINT};
const bke::MeshFieldContext field_context{mesh, ATTR_DOMAIN_POINT};
FieldEvaluator evaluator{field_context, mesh.totvert};
evaluator.add(count_field);
evaluator.set_selection(selection_field);
@ -892,7 +892,7 @@ static void duplicate_points_pointcloud(GeometrySet &geometry_set,
{
const PointCloud &src_points = *geometry_set.get_pointcloud_for_read();
bke::PointCloudFieldContext field_context{src_points};
const bke::PointCloudFieldContext field_context{src_points};
FieldEvaluator evaluator{field_context, src_points.totpoint};
evaluator.add(count_field);
evaluator.set_selection(selection_field);

View File

@ -76,7 +76,7 @@ static void node_geo_exec(GeoNodeExecParams params)
return;
}
bke::MeshFieldContext context{*mesh, ATTR_DOMAIN_POINT};
const bke::MeshFieldContext context{*mesh, ATTR_DOMAIN_POINT};
fn::FieldEvaluator evaluator{context, mesh->totvert};
evaluator.add(params.get_input<Field<int>>("Next Vertex Index"));
evaluator.add(params.get_input<Field<bool>>("Start Vertices"));

View File

@ -71,7 +71,7 @@ class PathToEdgeSelectionFieldInput final : public bke::MeshFieldInput {
const eAttrDomain domain,
const IndexMask /*mask*/) const final
{
bke::MeshFieldContext context{mesh, ATTR_DOMAIN_POINT};
const bke::MeshFieldContext context{mesh, ATTR_DOMAIN_POINT};
fn::FieldEvaluator evaluator{context, mesh.totvert};
evaluator.add(next_vertex_);
evaluator.add(start_vertices_);

View File

@ -23,8 +23,7 @@ static void node_geo_exec(GeoNodeExecParams params)
geometry_set.modify_geometry_sets([&](GeometrySet &geometry_set) {
if (const Mesh *mesh = geometry_set.get_mesh_for_read()) {
bke::MeshFieldContext field_context{*mesh, ATTR_DOMAIN_EDGE};
const bke::MeshFieldContext field_context{*mesh, ATTR_DOMAIN_EDGE};
fn::FieldEvaluator selection_evaluator{field_context, mesh->totedge};
selection_evaluator.set_selection(selection_field);
selection_evaluator.evaluate();

View File

@ -25,7 +25,7 @@ static void mesh_flip_faces(Mesh &mesh, const Field<bool> &selection_field)
if (mesh.totpoly == 0) {
return;
}
bke::MeshFieldContext field_context{mesh, ATTR_DOMAIN_FACE};
const bke::MeshFieldContext field_context{mesh, ATTR_DOMAIN_FACE};
fn::FieldEvaluator evaluator{field_context, mesh.totpoly};
evaluator.add(selection_field);
evaluator.evaluate();

View File

@ -31,7 +31,7 @@ class HandlePositionFieldInput final : public bke::CurvesFieldInput {
const eAttrDomain domain,
const IndexMask mask) const final
{
bke::CurvesFieldContext field_context{curves, ATTR_DOMAIN_POINT};
const bke::CurvesFieldContext field_context{curves, ATTR_DOMAIN_POINT};
fn::FieldEvaluator evaluator(field_context, &mask);
evaluator.add(relative_);
evaluator.evaluate();

View File

@ -44,7 +44,7 @@ class PlanarFieldInput final : public bke::MeshFieldInput {
const Span<int> corner_verts = mesh.corner_verts();
const Span<float3> poly_normals = mesh.poly_normals();
bke::MeshFieldContext context{mesh, ATTR_DOMAIN_FACE};
const bke::MeshFieldContext context{mesh, ATTR_DOMAIN_FACE};
fn::FieldEvaluator evaluator{context, polys.size()};
evaluator.add(threshold_);
evaluator.evaluate();

View File

@ -99,13 +99,13 @@ class ShortestEdgePathsNextVertFieldInput final : public bke::MeshFieldInput {
const eAttrDomain domain,
const IndexMask /*mask*/) const final
{
bke::MeshFieldContext edge_context{mesh, ATTR_DOMAIN_EDGE};
const bke::MeshFieldContext edge_context{mesh, ATTR_DOMAIN_EDGE};
fn::FieldEvaluator edge_evaluator{edge_context, mesh.totedge};
edge_evaluator.add(cost_);
edge_evaluator.evaluate();
const VArray<float> input_cost = edge_evaluator.get_evaluated<float>(0);
bke::MeshFieldContext point_context{mesh, ATTR_DOMAIN_POINT};
const bke::MeshFieldContext point_context{mesh, ATTR_DOMAIN_POINT};
fn::FieldEvaluator point_evaluator{point_context, mesh.totvert};
point_evaluator.add(end_selection_);
point_evaluator.evaluate();
@ -174,13 +174,13 @@ class ShortestEdgePathsCostFieldInput final : public bke::MeshFieldInput {
const eAttrDomain domain,
const IndexMask /*mask*/) const final
{
bke::MeshFieldContext edge_context{mesh, ATTR_DOMAIN_EDGE};
const bke::MeshFieldContext edge_context{mesh, ATTR_DOMAIN_EDGE};
fn::FieldEvaluator edge_evaluator{edge_context, mesh.totedge};
edge_evaluator.add(cost_);
edge_evaluator.evaluate();
const VArray<float> input_cost = edge_evaluator.get_evaluated<float>(0);
bke::MeshFieldContext point_context{mesh, ATTR_DOMAIN_POINT};
const bke::MeshFieldContext point_context{mesh, ATTR_DOMAIN_POINT};
fn::FieldEvaluator point_evaluator{point_context, mesh.totvert};
point_evaluator.add(end_selection_);
point_evaluator.evaluate();

View File

@ -60,7 +60,7 @@ static void add_instances_from_component(
VArray<float3> rotations;
VArray<float3> scales;
bke::GeometryFieldContext field_context{src_component, domain};
const bke::GeometryFieldContext field_context{src_component, domain};
const Field<bool> selection_field = params.get_input<Field<bool>>("Selection");
fn::FieldEvaluator evaluator{field_context, domain_num};
evaluator.set_selection(selection_field);

View File

@ -793,7 +793,7 @@ static void node_geo_exec(GeoNodeExecParams params)
const Curves &guide_curves_id = *guide_curves_geometry.get_curves_for_read();
bke::CurvesFieldContext curves_context{guide_curves_id.geometry.wrap(), ATTR_DOMAIN_CURVE};
const bke::CurvesFieldContext curves_context{guide_curves_id.geometry.wrap(), ATTR_DOMAIN_CURVE};
fn::FieldEvaluator curves_evaluator{curves_context, guide_curves_id.geometry.curve_num};
curves_evaluator.add(guides_up_field);
curves_evaluator.add(guide_group_field);
@ -801,7 +801,7 @@ static void node_geo_exec(GeoNodeExecParams params)
const VArray<float3> guides_up = curves_evaluator.get_evaluated<float3>(0);
const VArray<int> guide_group_ids = curves_evaluator.get_evaluated<int>(1);
bke::GeometryFieldContext points_context(*points_component, ATTR_DOMAIN_POINT);
const bke::GeometryFieldContext points_context(*points_component, ATTR_DOMAIN_POINT);
fn::FieldEvaluator points_evaluator{points_context,
points_component->attribute_domain_size(ATTR_DOMAIN_POINT)};
points_evaluator.add(points_up_field);

View File

@ -44,7 +44,7 @@ static PointCloud *pointcloud_merge_by_distance(
const Field<bool> &selection_field,
const AnonymousAttributePropagationInfo &propagation_info)
{
bke::PointCloudFieldContext context{src_points};
const bke::PointCloudFieldContext context{src_points};
FieldEvaluator evaluator{context, src_points.totpoint};
evaluator.add(selection_field);
evaluator.evaluate();
@ -63,7 +63,7 @@ static std::optional<Mesh *> mesh_merge_by_distance_connected(const Mesh &mesh,
const Field<bool> &selection_field)
{
Array<bool> selection(mesh.totvert);
bke::MeshFieldContext context{mesh, ATTR_DOMAIN_POINT};
const bke::MeshFieldContext context{mesh, ATTR_DOMAIN_POINT};
FieldEvaluator evaluator{context, mesh.totvert};
evaluator.add_with_destination(selection_field, selection.as_mutable_span());
evaluator.evaluate();
@ -75,7 +75,7 @@ static std::optional<Mesh *> mesh_merge_by_distance_all(const Mesh &mesh,
const float merge_distance,
const Field<bool> &selection_field)
{
bke::MeshFieldContext context{mesh, ATTR_DOMAIN_POINT};
const bke::MeshFieldContext context{mesh, ATTR_DOMAIN_POINT};
FieldEvaluator evaluator{context, mesh.totvert};
evaluator.add(selection_field);
evaluator.evaluate();

View File

@ -26,7 +26,7 @@ static void node_geo_exec(GeoNodeExecParams params)
return;
}
bke::MeshFieldContext context{*mesh, ATTR_DOMAIN_EDGE};
const bke::MeshFieldContext context{*mesh, ATTR_DOMAIN_EDGE};
fn::FieldEvaluator evaluator{context, mesh->totedge};
evaluator.add(params.get_input<Field<bool>>("Selection"));
evaluator.evaluate();

View File

@ -64,7 +64,7 @@ static void geometry_set_mesh_to_points(GeometrySet &geometry_set,
return;
}
const AttributeAccessor src_attributes = mesh->attributes();
bke::MeshFieldContext field_context{*mesh, domain};
const bke::MeshFieldContext field_context{*mesh, domain};
fn::FieldEvaluator evaluator{field_context, domain_size};
evaluator.set_selection(selection_field);
/* Evaluating directly into the point cloud doesn't work because we are not using the full

View File

@ -36,7 +36,7 @@ static void geometry_set_points_to_vertices(
return;
}
bke::PointCloudFieldContext field_context{*points};
const bke::PointCloudFieldContext field_context{*points};
fn::FieldEvaluator selection_evaluator{field_context, points->totpoint};
selection_evaluator.add(selection_field);
selection_evaluator.evaluate();

View File

@ -30,7 +30,7 @@ static void gather_point_data_from_component(Field<float> radius_field,
}
const VArray<float3> positions = *component.attributes()->lookup<float3>("position");
bke::GeometryFieldContext field_context{component, ATTR_DOMAIN_POINT};
const bke::GeometryFieldContext field_context{component, ATTR_DOMAIN_POINT};
const int domain_num = component.attribute_domain_size(ATTR_DOMAIN_POINT);
r_positions.resize(r_positions.size() + domain_num);

View File

@ -322,7 +322,7 @@ static void node_geo_exec(GeoNodeExecParams params)
}
if (index >= 0 && index < domain_size) {
const IndexMask mask = IndexRange(index, 1);
bke::GeometryFieldContext geometry_context(*component, domain);
const bke::GeometryFieldContext geometry_context(*component, domain);
FieldEvaluator evaluator(geometry_context, &mask);
evaluator.add(value_field);
evaluator.evaluate();

View File

@ -298,7 +298,7 @@ static AxisScaleParams evaluate_axis_scale_fields(FieldEvaluator &evaluator,
static void scale_faces_on_axis(Mesh &mesh, const AxisScaleFields &fields)
{
bke::MeshFieldContext field_context{mesh, ATTR_DOMAIN_FACE};
const bke::MeshFieldContext field_context{mesh, ATTR_DOMAIN_FACE};
FieldEvaluator evaluator{field_context, mesh.totpoly};
AxisScaleParams params = evaluate_axis_scale_fields(evaluator, fields);
@ -320,7 +320,7 @@ static UniformScaleParams evaluate_uniform_scale_fields(FieldEvaluator &evaluato
static void scale_faces_uniformly(Mesh &mesh, const UniformScaleFields &fields)
{
bke::MeshFieldContext field_context{mesh, ATTR_DOMAIN_FACE};
const bke::MeshFieldContext field_context{mesh, ATTR_DOMAIN_FACE};
FieldEvaluator evaluator{field_context, mesh.totpoly};
UniformScaleParams params = evaluate_uniform_scale_fields(evaluator, fields);
@ -372,7 +372,7 @@ static void get_edge_verts(const Span<int2> edges,
static void scale_edges_uniformly(Mesh &mesh, const UniformScaleFields &fields)
{
bke::MeshFieldContext field_context{mesh, ATTR_DOMAIN_EDGE};
const bke::MeshFieldContext field_context{mesh, ATTR_DOMAIN_EDGE};
FieldEvaluator evaluator{field_context, mesh.totedge};
UniformScaleParams params = evaluate_uniform_scale_fields(evaluator, fields);
@ -382,7 +382,7 @@ static void scale_edges_uniformly(Mesh &mesh, const UniformScaleFields &fields)
static void scale_edges_on_axis(Mesh &mesh, const AxisScaleFields &fields)
{
bke::MeshFieldContext field_context{mesh, ATTR_DOMAIN_EDGE};
const bke::MeshFieldContext field_context{mesh, ATTR_DOMAIN_EDGE};
FieldEvaluator evaluator{field_context, mesh.totedge};
AxisScaleParams params = evaluate_axis_scale_fields(evaluator, fields);

View File

@ -86,7 +86,7 @@ static void set_position_in_component(bke::CurvesGeometry &curves,
return;
}
bke::CurvesFieldContext field_context{curves, ATTR_DOMAIN_POINT};
const bke::CurvesFieldContext field_context{curves, ATTR_DOMAIN_POINT};
fn::FieldEvaluator evaluator{field_context, curves.points_num()};
evaluator.set_selection(selection_field);
evaluator.add(position_field);

View File

@ -30,7 +30,7 @@ static void set_normal_mode(bke::CurvesGeometry &curves,
const NormalMode mode,
const Field<bool> &selection_field)
{
bke::CurvesFieldContext field_context{curves, ATTR_DOMAIN_CURVE};
const bke::CurvesFieldContext field_context{curves, ATTR_DOMAIN_CURVE};
fn::FieldEvaluator evaluator{field_context, curves.curves_num()};
evaluator.set_selection(selection_field);
evaluator.evaluate();

View File

@ -29,7 +29,7 @@ static void set_radius(bke::CurvesGeometry &curves,
AttributeWriter<float> radii = attributes.lookup_or_add_for_write<float>("radius",
ATTR_DOMAIN_POINT);
bke::CurvesFieldContext field_context{curves, ATTR_DOMAIN_POINT};
const bke::CurvesFieldContext field_context{curves, ATTR_DOMAIN_POINT};
fn::FieldEvaluator evaluator{field_context, curves.points_num()};
evaluator.set_selection(selection_field);
evaluator.add_with_destination(radius_field, radii.varray);

View File

@ -25,7 +25,7 @@ static void set_tilt(bke::CurvesGeometry &curves,
AttributeWriter<float> tilts = attributes.lookup_or_add_for_write<float>("tilt",
ATTR_DOMAIN_POINT);
bke::CurvesFieldContext field_context{curves, ATTR_DOMAIN_POINT};
const bke::CurvesFieldContext field_context{curves, ATTR_DOMAIN_POINT};
fn::FieldEvaluator evaluator{field_context, curves.points_num()};
evaluator.set_selection(selection_field);
evaluator.add_with_destination(tilt_field, tilts.varray);

View File

@ -24,8 +24,8 @@ static void set_id_in_component(GeometryComponent &component,
return;
}
MutableAttributeAccessor attributes = *component.attributes_for_write();
bke::GeometryFieldContext field_context{component, domain};
const bke::GeometryFieldContext field_context{component, domain};
fn::FieldEvaluator evaluator{field_context, domain_size};
evaluator.set_selection(selection_field);

View File

@ -78,7 +78,7 @@ static void node_geo_exec(GeoNodeExecParams params)
}
}
else {
bke::MeshFieldContext field_context{*mesh, ATTR_DOMAIN_FACE};
const bke::MeshFieldContext field_context{*mesh, ATTR_DOMAIN_FACE};
fn::FieldEvaluator selection_evaluator{field_context, mesh->totpoly};
selection_evaluator.add(selection_field);
selection_evaluator.evaluate();

View File

@ -22,11 +22,11 @@ static void set_material_index_in_component(GeometryComponent &component,
return;
}
MutableAttributeAccessor attributes = *component.attributes_for_write();
bke::GeometryFieldContext field_context{component, domain};
const bke::AttributeValidator validator = attributes.lookup_validator("material_index");
AttributeWriter<int> indices = attributes.lookup_or_add_for_write<int>("material_index", domain);
const bke::GeometryFieldContext field_context{component, domain};
fn::FieldEvaluator evaluator{field_context, domain_size};
evaluator.set_selection(selection_field);
evaluator.add_with_destination(validator.validate_field_if_necessary(index_field),

View File

@ -29,7 +29,7 @@ static void set_radius_in_component(PointCloud &pointcloud,
AttributeWriter<float> radii = attributes.lookup_or_add_for_write<float>("radius",
ATTR_DOMAIN_POINT);
bke::PointCloudFieldContext field_context{pointcloud};
const bke::PointCloudFieldContext field_context{pointcloud};
fn::FieldEvaluator evaluator{field_context, pointcloud.totpoint};
evaluator.set_selection(selection_field);
evaluator.add_with_destination(radius_field, radii.varray);

View File

@ -53,7 +53,7 @@ static void set_sharp_faces(Mesh &mesh,
AttributeWriter<bool> sharp_faces = attributes.lookup_or_add_for_write<bool>("sharp_face",
ATTR_DOMAIN_FACE);
bke::MeshFieldContext field_context{mesh, ATTR_DOMAIN_FACE};
const bke::MeshFieldContext field_context{mesh, ATTR_DOMAIN_FACE};
fn::FieldEvaluator evaluator{field_context, mesh.totpoly};
evaluator.set_selection(selection_field);
evaluator.add_with_destination(sharp_field, sharp_faces.varray);

View File

@ -25,7 +25,7 @@ static void set_cyclic(bke::CurvesGeometry &curves,
AttributeWriter<bool> cyclics = attributes.lookup_or_add_for_write<bool>("cyclic",
ATTR_DOMAIN_CURVE);
bke::CurvesFieldContext field_context{curves, ATTR_DOMAIN_CURVE};
const bke::CurvesFieldContext field_context{curves, ATTR_DOMAIN_CURVE};
fn::FieldEvaluator evaluator{field_context, curves.curves_num()};
evaluator.set_selection(selection_field);
evaluator.add_with_destination(cyclic_field, cyclics.varray);

View File

@ -26,7 +26,7 @@ static void set_resolution(bke::CurvesGeometry &curves,
ATTR_DOMAIN_CURVE);
bke::AttributeValidator validator = attributes.lookup_validator("resolution");
bke::CurvesFieldContext field_context{curves, ATTR_DOMAIN_CURVE};
const bke::CurvesFieldContext field_context{curves, ATTR_DOMAIN_CURVE};
fn::FieldEvaluator evaluator{field_context, curves.curves_num()};
evaluator.set_selection(selection_field);
evaluator.add_with_destination(validator.validate_field_if_necessary(resolution_field),

View File

@ -81,7 +81,7 @@ static void node_geo_exec(GeoNodeExecParams params)
}
const Mesh &mesh_in = *geometry_set.get_mesh_for_read();
bke::MeshFieldContext context{mesh_in, ATTR_DOMAIN_FACE};
const bke::MeshFieldContext context{mesh_in, ATTR_DOMAIN_FACE};
FieldEvaluator evaluator{context, mesh_in.totpoly};
evaluator.add(selection_field);
evaluator.evaluate();

View File

@ -41,7 +41,7 @@ static VArray<float3> construct_uv_gvarray(const Mesh &mesh,
const OffsetIndices polys = mesh.polys();
const Span<int> corner_verts = mesh.corner_verts();
bke::MeshFieldContext face_context{mesh, ATTR_DOMAIN_FACE};
const bke::MeshFieldContext face_context{mesh, ATTR_DOMAIN_FACE};
FieldEvaluator face_evaluator{face_context, polys.size()};
face_evaluator.add(selection_field);
face_evaluator.evaluate();
@ -50,7 +50,7 @@ static VArray<float3> construct_uv_gvarray(const Mesh &mesh,
return {};
}
bke::MeshFieldContext corner_context{mesh, ATTR_DOMAIN_CORNER};
const bke::MeshFieldContext corner_context{mesh, ATTR_DOMAIN_CORNER};
FieldEvaluator evaluator{corner_context, mesh.totloop};
Array<float3> uv(mesh.totloop);
evaluator.add_with_destination(uv_field, uv.as_mutable_span());

View File

@ -67,7 +67,7 @@ static VArray<float3> construct_uv_gvarray(const Mesh &mesh,
const OffsetIndices polys = mesh.polys();
const Span<int> corner_verts = mesh.corner_verts();
bke::MeshFieldContext face_context{mesh, ATTR_DOMAIN_FACE};
const bke::MeshFieldContext face_context{mesh, ATTR_DOMAIN_FACE};
FieldEvaluator face_evaluator{face_context, polys.size()};
face_evaluator.add(selection_field);
face_evaluator.evaluate();
@ -76,7 +76,7 @@ static VArray<float3> construct_uv_gvarray(const Mesh &mesh,
return {};
}
bke::MeshFieldContext edge_context{mesh, ATTR_DOMAIN_EDGE};
const bke::MeshFieldContext edge_context{mesh, ATTR_DOMAIN_EDGE};
FieldEvaluator edge_evaluator{edge_context, edges.size()};
edge_evaluator.add(seam_field);
edge_evaluator.evaluate();