14 b.add_output<
decl::Int>(
"Point Count").field_source();
22 const AttrDomain domain)
24 const OffsetIndices points_by_curve = curves.points_by_curve();
25 auto count_fn = [points_by_curve](
int64_t i) {
return points_by_curve[i].
size(); };
27 if (domain == AttrDomain::Curve) {
30 if (domain == AttrDomain::Point) {
32 return curves.adapt_domain<
int>(std::move(
count), AttrDomain::Curve, AttrDomain::Point);
46 const AttrDomain domain,
65 return AttrDomain::Curve;
71 Field<float> spline_length_field{std::make_shared<bke::CurveLengthFieldInput>()};
72 Field<int> spline_count_field{std::make_shared<SplineCountFieldInput>()};
74 params.set_output(
"Length", std::move(spline_length_field));
75 params.set_output(
"Point Count", std::move(spline_count_field));
Low-level operations for curves.
#define NOD_REGISTER_NODE(REGISTER_FUNC)
static VArray ForFunc(const int64_t size, GetFunc get_func)
local_group_size(16, 16) .push_constant(Type b
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
void node_register_type(bNodeType *ntype)
void geo_node_type_base(blender::bke::bNodeType *ntype, int type, const char *name, short nclass)
unsigned __int64 uint64_t
NodeGeometryExecFunction geometry_node_execute
NodeDeclareFunction declare