static void do_invert_fac(bNode *node, float *out, float *in, float *fac) { float col[4], facm; do_invert(node, col, in); /* blend inverted result against original input with fac */ facm = 1.0 - fac[0]; if(node->custom1 & CMP_CHAN_RGB) { col[0] = fac[0]*col[0] + (facm*in[0]); col[1] = fac[0]*col[1] + (facm*in[1]); col[2] = fac[0]*col[2] + (facm*in[2]); } if(node->custom1 & CMP_CHAN_A) col[3] = fac[0]*col[3] + (facm*in[3]); QUATCOPY(out, col); }
static void do_bracket_undefined(void) { /* : [undefined] [defined] invert ; immediate */ do_bracket_defined(); do_invert(); }