From 3a4c3c3d8c1dce6ba5c7634d752fda6a6ee0914a Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 23 Dec 2020 13:36:19 -0500 Subject: [PATCH] Add gsk_curve_get_normal Its easy but thats no reason not to have this api. --- gsk/gskcurve.c | 13 +++++++++++++ gsk/gskcurveprivate.h | 3 +++ 2 files changed, 16 insertions(+) diff --git a/gsk/gskcurve.c b/gsk/gskcurve.c index 3e520449a7..2c1dbf4550 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,