57 if (name !=
nullptr) {
61 float min[3] = {0.0f, 0.0f, 0.0f};
62 float max[3] = {1.0f, 1.0f, 1.0f};
84 if (base_fn !=
nullptr) {
94 if (base_fn !=
nullptr) {
104 if (base_fn !=
nullptr) {
124 CLAMP(value, 0.0f, 1.0f);
void node_type_gpu(struct bNodeType *ntype, NodeGPUExecFunction gpu_fn)
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))
#define NODE_CLASS_CONVERTOR
void nodeRegisterType(struct bNodeType *ntype)
void node_type_label(struct bNodeType *ntype, void(*labelfunc)(struct bNodeTree *ntree, struct bNode *, char *label, int maxlen))
GPUNodeLink * GPU_constant(const float *num)
bool GPU_link(GPUMaterial *mat, const char *name,...)
bool GPU_stack_link(GPUMaterial *mat, struct bNode *node, const char *name, GPUNodeStack *in, GPUNodeStack *out,...)
Group RGB to Bright Vector Camera CLAMP
constexpr bool is_empty() const
constexpr const char * c_str() const
void add_link(MFOutputSocket &from, MFInputSocket &to)
MFFunctionNode & add_function(const MultiFunction &function)
Span< MFInputSocket * > inputs()
MFOutputSocket & output(int index)
MFInputSocket & input(int index)
const DTreeContext * context() const
MFNetworkTreeMap & network_map()
fn::MFNetwork & network()
void add(const DSocket &dsocket, fn::MFSocket &socket)
void add_try_match(const DNode &dnode, fn::MFNode &node)
const DNode & dnode() const
const fn::MultiFunction & get_not_implemented_fn()
const OutputSocketRef & output(int index) const
Span< const InputSocketRef * > inputs() const
bool try_dispatch_float_math_fl_fl_to_fl(const int operation, Callback &&callback)
bool try_dispatch_float_math_fl_to_fl(const int operation, Callback &&callback)
const FloatMathOperationInfo * get_float_math_operation_info(const int operation)
bool try_dispatch_float_math_fl_fl_fl_to_fl(const int operation, Callback &&callback)
static const char * gpu_shader_get_name(int mode)
static bNodeSocketTemplate sh_node_math_out[]
static int gpu_shader_math(GPUMaterial *mat, bNode *node, bNodeExecData *UNUSED(execdata), GPUNodeStack *in, GPUNodeStack *out)
void register_node_type_sh_math(void)
static const blender::fn::MultiFunction & get_base_multi_function(blender::nodes::NodeMFNetworkBuilder &builder)
static void sh_node_math_expand_in_mf_network(blender::nodes::NodeMFNetworkBuilder &builder)
static bNodeSocketTemplate sh_node_math_in[]
void sh_fn_node_type_base(bNodeType *ntype, int type, const char *name, short nclass, short flag)
void node_math_label(bNodeTree *UNUSED(ntree), bNode *node, char *label, int maxlen)
void node_math_update(bNodeTree *UNUSED(ntree), bNode *node)
Compact definition of a node socket.
NodeExpandInMFNetworkFunction expand_in_mf_network
StringRefNull shader_name
StringRefNull title_case_name