144 else if (!
input->link) {
207 bool fac_is_zero = !fac_in->
link && fac == 0.0f;
208 bool fac_is_one = !fac_in->
link && fac == 1.0f;
223 if (color1_in->
link && color2_in->
link) {
224 if (color1_in->
link == color2_in->
link) {
229 else if (!color1_in->
link && !color2_in->
link) {
232 if (color1 == color2) {
245 if (
is_zero(color1_in) && fac_is_one) {
259 else if (color1_in->
link && color1_in->
link == color2_in->
link && fac_is_one) {
265 if (
is_one(color1_in) && fac_is_one) {
268 else if (
is_one(color2_in)) {
275 else if (
is_zero(color2_in) && fac_is_one) {
320 else if (
is_one(value2_in)) {
344 else if (
is_one(value2_in)) {
364 else if (
is_zero(vector2_in)) {
379 else if (
is_one(vector1_in)) {
382 else if (
is_one(vector2_in)) {
391 else if (
is_one(vector2_in)) {
413 else if (
is_one(scale_in)) {
@ NODE_VECTOR_MATH_LENGTH
@ NODE_VECTOR_MATH_CROSS_PRODUCT
@ NODE_VECTOR_MATH_DOT_PRODUCT
@ NODE_VECTOR_MATH_ABSOLUTE
@ NODE_VECTOR_MATH_DIVIDE
@ NODE_VECTOR_MATH_MULTIPLY
@ NODE_VECTOR_MATH_SUBTRACT
@ NODE_MAPPING_TYPE_VECTOR
@ NODE_MAPPING_TYPE_NORMAL
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
void make_constant_clamp(float value, bool clamp) const
void bypass(ShaderOutput *output) const
void bypass_or_discard(ShaderInput *input) const
void fold_mapping(NodeMappingType type) const
bool all_inputs_constant() const
ConstantFolder(ShaderGraph *graph, ShaderNode *node, ShaderOutput *output, Scene *scene)
bool try_bypass_or_make_constant(ShaderInput *input, bool clamp=false) const
bool is_zero(ShaderInput *input) const
bool is_one(ShaderInput *input) const
void fold_math(NodeMathType type) const
void make_constant(float value) const
ShaderOutput *const output
void fold_mix(NodeMix type, bool clamp) const
void fold_vector_math(NodeVectorMathType type) const
void disconnect(ShaderOutput *from)
void connect(ShaderOutput *from, ShaderInput *to)
ShaderInput * input(const char *name)
vector< ShaderInput * > inputs
vector< ShaderInput * > links
#define CCL_NAMESPACE_END
ccl_global KernelShaderEvalInput ccl_global float * output
ccl_global KernelShaderEvalInput * input
ccl_device_inline float3 one_float3()
ccl_device_inline float3 zero_float3()
T clamp(const T &a, const T &min, const T &max)
static bNodeSocketTemplate outputs[]
float get_float(const SocketType &input) const
float3 get_float3(const SocketType &input) const
static bool is_float3(Type type)
ccl_device_inline float saturatef(float a)