summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-12-23 13:36:19 -0500
committerMatthias Clasen <mclasen@redhat.com>2021-12-04 22:58:23 -0500
commitd08802a2c36bad053e0dd2d770e4eaffcac80cbe (patch)
tree7346a0d14f4a633654e9c594e4d8bd3d0dd3e953
parent759bf152d341cd7cf9b820c639595c805f433e68 (diff)
downloadgtk+-d08802a2c36bad053e0dd2d770e4eaffcac80cbe.tar.gz
Add gsk_curve_get_normal
Its easy but thats no reason not to have this api.
-rw-r--r--gsk/gskcurve.c13
-rw-r--r--gsk/gskcurveprivate.h3
2 files changed, 16 insertions, 0 deletions
diff --git a/gsk/gskcurve.c b/gsk/gskcurve.c
index db997b10e1..0586a8a05b 100644
--- a/gsk/gskcurve.c
+++ b/gsk/gskcurve.c
@@ -430,6 +430,19 @@ gsk_curve_curve_get_tangent (const GskCurve *curve,
graphene_vec2_normalize (tangent, tangent);
}
+void
+gsk_curve_get_normal (const GskCurve *curve,
+ float t,
+ graphene_vec2_t *normal)
+{
+ graphene_vec2_t tangent;
+
+ gsk_curve_get_tangent (curve, t, &tangent);
+ graphene_vec2_init (normal,
+ - graphene_vec2_get_y (&tangent),
+ graphene_vec2_get_x (&tangent));
+}
+
static void
gsk_curve_curve_split (const GskCurve *curve,
float progress,
diff --git a/gsk/gskcurveprivate.h b/gsk/gskcurveprivate.h
index 0f721e2016..3d454896c9 100644
--- a/gsk/gskcurveprivate.h
+++ b/gsk/gskcurveprivate.h
@@ -96,6 +96,9 @@ void gsk_curve_get_point (const GskCurve
void gsk_curve_get_tangent (const GskCurve *curve,
float progress,
graphene_vec2_t *tangent);
+void gsk_curve_get_normal (const GskCurve *curve,
+ float progress,
+ graphene_vec2_t *normal);
void gsk_curve_split (const GskCurve *curve,
float progress,
GskCurve *start,