41 if (other_socket.
runtime->declaration) {
108 if (socket.
typeinfo->subtype != this->subtype) {
112 if (value.
min != this->soft_min_value) {
115 if (value.
max != this->soft_max_value) {
136 return this->
build(ntree, node);
138 if (socket.
typeinfo->subtype != this->subtype) {
180 if (socket.
typeinfo->subtype != this->subtype) {
184 if (value.
min != this->soft_min_value) {
187 if (value.
max != this->soft_max_value) {
205 return this->
build(ntree, node);
207 if (socket.
typeinfo->subtype != this->subtype) {
229 ntree, node, this->
in_out, idname, this->
identifier.c_str(), this->name.c_str());
247 if (socket.
typeinfo->subtype != this->subtype) {
255 if (value.
min != this->soft_min_value) {
258 if (value.
max != this->soft_max_value) {
279 return this->
build(ntree, node);
281 if (socket.
typeinfo->subtype != this->subtype) {
340 return this->
build(ntree, node);
390 return this->
build(ntree, node);
442 return this->
build(ntree, node);
493 return this->
build(ntree, node);
527 if (socket.
typeinfo->subtype != this->subtype) {
542 return this->
build(ntree, node);
544 if (socket.
typeinfo->subtype != this->subtype) {
601 return this->
build(ntree, node);
621 runtime_item.
name = item->name;
624 runtime_items->
items.append(std::move(runtime_item));
673 return this->
build(ntree, node);
682 decl_->pass_through_input_index = std::move(
index);
728 return this->
build(ntree, node);
777 return this->
build(ntree, node);
794 "NodeSocketGeometry",
819 return supported_types_;
824 return only_realized_data_;
829 return only_instances_;
841 decl_->supported_types_ = supported_types;
847 decl_->only_realized_data_ = value;
853 decl_->only_instances_ = value;
866 ntree, node, this->
in_out,
"NodeSocketShader", this->
identifier.c_str(), this->name.c_str());
970 return this->
build(ntree, node);
MINLINE void copy_v4_v4(float r[4], const float a[4])
MINLINE void copy_v3_v3(float r[3], const float a[3])
char * STRNCPY(char(&dst)[N], const char *src)
#define STRNCPY_UTF8(dst, src)
Value & lookup_or_add_cb(const Key &key, const CreateValueF &create_value)
constexpr const char * c_str() const
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
BundleBuilder & pass_through_input_index(std::optional< int > index)
bNodeSocket & build(bNodeTree &ntree, bNode &node) 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 matches(const bNodeSocket &socket) const override
bool can_connect(const bNodeSocket &socket) const override
bNodeSocket & update_or_build(bNodeTree &ntree, bNode &node, 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
StringBuilder & path_filter(std::optional< std::string > filter)
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_socket(bNodeTree &ntree, bNode &node, eNodeSocketInOut in_out, StringRefNull idname, StringRefNull identifier, StringRefNull name)
bNodeSocketType * node_socket_type_find(StringRef idname)
bNodeSocket * node_add_static_socket(bNodeTree &ntree, bNode &node, eNodeSocketInOut in_out, int type, int subtype, StringRefNull identifier, StringRefNull name)
std::optional< StringRefNull > node_static_socket_type(int type, int subtype, std::optional< int > dimensions=std::nullopt)
static bool basic_types_can_connect(const SocketDeclaration &, const bNodeSocket &other_socket)
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)
VecBase< float, 3 > float3
bNodeSocketRuntimeHandle * runtime
bNodeSocketTypeHandle * typeinfo
Vector< RuntimeNodeEnumItem > items