forked from bartvdbraak/blender
Cleanup: sync map_to_sphere, UNLIKELY xy zero case
This commit is contained in:
parent
13c5b0d546
commit
106ea0b20b
@ -1419,10 +1419,12 @@ ccl_device bool map_to_sphere(float *r_u, float *r_v,
|
|||||||
{
|
{
|
||||||
float len = sqrtf(x * x + y * y + z * z);
|
float len = sqrtf(x * x + y * y + z * z);
|
||||||
if(len > 0.0f) {
|
if(len > 0.0f) {
|
||||||
if(x == 0.0f && y == 0.0f)
|
if(UNLIKELY(x == 0.0f && y == 0.0f)) {
|
||||||
*r_u = 0.0f; /* othwise domain error */
|
*r_u = 0.0f; /* othwise domain error */
|
||||||
else
|
}
|
||||||
|
else {
|
||||||
*r_u = (1.0f - atan2f(x, y) / M_PI_F) / 2.0f;
|
*r_u = (1.0f - atan2f(x, y) / M_PI_F) / 2.0f;
|
||||||
|
}
|
||||||
*r_v = 1.0f - safe_acosf(z / len) / M_PI_F;
|
*r_v = 1.0f - safe_acosf(z / len) / M_PI_F;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -3206,8 +3206,12 @@ void map_to_sphere(float *r_u, float *r_v, const float x, const float y, const f
|
|||||||
|
|
||||||
len = sqrtf(x * x + y * y + z * z);
|
len = sqrtf(x * x + y * y + z * z);
|
||||||
if (len > 0.0f) {
|
if (len > 0.0f) {
|
||||||
if (x == 0.0f && y == 0.0f) *r_u = 0.0f; /* othwise domain error */
|
if (UNLIKELY(x == 0.0f && y == 0.0f)) {
|
||||||
else *r_u = (1.0f - atan2f(x, y) / (float)M_PI) / 2.0f;
|
*r_u = 0.0f; /* othwise domain error */
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
*r_u = (1.0f - atan2f(x, y) / (float)M_PI) / 2.0f;
|
||||||
|
}
|
||||||
|
|
||||||
*r_v = 1.0f - saacos(z / len) / (float)M_PI;
|
*r_v = 1.0f - saacos(z / len) / (float)M_PI;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user