14 const uint input_stack_offsets,
15 const uint axis_stack_offsets,
16 const uint result_stack_offset)
19 uint vector_stack_offset;
20 uint rotation_stack_offset;
21 uint center_stack_offset;
22 uint axis_stack_offset;
23 uint angle_stack_offset;
27 input_stack_offsets, &type, &vector_stack_offset, &rotation_stack_offset, &
invert);
29 axis_stack_offsets, ¢er_stack_offset, &axis_stack_offset, &angle_stack_offset);
65 axis_length =
len(axis);
70 result = (axis_length != 0.0f) ?
@ NODE_VECTOR_ROTATE_TYPE_AXIS_Z
@ NODE_VECTOR_ROTATE_TYPE_AXIS_X
@ NODE_VECTOR_ROTATE_TYPE_EULER_XYZ
@ NODE_VECTOR_ROTATE_TYPE_AXIS_Y
static double angle(const Eigen::Vector3d &v1, const Eigen::Vector3d &v2)
ccl_device_inline float stack_load_float(const ccl_private float *stack, const uint a)
ccl_device_inline void stack_store_float3(ccl_private float *stack, const uint a, const float3 f)
ccl_device_forceinline void svm_unpack_node_uchar3(const uint i, ccl_private uint *x, ccl_private uint *y, ccl_private uint *z)
ccl_device_forceinline void svm_unpack_node_uchar4(const uint i, ccl_private uint *x, ccl_private uint *y, ccl_private uint *z, ccl_private uint *w)
ccl_device_inline bool stack_valid(const uint a)
CCL_NAMESPACE_BEGIN ccl_device_inline float3 stack_load_float3(const ccl_private float *stack, const uint a)
#define ccl_device_noinline
#define CCL_NAMESPACE_END
CCL_NAMESPACE_BEGIN ccl_device float invert(const float color, const float factor)
ccl_device_inline float3 rotate_around_axis(const float3 p, const float3 axis, const float angle)
CCL_NAMESPACE_BEGIN ccl_device_noinline void svm_node_vector_rotate(ccl_private float *stack, const uint input_stack_offsets, const uint axis_stack_offsets, const uint result_stack_offset)