Blender V5.0
NOD_rna_define.hh File Reference
#include <optional>
#include "BLI_function_ref.hh"
#include "DNA_node_types.h"
#include "RNA_define.hh"
#include "WM_types.hh"

Go to the source code of this file.

Classes

struct  blender::nodes::EnumRNAAccessors
struct  blender::nodes::BooleanRNAAccessors

Namespaces

namespace  blender
namespace  blender::nodes

Macros

#define NOD_inline_enum_accessors(member)
#define NOD_storage_enum_accessors(member)
#define NOD_inline_boolean_accessors(member, flag)
#define NOD_storage_boolean_accessors(member, flag)

Functions

void rna_Node_update (Main *bmain, Scene *scene, PointerRNA *ptr)
void rna_Node_socket_update (Main *bmain, Scene *scene, PointerRNA *ptr)
void rna_Node_update_relations (Main *bmain, Scene *scne, PointerRNA *ptr)
void rna_Node_Viewer_shortcut_node_set (PointerRNA *ptr, PropertyRNA *prop, int value)
const EnumPropertyItemrna_NodeSocket_structure_type_item_filter (const bNodeTree *ntree, const eNodeSocketDatatype socket_type, bool *r_free)
const EnumPropertyItemblender::nodes::enum_items_filter (const EnumPropertyItem *original_item_array, FunctionRef< bool(const EnumPropertyItem &item)> fn)
PropertyRNAblender::nodes::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)
PropertyRNAblender::nodes::RNA_def_node_boolean (StructRNA *srna, const char *identifier, const char *ui_name, const char *ui_description, const BooleanRNAAccessors accessors, std::optional< bool > default_value, bool allow_animation)

Macro Definition Documentation

◆ NOD_inline_boolean_accessors

#define NOD_inline_boolean_accessors ( member,
flag )
Value:
BooleanRNAAccessors( \
[](PointerRNA *ptr, PropertyRNA * /*prop*/) -> bool { \
const bNode &node = *static_cast<const bNode *>(ptr->data); \
return node.member & (flag); \
}, \
[](PointerRNA *ptr, PropertyRNA * /*prop*/, const bool value) { \
bNode &node = *static_cast<bNode *>(ptr->data); \
SET_FLAG_FROM_TEST(node.member, value, (flag)); \
})
PointerRNA * ptr
Definition wm_files.cc:4238
uint8_t flag
Definition wm_window.cc:145

Generates accessor methods for a property stored directly in the bNode, typically bNode->custom1 or similar.

Definition at line 80 of file NOD_rna_define.hh.

◆ NOD_inline_enum_accessors

#define NOD_inline_enum_accessors ( member)
Value:
EnumRNAAccessors( \
[](PointerRNA *ptr, PropertyRNA * /*prop*/) -> int { \
const bNode &node = *static_cast<const bNode *>(ptr->data); \
return node.member; \
}, \
[](PointerRNA *ptr, PropertyRNA * /*prop*/, const int value) { \
bNode &node = *static_cast<bNode *>(ptr->data); \
node.member = value; \
})

Generates accessor methods for a property stored directly in the bNode, typically bNode->custom1 or similar.

Definition at line 40 of file NOD_rna_define.hh.

