Cleanup: Declare field context variables const
This commit is contained in:
parent
91020ccde1
commit
5727851d65
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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_);
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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"));
|
||||
|
|
|
@ -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_);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue