35 return curve_attribute_float(kg, sd, desc, dx, dy);
40 return point_attribute_float(kg, sd, desc, dx, dy);
66 return curve_attribute_float2(kg, sd, desc, dx, dy);
71 return point_attribute_float2(kg, sd, desc, dx, dy);
97 return curve_attribute_float3(kg, sd, desc, dx, dy);
100 #ifdef __POINTCLOUD__
102 return point_attribute_float3(kg, sd, desc, dx, dy);
128 return curve_attribute_float4(kg, sd, desc, dx, dy);
131 #ifdef __POINTCLOUD__
133 return point_attribute_float4(kg, sd, desc, dx, dy);
162 if (primitive_is_volume_attribute(sd, desc)) {
163 return volume_attribute_value_to_float(volume_attribute_float4(kg, sd, desc));
174 if (primitive_is_volume_attribute(sd, desc)) {
175 return volume_attribute_value_to_float3(volume_attribute_float4(kg, sd, desc));
186 if (primitive_is_volume_attribute(sd, desc)) {
187 return volume_attribute_float4(kg, sd, desc);
226 *face_id = (int)face_id_f;
235 #if defined(__HAIR__) || defined(__POINTCLOUD__)
271 #if defined(__HAIR__) || defined(__POINTCLOUD__)
273 if (is_curve_or_point) {
277 # if defined(__HAIR__)
278 center = curve_motion_center_location(kg, sd);
282 # if defined(__POINTCLOUD__)
283 center = point_motion_center_location(kg, sd);
304 int numverts, numkeys;
307 #if defined(__HAIR__) || defined(__POINTCLOUD__)
308 if (is_curve_or_point) {
380 motion_pre = motion_pre - motion_center;
381 motion_post = motion_center - motion_post;
383 return make_float4(motion_pre.
x, motion_pre.
y, motion_post.x, motion_post.y);
NSNotificationCenter * center
#define ccl_device_forceinline
#define CCL_NAMESPACE_END
ccl_device_inline float2 direction_to_panorama(ccl_constant KernelCamera *cam, float3 dir)
ccl_device_inline float3 transform_perspective(ccl_private const ProjectionTransform *t, const float3 a)
const KernelGlobalsCPU *ccl_restrict KernelGlobals
ccl_device_inline AttributeDescriptor find_attribute(KernelGlobals kg, ccl_private const ShaderData *sd, uint id)
CCL_NAMESPACE_BEGIN ccl_device_inline uint subd_triangle_patch(KernelGlobals kg, ccl_private const ShaderData *sd)
ccl_device_inline void object_motion_info(KernelGlobals kg, int object, ccl_private int *numsteps, ccl_private int *numverts, ccl_private int *numkeys)
ccl_device_inline void object_position_transform(KernelGlobals kg, ccl_private const ShaderData *sd, ccl_private float3 *P)
ccl_device_inline Transform object_fetch_motion_pass_transform(KernelGlobals kg, int object, enum ObjectVectorTransform type)
@ OBJECT_PASS_MOTION_POST
ccl_device_inline void object_normal_transform(KernelGlobals kg, ccl_private const ShaderData *sd, ccl_private float3 *N)
@ ATTR_STD_MOTION_VERTEX_POSITION
@ SD_OBJECT_TRANSFORM_APPLIED
@ SD_OBJECT_HAS_VERTEX_MOTION
ccl_device_inline float4 zero_float4()
vec_base< T, 3 > cross(const vec_base< T, 3 > &a, const vec_base< T, 3 > &b)
vec_base< T, Size > normalize(const vec_base< T, Size > &v)
ccl_device_forceinline float3 primitive_surface_attribute_float3(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float3 *dx, ccl_private float3 *dy)
ccl_device_forceinline float2 primitive_surface_attribute_float2(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float2 *dx, ccl_private float2 *dy)
ccl_device_forceinline float4 primitive_motion_vector(KernelGlobals kg, ccl_private const ShaderData *sd)
ccl_device_forceinline float3 primitive_uv(KernelGlobals kg, ccl_private const ShaderData *sd)
ccl_device_forceinline float4 primitive_surface_attribute_float4(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float4 *dx, ccl_private float4 *dy)
CCL_NAMESPACE_BEGIN ccl_device_forceinline float primitive_surface_attribute_float(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float *dx, ccl_private float *dy)
ccl_device float3 primitive_tangent(KernelGlobals kg, ccl_private ShaderData *sd)
ccl_device bool primitive_ptex(KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float2 *uv, ccl_private int *face_id)
ccl_device_noinline float3 subd_triangle_attribute_float3(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float3 *dx, ccl_private float3 *dy)
ccl_device_noinline float4 subd_triangle_attribute_float4(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float4 *dx, ccl_private float4 *dy)
ccl_device_noinline float subd_triangle_attribute_float(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float *dx, ccl_private float *dy)
ccl_device_noinline float2 subd_triangle_attribute_float2(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float2 *dx, ccl_private float2 *dy)
ccl_device float triangle_attribute_float(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float *dx, ccl_private float *dy)
ccl_device float2 triangle_attribute_float2(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float2 *dx, ccl_private float2 *dy)
ccl_device float4 triangle_attribute_float4(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float4 *dx, ccl_private float4 *dy)
ccl_device float3 triangle_attribute_float3(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float3 *dx, ccl_private float3 *dy)
ccl_device_inline float3 float2_to_float3(const float2 a)
ccl_device_inline float3 float4_to_float3(const float4 a)