51 const Curves *curves_id_ =
nullptr;
95 return grease_pencil_;
115 return grease_pencil_;
157 const void *geometry_;
160 const Curves *curves_id_ =
nullptr;
165 int grease_pencil_layer_index_;
167 friend GeometryFieldInput;
203 return grease_pencil_layer_index_;
206 std::optional<AttributeAccessor>
attributes()
const;
275 std::optional<std::string> socket_inspection_name_;
282 name_(std::move(
name)),
293 auto field_input = std::make_shared<AttributeFieldInput>(
334 auto field_input = std::make_shared<AttributeExistsFieldInput>(std::move(
name), type);
344 std::string layer_name_;
349 layer_name_(std::move(layer_name))
382 bool no_corner_normals =
false,
383 bool true_normals =
false);
386 bool legacy_corner_normals_ =
false;
387 bool true_normals_ =
false;
390 NormalFieldInput(
const bool legacy_corner_normals =
false,
const bool true_normals =
false)
392 legacy_corner_normals_(legacy_corner_normals),
393 true_normals_(true_normals)
434 return value_field_domain_;
474 attributes, field_context, {attribute_id}, domain, selection, {field});
unsigned long long int uint64_t
static const CPPType & get()
const Curves * curves_id() const
const CurvesGeometry & curves() const
CurvesFieldContext(const CurvesGeometry &curves, AttrDomain domain)
AttrDomain domain() const
std::optional< AttrDomain > preferred_domain(const GeometryComponent &) const override
void for_each_field_input_recursive(FunctionRef< void(const FieldInput &)> fn) const override
EvaluateOnDomainInput(fn::GField field, AttrDomain domain)
GVArray get_varray_for_context(const bke::GeometryFieldContext &context, const IndexMask &) const final
const CurvesGeometry * curves() const
std::optional< AttributeAccessor > attributes() const
AttrDomain domain() const
const Mesh * mesh() const
int grease_pencil_layer_index() const
const Instances * instances() const
const PointCloud * pointcloud() const
GeometryFieldContext(const GeometryFieldContext &other, AttrDomain domain)
const greasepencil::Drawing * grease_pencil_layer_drawing() const
const void * geometry() const
const GreasePencil * grease_pencil() const
const CurvesGeometry * curves_or_strokes() const
GeometryComponent::Type type() const
const Curves * curves_id() const
const GreasePencil & grease_pencil() const
GreasePencilFieldContext(const GreasePencil &grease_pencil)
const GreasePencil & grease_pencil() const
GreasePencilLayerFieldContext(const GreasePencil &grease_pencil, AttrDomain domain, int layer_index)
AttrDomain domain() const
GVArray get_varray_for_input(const fn::FieldInput &field_input, const IndexMask &mask, ResourceScope &scope) const override
const Instances & instances() const
InstancesFieldContext(const Instances &instances)
const Mesh & mesh() const
AttrDomain domain() const
MeshFieldContext(const Mesh &mesh, AttrDomain domain)
PointCloudFieldContext(const PointCloud &pointcloud)
const PointCloud & pointcloud() const
ccl_device_inline float2 mask(const MaskType mask, const float2 a)
bool attribute_name_is_anonymous(const StringRef name)
std::optional< AttrDomain > try_detect_field_domain(const GeometryComponent &component, const fn::GField &field)
void copy_with_checked_indices(const GVArray &src, const VArray< int > &indices, const IndexMask &mask, GMutableSpan dst)
VArray< float3 > curve_normals_varray(const CurvesGeometry &curves, AttrDomain domain)
VArray< float3 > mesh_normals_varray(const Mesh &mesh, const IndexMask &mask, AttrDomain domain, bool no_corner_normals=false, bool true_normals=false)
bool try_capture_field_on_geometry(MutableAttributeAccessor attributes, const fn::FieldContext &field_context, const StringRef attribute_id, AttrDomain domain, const fn::Field< bool > &selection, const fn::GField &field)
bool try_capture_fields_on_geometry(MutableAttributeAccessor attributes, const fn::FieldContext &field_context, Span< StringRef > attribute_ids, AttrDomain domain, const fn::Field< bool > &selection, Span< fn::GField > fields)
VecBase< float, 3 > float3