41 if (other_socket.
runtime->declaration) {
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) {
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) {
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) {
327 return this->
build(ntree, node);
377 return this->
build(ntree, node);
429 return this->
build(ntree, node);
480 return this->
build(ntree, node);
514 if (socket.
typeinfo->subtype != this->subtype) {
529 return this->
build(ntree, node);
531 if (socket.
typeinfo->subtype != this->subtype) {
581 return this->
build(ntree, node);
630 return this->
build(ntree, node);
647 "NodeSocketGeometry",
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;
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
InputSocketFieldType input_field_type
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
VecBase< float, 3 > float3
bNodeSocketRuntimeHandle * runtime
bNodeSocketTypeHandle * typeinfo