diff options
Diffstat (limited to 'source/blender/nodes/geometry/node_geometry_util.hh')
-rw-r--r-- | source/blender/nodes/geometry/node_geometry_util.hh | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/source/blender/nodes/geometry/node_geometry_util.hh b/source/blender/nodes/geometry/node_geometry_util.hh index 5aeb68b3fdc..adcf47f57fe 100644 --- a/source/blender/nodes/geometry/node_geometry_util.hh +++ b/source/blender/nodes/geometry/node_geometry_util.hh @@ -87,7 +87,27 @@ void get_closest_in_bvhtree(BVHTreeFromMesh &tree_data, const MutableSpan<float> r_distances_sq, const MutableSpan<float3> r_positions); +int apply_offset_in_cyclic_range(IndexRange range, int start_index, int offset); + std::optional<eCustomDataType> node_data_type_to_custom_data_type(eNodeSocketDatatype type); std::optional<eCustomDataType> node_socket_to_custom_data_type(const bNodeSocket &socket); +class FieldAtIndexInput final : public bke::GeometryFieldInput { + private: + Field<int> index_field_; + GField value_field_; + eAttrDomain value_field_domain_; + + public: + FieldAtIndexInput(Field<int> index_field, GField value_field, eAttrDomain value_field_domain); + + GVArray get_varray_for_context(const bke::GeometryFieldContext &context, + const IndexMask mask) const final; + + std::optional<eAttrDomain> preferred_domain(const GeometryComponent & /*component*/) const final + { + return value_field_domain_; + } +}; + } // namespace blender::nodes |