11 b.use_custom_socket_order();
12 b.allow_any_socket_order();
15 .
description(
"Instances to transform individually");
16 b.add_output<
decl::Geometry>(
"Instances").propagate_all().align_with_previous();
33 instances,
"instance_transform", AttrDomain::Instance, selection_field, transform_field);
36 params.set_output(
"Instances", std::move(geometry_set));
44 ntype.
ui_name =
"Set Instance Transform";
45 ntype.
ui_description =
"Set the transformation matrix of every instance";
51 node_register_type(ntype);
#define NODE_CLASS_GEOMETRY
#define GEO_NODE_SET_INSTANCE_TRANSFORM
@ NODE_DEFAULT_INPUT_INSTANCE_TRANSFORM_FIELD
#define NOD_REGISTER_NODE(REGISTER_FUNC)
StructureType structure_type
void node_type_size(bNodeType &ntype, int width, int minwidth, int maxwidth)
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)
void geo_node_type_base(blender::bke::bNodeType *ntype, std::string idname, const std::optional< int16_t > legacy_type)
GeometryComponent & get_component_for_write(GeometryComponent::Type component_type)
bool has_instances() const
std::string ui_description
NodeGeometryExecFunction geometry_node_execute
const char * enum_name_legacy
NodeDeclareFunction declare