78 if (in0 <= 1 && in0 >= -1) {
88 if (in0 <= 1 && in0 >= -1) {
106 float y_mod_1 =
fmod(in1, 1);
107 if (y_mod_1 > 0.999f || y_mod_1 < 0.001f) {
118 if (in0 > 0 && in1 > 0) {
145 *
out = (in0 < 0) ?
int(in0 - 0.5f) : int(in0 + 0.5f);
287 *
out = (
fabsf(in0 - in1) <= std::max(in2, 1e-5f)) ? 1.0f : 0.0f;
293 *
out = in0 * in1 + in2;
#define NODE_CLASS_CONVERTER
@ NODE_MATH_FLOORED_MODULO
BMesh const char void * data
MINLINE float smoothminf(float a, float b, float c)
MINLINE float pingpongf(float value, float scale)
MINLINE float compatible_signf(float f)
MINLINE float wrapf(float value, float max, float min)
ccl_device_inline float2 fmod(const float2 a, const float b)
ccl_device_inline float3 atan2(const float3 y, const float3 x)
void node_register_type(bNodeType &ntype)
void node_type_socket_templates(bNodeType *ntype, bNodeSocketTemplate *inputs, bNodeSocketTemplate *outputs)
static blender::bke::bNodeSocketTemplate outputs[]
static void exec(void *data, int, bNode *node, bNodeExecData *execdata, bNodeStack **in, bNodeStack **out)
static blender::bke::bNodeSocketTemplate inputs[]
static void valuefn(float *out, TexParams *p, bNode *, bNodeStack **in, short thread)
static void exec(void *data, int, bNode *node, bNodeExecData *execdata, bNodeStack **in, bNodeStack **out)
void register_node_type_tex_math()
static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread)
void tex_output(bNode *node, bNodeExecData *, bNodeStack **in, bNodeStack *out, TexFn texfn, TexCallData *cdata)
float tex_input_value(bNodeStack *in, TexParams *params, short thread)
void tex_node_type_base(blender::bke::bNodeType *ntype, std::string idname, const std::optional< int16_t > legacy_type)
void node_math_label(const bNodeTree *, const bNode *node, char *label, int label_maxncpy)
void node_math_update(bNodeTree *ntree, bNode *node)
Compact definition of a node socket.
void(* labelfunc)(const bNodeTree *ntree, const bNode *node, char *label, int label_maxncpy)
const char * enum_name_legacy
void(* updatefunc)(bNodeTree *ntree, bNode *node)