18 b.add_output<
decl::Vector>(
N_(
"Attribute"),
"Attribute_Vector").field_source();
19 b.add_output<
decl::Float>(
N_(
"Attribute"),
"Attribute_Float").field_source();
20 b.add_output<
decl::Color>(
N_(
"Attribute"),
"Attribute_Color").field_source();
21 b.add_output<
decl::Bool>(
N_(
"Attribute"),
"Attribute_Bool").field_source();
22 b.add_output<
decl::Int>(
N_(
"Attribute"),
"Attribute_Int").field_source();
27 uiItemR(layout,
ptr,
"data_type", 0,
"", ICON_NONE);
67 node_storage(
node).data_type = *
type;
68 params.update_and_connect_available_socket(
node,
"Attribute");
79 const std::string name =
params.extract_input<std::string>(
"Name");
82 params.set_default_remaining_outputs();
87 params.set_default_remaining_outputs();
91 params.used_named_attribute(name, eNamedAttrUsage::Read);
95 params.set_output(
"Attribute_Float", AttributeFieldInput::Create<float>(std::move(name)));
98 params.set_output(
"Attribute_Vector", AttributeFieldInput::Create<float3>(std::move(name)));
101 params.set_output(
"Attribute_Color",
102 AttributeFieldInput::Create<ColorGeometry4f>(std::move(name)));
105 params.set_output(
"Attribute_Bool", AttributeFieldInput::Create<bool>(std::move(name)));
108 params.set_output(
"Attribute_Int", AttributeFieldInput::Create<int>(std::move(name)));
131 "NodeGeometryInputNamedAttribute",
#define NODE_STORAGE_FUNCS(StorageT)
void nodeSetSocketAvailability(struct bNodeTree *ntree, struct bNodeSocket *sock, bool is_available)
void node_type_init(struct bNodeType *ntype, void(*initfunc)(struct bNodeTree *ntree, struct bNode *node))
#define GEO_NODE_INPUT_NAMED_ATTRIBUTE
void node_type_storage(struct bNodeType *ntype, const char *storagename, void(*freefunc)(struct bNode *node), void(*copyfunc)(struct bNodeTree *dest_ntree, struct bNode *dest_node, const struct bNode *src_node))
void nodeRegisterType(struct bNodeType *ntype)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
in reality light always falls off quadratically Particle Info
void uiItemR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int flag, const char *name, int icon)
Span< SocketDeclarationPtr > inputs() const
bool allow_procedural_attribute_access(StringRef attribute_name)
const char * no_procedural_access_message
std::optional< eCustomDataType > node_data_type_to_custom_data_type(const eNodeSocketDatatype type)
void search_link_ops_for_declarations(GatherLinkSearchOpParams ¶ms, Span< SocketDeclarationPtr > declarations)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
static void node_init(const struct bContext *C, bNodeTree *ntree, bNode *node)
void geo_node_type_base(bNodeType *ntype, int type, const char *name, short nclass)
void node_copy_standard_storage(bNodeTree *UNUSED(dest_ntree), bNode *dest_node, const bNode *src_node)
void node_free_standard_storage(bNode *node)
struct bNodeSocket * next
NodeGeometryExecFunction geometry_node_execute
NodeGatherSocketLinkOperationsFunction gather_link_search_ops
void(* updatefunc)(struct bNodeTree *ntree, struct bNode *node)
void(* draw_buttons)(struct uiLayout *, struct bContext *C, struct PointerRNA *ptr)
NodeDeclareFunction declare