Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/util/util_math_float2.h
| Show All 21 Lines | |||||
| #endif | #endif | ||||
| CCL_NAMESPACE_BEGIN | CCL_NAMESPACE_BEGIN | ||||
| /******************************************************************************* | /******************************************************************************* | ||||
| * Declaration. | * Declaration. | ||||
| */ | */ | ||||
| #ifndef __KERNEL_OPENCL__ | |||||
| ccl_device_inline float2 operator-(const float2 &a); | ccl_device_inline float2 operator-(const float2 &a); | ||||
| ccl_device_inline float2 operator*(const float2 &a, const float2 &b); | ccl_device_inline float2 operator*(const float2 &a, const float2 &b); | ||||
| ccl_device_inline float2 operator*(const float2 &a, float f); | ccl_device_inline float2 operator*(const float2 &a, float f); | ||||
| ccl_device_inline float2 operator*(float f, const float2 &a); | ccl_device_inline float2 operator*(float f, const float2 &a); | ||||
| ccl_device_inline float2 operator/(float f, const float2 &a); | ccl_device_inline float2 operator/(float f, const float2 &a); | ||||
| ccl_device_inline float2 operator/(const float2 &a, float f); | ccl_device_inline float2 operator/(const float2 &a, float f); | ||||
| ccl_device_inline float2 operator/(const float2 &a, const float2 &b); | ccl_device_inline float2 operator/(const float2 &a, const float2 &b); | ||||
| ccl_device_inline float2 operator+(const float2 &a, const float f); | ccl_device_inline float2 operator+(const float2 &a, const float f); | ||||
| Show All 20 Lines | |||||
| ccl_device_inline float2 safe_normalize(const float2 &a); | ccl_device_inline float2 safe_normalize(const float2 &a); | ||||
| ccl_device_inline float2 min(const float2 &a, const float2 &b); | ccl_device_inline float2 min(const float2 &a, const float2 &b); | ||||
| ccl_device_inline float2 max(const float2 &a, const float2 &b); | ccl_device_inline float2 max(const float2 &a, const float2 &b); | ||||
| ccl_device_inline float2 clamp(const float2 &a, const float2 &mn, const float2 &mx); | ccl_device_inline float2 clamp(const float2 &a, const float2 &mn, const float2 &mx); | ||||
| ccl_device_inline float2 fabs(const float2 &a); | ccl_device_inline float2 fabs(const float2 &a); | ||||
| ccl_device_inline float2 as_float2(const float4 &a); | ccl_device_inline float2 as_float2(const float4 &a); | ||||
| ccl_device_inline float2 interp(const float2 &a, const float2 &b, float t); | ccl_device_inline float2 interp(const float2 &a, const float2 &b, float t); | ||||
| ccl_device_inline float2 floor(const float2 &a); | ccl_device_inline float2 floor(const float2 &a); | ||||
| #endif /* !__KERNEL_OPENCL__ */ | |||||
| ccl_device_inline float2 safe_divide_float2_float(const float2 a, const float b); | ccl_device_inline float2 safe_divide_float2_float(const float2 a, const float b); | ||||
| /******************************************************************************* | /******************************************************************************* | ||||
| * Definition. | * Definition. | ||||
| */ | */ | ||||
| ccl_device_inline float2 zero_float2() | ccl_device_inline float2 zero_float2() | ||||
| { | { | ||||
| return make_float2(0.0f, 0.0f); | return make_float2(0.0f, 0.0f); | ||||
| } | } | ||||
| ccl_device_inline float2 one_float2() | ccl_device_inline float2 one_float2() | ||||
| { | { | ||||
| return make_float2(1.0f, 1.0f); | return make_float2(1.0f, 1.0f); | ||||
| } | } | ||||
| #ifndef __KERNEL_OPENCL__ | |||||
| ccl_device_inline float2 operator-(const float2 &a) | ccl_device_inline float2 operator-(const float2 &a) | ||||
| { | { | ||||
| return make_float2(-a.x, -a.y); | return make_float2(-a.x, -a.y); | ||||
| } | } | ||||
| ccl_device_inline float2 operator*(const float2 &a, const float2 &b) | ccl_device_inline float2 operator*(const float2 &a, const float2 &b) | ||||
| { | { | ||||
| return make_float2(a.x * b.x, a.y * b.y); | return make_float2(a.x * b.x, a.y * b.y); | ||||
| ▲ Show 20 Lines • Show All 163 Lines • ▼ Show 20 Lines | ccl_device_inline float2 mix(const float2 &a, const float2 &b, float t) | ||||
| return a + t * (b - a); | return a + t * (b - a); | ||||
| } | } | ||||
| ccl_device_inline float2 floor(const float2 &a) | ccl_device_inline float2 floor(const float2 &a) | ||||
| { | { | ||||
| return make_float2(floorf(a.x), floorf(a.y)); | return make_float2(floorf(a.x), floorf(a.y)); | ||||
| } | } | ||||
| #endif /* !__KERNEL_OPENCL__ */ | |||||
| ccl_device_inline float2 safe_divide_float2_float(const float2 a, const float b) | ccl_device_inline float2 safe_divide_float2_float(const float2 a, const float b) | ||||
| { | { | ||||
| return (b != 0.0f) ? a / b : zero_float2(); | return (b != 0.0f) ? a / b : zero_float2(); | ||||
| } | } | ||||
| CCL_NAMESPACE_END | CCL_NAMESPACE_END | ||||
| #endif /* __UTIL_MATH_FLOAT2_H__ */ | #endif /* __UTIL_MATH_FLOAT2_H__ */ | ||||