40 layout,
ptr,
"particle_system", &dataptr,
"particle_systems", std::nullopt, ICON_NONE);
56 layout,
ptr,
"vertex_attribute_name", &ob_ptr,
"vertex_groups",
"", ICON_NONE);
60 if (obdata_ptr.
data) {
63 "vertex_attribute_name",
77 point_density->
radius = 0.3f;
89 *pd = dna::shallow_zero_initialize();
95 const bNode *src_node)
100 *pd = dna::shallow_zero_initialize();
113 ntype.
ui_name =
"Point Density";
115 "Generate a volumetric point for each particle or vertex of another object";
118 ntype.
declare = file_ns::node_declare;
119 ntype.
draw_buttons = file_ns::node_shader_buts_tex_pointdensity;
120 ntype.
initfunc = file_ns::node_shader_init_tex_pointdensity;
122 "NodeShaderTexPointDensity",
123 file_ns::node_shader_free_tex_pointdensity,
124 file_ns::node_shader_copy_tex_pointdensity);
#define NODE_CLASS_TEXTURE
#define SH_NODE_TEX_POINTDENSITY
void BKE_texture_pointdensity_free_data(struct PointDensity *pd)
@ SHD_POINTDENSITY_SPACE_OBJECT
@ SHD_POINTDENSITY_COLOR_PARTAGE
@ SHD_POINTDENSITY_COLOR_VERTWEIGHT
@ SHD_POINTDENSITY_COLOR_VERTCOL
@ SHD_POINTDENSITY_SOURCE_PSYS
@ UI_ITEM_R_SPLIT_EMPTY_NAME
void uiItemPointerR(uiLayout *layout, PointerRNA *ptr, blender::StringRefNull propname, PointerRNA *searchptr, blender::StringRefNull searchpropname, std::optional< blender::StringRefNull > name, int icon)
void * MEM_callocN(size_t len, const char *str)
void * MEM_dupallocN(const void *vmemh)
void MEM_freeN(void *vmemh)
void node_register_type(bNodeType &ntype)
void node_type_storage(bNodeType &ntype, std::optional< StringRefNull > storagename, void(*freefunc)(bNode *node), void(*copyfunc)(bNodeTree *dest_ntree, bNode *dest_node, const bNode *src_node))
static void node_declare(NodeDeclarationBuilder &b)
static void node_shader_init_tex_pointdensity(bNodeTree *, bNode *node)
static void node_shader_buts_tex_pointdensity(uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_shader_free_tex_pointdensity(bNode *node)
static void node_shader_copy_tex_pointdensity(bNodeTree *, bNode *dest_node, const bNode *src_node)
void register_node_type_sh_tex_pointdensity()
void sh_node_type_base(blender::bke::bNodeType *ntype, std::string idname, const std::optional< int16_t > legacy_type)
PointerRNA RNA_id_pointer_create(ID *id)
std::string ui_description
void(* initfunc)(bNodeTree *ntree, bNode *node)
const char * enum_name_legacy
void(* draw_buttons)(uiLayout *, bContext *C, PointerRNA *ptr)
NodeDeclareFunction declare
void prop(PointerRNA *ptr, PropertyRNA *prop, int index, int value, eUI_Item_Flag flag, std::optional< blender::StringRef > name_opt, int icon, std::optional< blender::StringRef > placeholder=std::nullopt)
void RE_point_density_free(PointDensity *pd)