diff options
Diffstat (limited to 'intern/cycles/kernel/geom/curve.h')
-rw-r--r-- | intern/cycles/kernel/geom/curve.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/intern/cycles/kernel/geom/curve.h b/intern/cycles/kernel/geom/curve.h index 8a63f01643b..48ee8226e89 100644 --- a/intern/cycles/kernel/geom/curve.h +++ b/intern/cycles/kernel/geom/curve.h @@ -226,6 +226,18 @@ ccl_device float curve_thickness(KernelGlobals kg, ccl_private const ShaderData return r * 2.0f; } +/* Curve random */ + +ccl_device float curve_random(KernelGlobals kg, ccl_private const ShaderData *sd) +{ + if (sd->type & PRIMITIVE_CURVE) { + const AttributeDescriptor desc = find_attribute(kg, sd, ATTR_STD_CURVE_RANDOM); + return (desc.offset != ATTR_STD_NOT_FOUND) ? curve_attribute_float(kg, sd, desc, NULL, NULL) : + 0.0f; + } + return 0.0f; +} + /* Curve location for motion pass, linear interpolation between keys and * ignoring radius because we do the same for the motion keys */ |