mirror of https://github.com/GNOME/gimp.git
Bug 756775 - UnifiedTransformTool: nan value in handle geometry computation
Do not compute angle between 2 vectors if at least one of them is a null vector. Return 0.0 instead.
This commit is contained in:
parent
bc980cd73a
commit
127b3de54a
|
@ -148,6 +148,12 @@ transform_is_convex (GimpVector2 *pos)
|
||||||
pos[3].x, pos[3].y);
|
pos[3].x, pos[3].y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline gboolean
|
||||||
|
vectorisnull (GimpVector2 v)
|
||||||
|
{
|
||||||
|
return ((v.x == 0.0) && (v.y == 0.0));
|
||||||
|
}
|
||||||
|
|
||||||
static inline gdouble
|
static inline gdouble
|
||||||
dotprod (GimpVector2 a,
|
dotprod (GimpVector2 a,
|
||||||
GimpVector2 b)
|
GimpVector2 b)
|
||||||
|
@ -210,7 +216,12 @@ calcangle (GimpVector2 a,
|
||||||
GimpVector2 b)
|
GimpVector2 b)
|
||||||
{
|
{
|
||||||
gdouble angle, angle2;
|
gdouble angle, angle2;
|
||||||
gdouble length = norm (a) * norm (b);
|
gdouble length;
|
||||||
|
|
||||||
|
if (vectorisnull (a) || vectorisnull (b))
|
||||||
|
return 0.0;
|
||||||
|
|
||||||
|
length = norm (a) * norm (b);
|
||||||
|
|
||||||
angle = acos (dotprod (a, b)/length);
|
angle = acos (dotprod (a, b)/length);
|
||||||
angle2 = b.y;
|
angle2 = b.y;
|
||||||
|
|
Loading…
Reference in New Issue