Referenced by blender::nodes::node_composite_relative_to_pixel_cc::node_rna(), blender::nodes::node_fn_align_euler_to_vector_cc::node_rna(), blender::nodes::node_fn_align_rotation_to_vector_cc::node_rna(), blender::nodes::node_fn_axes_to_rotation_cc::node_rna(), blender::nodes::node_fn_bit_math_cc::node_rna(), blender::nodes::node_fn_boolean_math_cc::node_rna(), blender::nodes::node_fn_hash_value_cc::node_rna(), blender::nodes::node_fn_integer_math_cc::node_rna(), blender::nodes::node_fn_rotate_rotation_cc::node_rna(), blender::nodes::node_fn_string_to_value_cc::node_rna(), blender::nodes::node_fn_value_to_string_cc::node_rna(), blender::nodes::node_geo_attribute_domain_size_cc::node_rna(), blender::nodes::node_geo_attribute_statistic_cc::node_rna(), blender::nodes::node_geo_blur_attribute_cc::node_rna(), blender::nodes::node_geo_boolean_cc::node_rna(), blender::nodes::node_geo_distribute_points_in_grid_cc::node_rna(), blender::nodes::node_geo_enable_output_cc::node_rna(), blender::nodes::node_geo_evaluate_at_index_cc::node_rna(), blender::nodes::node_geo_evaluate_on_domain_cc::node_rna(), blender::nodes::node_geo_field_average_cc::node_rna(), blender::nodes::node_geo_field_min_and_max_cc::node_rna(), blender::nodes::node_geo_field_variance_cc::node_rna(), blender::nodes::node_geo_get_named_grid_cc::node_rna(), blender::nodes::node_geo_grease_pencil_set_depth_mode::node_rna(), blender::nodes::node_geo_grid_advect_cc::node_rna(), blender::nodes::node_geo_grid_info_cc::node_rna(), blender::nodes::node_geo_grid_prune_cc::node_rna(), blender::nodes::node_geo_grid_voxelize_cc::node_rna(), blender::nodes::node_geo_list_cc::node_rna(), blender::nodes::node_geo_list_get_item_cc::node_rna(), blender::nodes::node_geo_list_length_cc::node_rna(), blender::nodes::node_geo_mesh_to_curve_cc::node_rna(), blender::nodes::node_geo_sample_grid_cc::node_rna(), blender::nodes::node_geo_sample_grid_index_cc::node_rna(), blender::nodes::node_geo_sample_nearest_cc::node_rna(), blender::nodes::node_geo_sample_nearest_surface_cc::node_rna(), blender::nodes::node_geo_sample_uv_surface_cc::node_rna(), blender::nodes::node_geo_scale_elements_cc::node_rna(), blender::nodes::node_geo_sdf_grid_boolean_cc::node_rna(), blender::nodes::node_geo_set_grease_pencil_color_cc::node_rna(), blender::nodes::node_geo_set_grid_background::node_rna(), blender::nodes::node_geo_set_grid_transform::node_rna(), blender::nodes::node_geo_set_mesh_normal_cc::node_rna(), blender::nodes::node_geo_set_shade_smooth_cc::node_rna(), blender::nodes::node_geo_sort_elements_cc::node_rna(), blender::nodes::node_geo_split_to_instances_cc::node_rna(), blender::nodes::node_geo_store_named_grid_cc::node_rna(), blender::nodes::node_geo_tool_active_element_cc::node_rna(), blender::nodes::node_geo_tool_set_selection_cc::node_rna(), and blender::nodes::node_geo_warning_cc::node_rna().

◆ NOD_storage_boolean_accessors

#define NOD_storage_boolean_accessors ( member,
flag )
Value:
BooleanRNAAccessors( \
[](PointerRNA *ptr, PropertyRNA * /*prop*/) -> bool { \
const bNode &node = *static_cast<const bNode *>(ptr->data); \
return node_storage(node).member & (flag); \
}, \
[](PointerRNA *ptr, PropertyRNA * /*prop*/, const bool value) { \
bNode &node = *static_cast<bNode *>(ptr->data); \
SET_FLAG_FROM_TEST(node_storage(node).member, value, (flag)); \
})

Generates accessor methods for a property stored in bNode->storage. This is expected to be used in a node file that uses NODE_STORAGE_FUNCS.

Definition at line 95 of file NOD_rna_define.hh.

Referenced by blender::nodes::node_geo_curve_resample_cc::node_rna().

◆ NOD_storage_enum_accessors

