28template<u
int node_feature_mask>
33 uint normalize_r_gon_parameter = node.
y;
49 if (calculate_r_gon_parameter_field || calculate_max_unit_parameter ||
50 calculate_x_axis_A_angle_bisector)
53 calculate_max_unit_parameter,
54 normalize_r_gon_parameter,
55 fmaxf(r_gon_sides, 2.0f),
56 clamp(r_gon_roundness, 0.0f, 1.0f),
59 if (calculate_r_gon_parameter_field) {
63 if (calculate_max_unit_parameter) {
66 if (calculate_x_axis_A_angle_bisector) {
71 if (calculate_segment_id) {
ccl_device_inline float stack_load_float(const ccl_private float *stack, const uint a)
ccl_device_inline void stack_store_float(ccl_private float *stack, const uint a, const float f)
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
constexpr T clamp(T, U, U) RET
ccl_device_noinline int svm_node_radial_tiling(ccl_private float *stack, uint4 node, int offset)
ccl_device float4 calculate_out_variables(bool calculate_r_gon_parameter_field, bool calculate_max_unit_parameter, bool normalize_r_gon_parameter, float r_gon_sides, float r_gon_roundness, float2 coord)
ccl_device float calculate_out_segment_id(float r_gon_sides, float2 coord)
uint x_axis_A_angle_bisector