43 return "vector_math_add";
45 return "vector_math_subtract";
47 return "vector_math_multiply";
49 return "vector_math_divide";
52 return "vector_math_cross";
54 return "vector_math_project";
56 return "vector_math_reflect";
58 return "vector_math_dot";
61 return "vector_math_distance";
63 return "vector_math_length";
65 return "vector_math_scale";
67 return "vector_math_normalize";
70 return "vector_math_snap";
72 return "vector_math_floor";
74 return "vector_math_ceil";
76 return "vector_math_modulo";
78 return "vector_math_fraction";
80 return "vector_math_absolute";
82 return "vector_math_minimum";
84 return "vector_math_maximum";
86 return "vector_math_wrap";
88 return "vector_math_sine";
90 return "vector_math_cosine";
92 return "vector_math_tangent";
94 return "vector_math_refract";
96 return "vector_math_faceforward";
109 if (name !=
nullptr) {
156 switch (
node->custom1) {
192 if (multi_fn !=
nullptr) {
202 if (multi_fn !=
nullptr) {
212 if (multi_fn !=
nullptr) {
222 if (multi_fn !=
nullptr) {
232 if (multi_fn !=
nullptr) {
241 if (multi_fn !=
nullptr) {
250 if (multi_fn !=
nullptr) {
void node_type_gpu(struct bNodeType *ntype, NodeGPUExecFunction gpu_fn)
void nodeSetSocketAvailability(struct bNodeSocket *sock, bool is_available)
void node_type_socket_templates(struct bNodeType *ntype, struct bNodeSocketTemplate *inputs, struct bNodeSocketTemplate *outputs)
void node_type_update(struct bNodeType *ntype, void(*updatefunc)(struct bNodeTree *ntree, struct bNode *node))
struct bNodeSocket * nodeFindSocket(const struct bNode *node, eNodeSocketInOut in_out, const char *identifier)
#define NODE_CLASS_OP_VECTOR
void nodeRegisterType(struct bNodeType *ntype)
void node_type_label(struct bNodeType *ntype, void(*labelfunc)(struct bNodeTree *ntree, struct bNode *, char *label, int maxlen))
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
@ NODE_VECTOR_MATH_NORMALIZE
@ NODE_VECTOR_MATH_LENGTH
@ NODE_VECTOR_MATH_CROSS_PRODUCT
@ NODE_VECTOR_MATH_MODULO
@ NODE_VECTOR_MATH_COSINE
@ NODE_VECTOR_MATH_REFLECT
@ NODE_VECTOR_MATH_REFRACT
@ NODE_VECTOR_MATH_DOT_PRODUCT
@ NODE_VECTOR_MATH_ABSOLUTE
@ NODE_VECTOR_MATH_DIVIDE
@ NODE_VECTOR_MATH_TANGENT
@ NODE_VECTOR_MATH_DISTANCE
@ NODE_VECTOR_MATH_FRACTION
@ NODE_VECTOR_MATH_PROJECT
@ NODE_VECTOR_MATH_MULTIPLY
@ NODE_VECTOR_MATH_MAXIMUM
@ NODE_VECTOR_MATH_FACEFORWARD
@ NODE_VECTOR_MATH_SUBTRACT
@ NODE_VECTOR_MATH_MINIMUM
bool GPU_stack_link(GPUMaterial *mat, struct bNode *node, const char *name, GPUNodeStack *in, GPUNodeStack *out,...)
Group RGB to Bright Vector Camera SH_NODE_VECTOR_MATH
const fn::MultiFunction & get_not_implemented_fn()
void set_matching_fn(const fn::MultiFunction &function)
bool try_dispatch_float_math_fl3_fl3_to_fl3(const NodeVectorMathOperation operation, Callback &&callback)
bool try_dispatch_float_math_fl3_to_fl(const NodeVectorMathOperation operation, Callback &&callback)
bool try_dispatch_float_math_fl3_fl3_to_fl(const NodeVectorMathOperation operation, Callback &&callback)
bool try_dispatch_float_math_fl3_fl_to_fl3(const NodeVectorMathOperation operation, Callback &&callback)
bool try_dispatch_float_math_fl3_fl3_fl_to_fl3(const NodeVectorMathOperation operation, Callback &&callback)
bool try_dispatch_float_math_fl3_to_fl3(const NodeVectorMathOperation operation, Callback &&callback)
bool try_dispatch_float_math_fl3_fl3_fl3_to_fl3(const NodeVectorMathOperation operation, Callback &&callback)
void sh_fn_node_type_base(bNodeType *ntype, int type, const char *name, short nclass, short flag)
static const char * gpu_shader_get_name(int mode)
static int gpu_shader_vector_math(GPUMaterial *mat, bNode *node, bNodeExecData *UNUSED(execdata), GPUNodeStack *in, GPUNodeStack *out)
static void node_shader_update_vector_math(bNodeTree *UNUSED(ntree), bNode *node)
static void sh_node_vector_math_expand_in_mf_network(blender::nodes::NodeMFNetworkBuilder &builder)
static bNodeSocketTemplate sh_node_vector_math_out[]
void register_node_type_sh_vect_math(void)
static const blender::fn::MultiFunction & get_multi_function(blender::nodes::NodeMFNetworkBuilder &builder)
static bNodeSocketTemplate sh_node_vector_math_in[]
void node_sock_label_clear(bNodeSocket *sock)
void node_sock_label(bNodeSocket *sock, const char *name)
void node_vector_math_label(bNodeTree *UNUSED(ntree), bNode *node, char *label, int maxlen)
Compact definition of a node socket.
NodeExpandInMFNetworkFunction expand_in_mf_network
StringRefNull title_case_name