22 .description(
"Which top-level instances to realize");
27 "Realize all levels of nested instances for a top-level instances. Overrides the value "
28 "of the Depth input");
30 "Number of levels of nested instances to realize for each top-level instance");
38 params.set_output(
"Geometry", std::move(geometry_set));
47 static auto depth_override = mf::build::SI2_SO<int, bool, int>(
48 "depth_override", [](
int depth,
bool realize_all_field) {
53 depth_override, {std::move(depth_field), std::move(realize_all_field)}));
57 static auto selection_override = mf::build::SI2_SO<int, bool, bool>(
59 [](
int depth_override,
bool selection) {
return depth_override == 0 ?
false :
selection; });
62 selection_override, {depth_field_overridden, std::move(selection_field)}));
68 const int evaluated_depth_index = evaluator.
add(depth_field_overridden);
77 options.keep_original_ids =
false;
78 options.realize_instance_attributes =
true;
80 options.attribute_filter = attribute_filter;
82 geometry_set,
options, varied_depth_option);
83 new_geometry_set.
name = geometry_set.
name;
84 params.set_output(
"Geometry", std::move(new_geometry_set));
#define NODE_CLASS_GEOMETRY
#define NOD_REGISTER_NODE(REGISTER_FUNC)
static void remember_deformed_positions_if_necessary(GeometrySet &geometry)
void set_selection(Field< bool > selection)
int add(GField field, GVArray *varray_ptr)
IndexMask get_evaluated_selection_as_mask() const
const GVArray & get_evaluated(const int field_index) const
static std::shared_ptr< FieldOperation > Create(std::shared_ptr< const mf::MultiFunction > function, Vector< GField > inputs={})
local_group_size(16, 16) .push_constant(Type b
CCL_NAMESPACE_BEGIN struct Options options
void node_register_type(bNodeType *ntype)
bke::GeometrySet realize_instances(bke::GeometrySet geometry_set, const RealizeInstancesOptions &options)
static void node_geo_exec(GeoNodeExecParams params)
static void node_register()
static void node_declare(NodeDeclarationBuilder &b)
void geo_node_type_base(blender::bke::bNodeType *ntype, int type, const char *name, short nclass)
GPU_SHADER_INTERFACE_INFO(overlay_edit_curve_handle_iface, "vert").flat(Type pos vertex_in(1, Type::UINT, "data") .vertex_out(overlay_edit_curve_handle_iface) .geometry_layout(PrimitiveIn Frequency::GEOMETRY storage_buf(1, Qualifier::READ, "uint", "data[]", Frequency::GEOMETRY) .push_constant(Type Frequency::GEOMETRY selection[]
const Instances * get_instances() const
bool has_instances() const
NodeGeometryExecFunction geometry_node_execute
NodeDeclareFunction declare
static constexpr int MAX_DEPTH