25 .default_value({0.0f, 0.0f, 1.0f})
30 const bNode *node =
b.node_or_null();
31 if (node !=
nullptr) {
66 Field<bool>(std::make_shared<bke::EvaluateOnDomainInput>(
67 selection_field, AttrDomain::Curve)),
71 curves.tag_normals_changed();
80 for (
const int layer_index : grease_pencil.layers().index_range()) {
81 Drawing *drawing = grease_pencil.get_eval_drawing(grease_pencil.layer(layer_index));
82 if (drawing ==
nullptr) {
121 params.set_output(
"Curve", std::move(geometry_set));
129 "Mode for curve normal evaluation",
Low-level operations for curves.
Low-level operations for grease pencil.
#define NODE_CLASS_GEOMETRY
@ NORMAL_MODE_MINIMUM_TWIST
#define NOD_REGISTER_NODE(REGISTER_FUNC)
#define NOD_inline_enum_accessors(member)
void uiItemR(uiLayout *layout, PointerRNA *ptr, const char *propname, eUI_Item_Flag flag, const char *name, int icon)
bke::CurvesGeometry & strokes_for_write()
local_group_size(16, 16) .push_constant(Type b
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 node_register_type(bNodeType *ntype)
GField make_constant_field(const CPPType &type, const void *value)
static void node_register()
static void node_init(bNodeTree *, bNode *node)
static void node_layout(uiLayout *layout, bContext *, PointerRNA *ptr)
static void set_curve_normal(bke::CurvesGeometry &curves, const NormalMode mode, const fn::FieldContext &curve_context, const fn::FieldContext &point_context, const Field< bool > &selection_field, const Field< float3 > &custom_normal)
static void node_declare(NodeDeclarationBuilder &b)
static void set_grease_pencil_normal(GreasePencil &grease_pencil, const NormalMode mode, const Field< bool > &selection_field, const Field< float3 > &custom_normal)
static void node_rna(StructRNA *srna)
static void node_geo_exec(GeoNodeExecParams params)
PropertyRNA * RNA_def_node_enum(StructRNA *srna, const char *identifier, const char *ui_name, const char *ui_description, const EnumPropertyItem *static_items, const EnumRNAAccessors accessors, std::optional< int > default_value, const EnumPropertyItemFunc item_func, const bool allow_animation)
void geo_node_type_base(blender::bke::bNodeType *ntype, int type, const char *name, short nclass)
const EnumPropertyItem rna_enum_curve_normal_mode_items[]
Curves * get_curves_for_write()
void modify_geometry_sets(ForeachSubGeometryCallback callback)
GreasePencil * get_grease_pencil_for_write()
void(* initfunc)(bNodeTree *ntree, bNode *node)
NodeGeometryExecFunction geometry_node_execute
void(* draw_buttons)(uiLayout *, bContext *C, PointerRNA *ptr)
NodeDeclareFunction declare