#define NOD_storage_enum_accessors ( member)
Value:
EnumRNAAccessors( \
[](PointerRNA *ptr, PropertyRNA * /*prop*/) -> int { \
const bNode &node = *static_cast<const bNode *>(ptr->data); \
return node_storage(node).member; \
}, \
[](PointerRNA *ptr, PropertyRNA * /*prop*/, const int value) { \
bNode &node = *static_cast<bNode *>(ptr->data); \
node_storage(node).member = value; \
})

Generates accessor methods for a property stored in bNode->storage. This is expected to be used in a node file that uses NODE_STORAGE_FUNCS.

Definition at line 55 of file NOD_rna_define.hh.

Referenced by blender::nodes::node_fn_combine_color_cc::node_rna(), blender::nodes::node_fn_compare_cc::node_rna(), blender::nodes::node_fn_separate_color_cc::node_rna(), blender::nodes::node_geo_accumulate_field_cc::node_rna(), blender::nodes::node_geo_collection_info_cc::node_rna(), blender::nodes::node_geo_curve_primitive_arc_cc::node_rna(), blender::nodes::node_geo_curve_primitive_bezier_segment_cc::node_rna(), blender::nodes::node_geo_curve_primitive_circle_cc::node_rna(), blender::nodes::node_geo_curve_primitive_line_cc::node_rna(), blender::nodes::node_geo_curve_primitive_quadrilateral_cc::node_rna(), blender::nodes::node_geo_curve_spline_type_cc::node_rna(), blender::nodes::node_geo_curve_to_points_cc::node_rna(), blender::nodes::node_geo_curve_trim_cc::node_rna(), blender::nodes::node_geo_delete_geometry_cc::node_rna(), blender::nodes::node_geo_duplicate_elements_cc::node_rna(), blender::nodes::node_geo_extrude_mesh_cc::node_rna(), blender::nodes::node_geo_gizmo_dial_cc::node_rna(), blender::nodes::node_geo_gizmo_linear_cc::node_rna(), blender::nodes::node_geo_index_switch_cc::node_rna(), blender::nodes::node_geo_input_named_attribute_cc::node_rna(), blender::nodes::node_geo_menu_switch_cc::node_rna(), blender::nodes::node_geo_merge_layers_cc::node_rna(), blender::nodes::node_geo_mesh_primitive_circle_cc::node_rna(), blender::nodes::node_geo_mesh_primitive_cone_cc::node_rna(), blender::nodes::node_geo_mesh_primitive_cylinder_cc::node_rna(), blender::nodes::node_geo_mesh_primitive_line_cc::node_rna(), blender::nodes::node_geo_mesh_to_points_cc::node_rna(), blender::nodes::node_geo_object_info_cc::node_rna(), blender::nodes::node_geo_proximity_cc::node_rna(), blender::nodes::node_geo_raycast_cc::node_rna(), blender::nodes::node_geo_separate_geometry_cc::node_rna(), blender::nodes::node_geo_set_curve_handles_cc::node_rna(), blender::nodes::node_geo_store_named_attribute_cc::node_rna(), and blender::nodes::node_geo_switch_cc::node_rna().

Function Documentation

◆ rna_Node_socket_update()

◆ rna_Node_update()

void rna_Node_update ( Main * bmain,
Scene * scene,
PointerRNA * ptr )

References ptr.

Referenced by blender::nodes::RNA_def_node_enum().

◆ rna_Node_update_relations()

void rna_Node_update_relations ( Main * bmain,
Scene * scne,
PointerRNA * ptr )

◆ rna_Node_Viewer_shortcut_node_set()

void rna_Node_Viewer_shortcut_node_set ( PointerRNA * ptr,
PropertyRNA * prop,
int value )

References ptr.

◆ rna_NodeSocket_structure_type_item_filter()

const EnumPropertyItem * rna_NodeSocket_structure_type_item_filter ( const bNodeTree * ntree,
const eNodeSocketDatatype socket_type,
bool * r_free )