41 if (other_socket.
runtime->declaration) {
82 this->identifier.c_str(),
100 if (socket.
typeinfo->subtype != this->subtype) {
104 if (value.min != this->soft_min_value) {
107 if (value.max != this->soft_max_value) {
128 return this->
build(ntree, node);
130 if (socket.
typeinfo->subtype != this->subtype) {
154 this->identifier.c_str(),
172 if (socket.
typeinfo->subtype != this->subtype) {
176 if (value.min != this->soft_min_value) {
179 if (value.max != this->soft_max_value) {
197 return this->
build(ntree, node);
199 if (socket.
typeinfo->subtype != this->subtype) {
223 this->identifier.c_str(),
241 if (socket.
typeinfo->subtype != this->subtype) {
246 if (value.min != this->soft_min_value) {
249 if (value.max != this->soft_max_value) {
270 return this->
build(ntree, node);
272 if (socket.
typeinfo->subtype != this->subtype) {
296 this->identifier.c_str(),
327 return this->
build(ntree, node);
346 this->identifier.c_str(),
377 return this->
build(ntree, node);
395 this->identifier.c_str(),
429 return this->
build(ntree, node);
448 this->identifier.c_str(),
480 return this->
build(ntree, node);
499 this->identifier.c_str(),
514 if (socket.
typeinfo->subtype != this->subtype) {
529 return this->
build(ntree, node);
531 if (socket.
typeinfo->subtype != this->subtype) {
553 this->identifier.c_str(),
581 return this->
build(ntree, node);
596 &ntree, &node, this->
in_out, this->
idname, this->identifier.c_str(), this->name.c_str());
630 return this->
build(ntree, node);
647 "NodeSocketGeometry",
648 this->identifier.c_str(),
672 return supported_types_;
677 return only_realized_data_;
682 return only_instances_;
694 decl_->supported_types_ = supported_types;
700 decl_->only_realized_data_ = value;
706 decl_->only_instances_ = value;
722 this->identifier.c_str(),
764 this->identifier.c_str(),
798 &ntree, &node, this->
in_out,
idname_, this->identifier.c_str(), this->name.c_str());
827 return this->
build(ntree, node);
835 std::unique_ptr<decl::Extend> decl = std::make_unique<decl::Extend>();
837 decl->identifier =
"__extend__";
838 decl->in_out = in_out;
MINLINE void copy_v4_v4(float r[4], const float a[4])
MINLINE void copy_v3_v3(float r[3], const float a[3])
#define STRNCPY(dst, src)
bool matches_common_data(const bNodeSocket &socket) const
void set_common_flags(bNodeSocket &socket) const
bNodeSocket & build(bNodeTree &ntree, bNode &node) const override
bool matches(const bNodeSocket &socket) const override
bNodeSocket & update_or_build(bNodeTree &ntree, bNode &node, bNodeSocket &socket) const override
bool can_connect(const bNodeSocket &socket) const override
bNodeSocket & update_or_build(bNodeTree &ntree, bNode &node, bNodeSocket &socket) const override
bool can_connect(const bNodeSocket &socket) const override
bNodeSocket & build(bNodeTree &ntree, bNode &node) const override
bool matches(const bNodeSocket &socket) const override
bNodeSocket & build(bNodeTree &ntree, bNode &node) const override
bool matches(const bNodeSocket &socket) const override
bNodeSocket & update_or_build(bNodeTree &ntree, bNode &node, bNodeSocket &socket) const override
std::function< void(bNode &node, bNodeSocket &socket, const char *data_path)> init_socket_fn
bool can_connect(const bNodeSocket &socket) const override
bool can_connect(const bNodeSocket &socket) const override
bool matches(const bNodeSocket &socket) const override
bNodeSocket & update_or_build(bNodeTree &ntree, bNode &node, bNodeSocket &socket) const override
bNodeSocket & build(bNodeTree &ntree, bNode &node) const override
bool can_connect(const bNodeSocket &socket) const override
bNodeSocket & build(bNodeTree &ntree, bNode &node) const override
bNodeSocket & update_or_build(bNodeTree &ntree, bNode &node, bNodeSocket &socket) const override
bool matches(const bNodeSocket &socket) const override
GeometryBuilder & only_realized_data(bool value=true)
GeometryBuilder & only_instances(bool value=true)
GeometryBuilder & supported_type(bke::GeometryComponent::Type supported_type)
bool only_realized_data() const
bNodeSocket & build(bNodeTree &ntree, bNode &node) const override
bool can_connect(const bNodeSocket &socket) const override
Span< bke::GeometryComponent::Type > supported_types() const
bool only_instances() const
bool matches(const bNodeSocket &socket) const override
std::function< ID *(const bNode &node)> default_value_fn
bool can_connect(const bNodeSocket &socket) const override
bNodeSocket & build(bNodeTree &ntree, bNode &node) const override
bNodeSocket & update_or_build(bNodeTree &ntree, bNode &node, bNodeSocket &socket) const override
bool matches(const bNodeSocket &socket) const override
bool can_connect(const bNodeSocket &socket) const override
bNodeSocket & build(bNodeTree &ntree, bNode &node) const override
bool matches(const bNodeSocket &socket) const override
bNodeSocket & update_or_build(bNodeTree &ntree, bNode &node, bNodeSocket &socket) const override
bool can_connect(const bNodeSocket &socket) const override
bNodeSocket & build(bNodeTree &ntree, bNode &node) const override
bNodeSocket & update_or_build(bNodeTree &ntree, bNode &node, bNodeSocket &socket) const override
bool matches(const bNodeSocket &socket) const override
bNodeSocket & build(bNodeTree &ntree, bNode &node) const override
bool matches(const bNodeSocket &socket) const override
bool can_connect(const bNodeSocket &socket) const override
math::EulerXYZ default_value
bNodeSocket & update_or_build(bNodeTree &ntree, bNode &node, bNodeSocket &socket) const override
bool can_connect(const bNodeSocket &socket) const override
bNodeSocket & build(bNodeTree &ntree, bNode &node) const override
bool matches(const bNodeSocket &socket) const override
bool can_connect(const bNodeSocket &socket) const override
bool matches(const bNodeSocket &socket) const override
bNodeSocket & build(bNodeTree &ntree, bNode &node) const override
bNodeSocket & update_or_build(bNodeTree &ntree, bNode &node, bNodeSocket &socket) const override
bool can_connect(const bNodeSocket &socket) const override
bool matches(const bNodeSocket &socket) const override
bNodeSocket & build(bNodeTree &ntree, bNode &node) const override
bNodeSocket & update_or_build(bNodeTree &ntree, bNode &node, bNodeSocket &socket) const override
bNodeSocket * node_add_static_socket(bNodeTree *ntree, bNode *node, eNodeSocketInOut in_out, int type, int subtype, const char *identifier, const char *name)
bNodeSocketType * node_socket_type_find(const char *idname)
const char * node_static_socket_type(int type, int subtype)
bNodeSocket * node_add_socket(bNodeTree *ntree, bNode *node, eNodeSocketInOut in_out, const char *idname, const char *identifier, const char *name)
static bool basic_types_can_connect(const SocketDeclaration &, const bNodeSocket &other_socket)
SocketDeclarationPtr create_extend_declaration(const eNodeSocketInOut in_out)
static void modify_subtype_except_for_storage(bNodeSocket &socket, int new_subtype)
static bool field_types_are_compatible(const SocketDeclaration &input, const SocketDeclaration &output)
static bool sockets_can_connect(const SocketDeclaration &socket_decl, const bNodeSocket &other_socket)
std::unique_ptr< SocketDeclaration > SocketDeclarationPtr
bNodeSocketRuntimeHandle * runtime
bNodeSocketTypeHandle * typeinfo