Correct bad mistake in own recent to commit to angle calculation
This commit is contained in:
@@ -292,39 +292,35 @@ float angle_signed_v2v2(const float v1[2], const float v2[2])
|
|||||||
|
|
||||||
float angle_normalized_v3v3(const float v1[3], const float v2[3])
|
float angle_normalized_v3v3(const float v1[3], const float v2[3])
|
||||||
{
|
{
|
||||||
const float len_sq = dot_v3v3(v1, v2);
|
|
||||||
|
|
||||||
/* double check they are normalized */
|
/* double check they are normalized */
|
||||||
BLI_ASSERT_UNIT_V3(v1);
|
BLI_ASSERT_UNIT_V3(v1);
|
||||||
BLI_ASSERT_UNIT_V3(v2);
|
BLI_ASSERT_UNIT_V3(v2);
|
||||||
|
|
||||||
/* this is the same as acos(dot_v3v3(v1, v2)), but more accurate */
|
/* this is the same as acos(dot_v3v3(v1, v2)), but more accurate */
|
||||||
if (len_sq >= 0.0f) {
|
if (dot_v3v3(v1, v2) >= 0.0f) {
|
||||||
return 2.0f * saasin(sqrtf(len_sq) / 2.0f);
|
return 2.0f * saasin(len_v3v3(v1, v2) / 2.0f);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
float vec[3];
|
float v2_n[3];
|
||||||
negate_v3_v3(vec, v2);
|
negate_v3_v3(v2_n, v2);
|
||||||
return (float)M_PI - 2.0f * saasin(len_v3v3(vec, v1) / 2.0f);
|
return (float)M_PI - 2.0f * saasin(len_v3v3(v1, v2_n) / 2.0f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
float angle_normalized_v2v2(const float v1[2], const float v2[2])
|
float angle_normalized_v2v2(const float v1[2], const float v2[2])
|
||||||
{
|
{
|
||||||
const float len_sq = dot_v2v2(v1, v2);
|
|
||||||
|
|
||||||
/* double check they are normalized */
|
/* double check they are normalized */
|
||||||
BLI_ASSERT_UNIT_V2(v1);
|
BLI_ASSERT_UNIT_V2(v1);
|
||||||
BLI_ASSERT_UNIT_V2(v2);
|
BLI_ASSERT_UNIT_V2(v2);
|
||||||
|
|
||||||
/* this is the same as acos(dot_v3v3(v1, v2)), but more accurate */
|
/* this is the same as acos(dot_v3v3(v1, v2)), but more accurate */
|
||||||
if (len_sq >= 0.0f) {
|
if (dot_v2v2(v1, v2) >= 0.0f) {
|
||||||
return 2.0f * saasin(sqrtf(len_sq) / 2.0f);
|
return 2.0f * saasin(len_v2v2(v1, v2) / 2.0f);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
float vec[2];
|
float v2_n[2];
|
||||||
negate_v2_v2(vec, v2);
|
negate_v2_v2(v2_n, v2);
|
||||||
return (float)M_PI - 2.0f * saasin(len_v2v2(vec, v1) / 2.0f);
|
return (float)M_PI - 2.0f * saasin(len_v2v2(v1, v2_n) / 2.0f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user