From 2328058b46f8dd1f2a80b860e49f89ec0a80a660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Janouch?= Date: Sun, 9 Jan 2011 04:35:10 +0100 Subject: [PATCH] Add ld_point_distance(). --- src/ld-types.c | 22 ++++++++++++++++++++++ src/ld-types.h | 1 + 2 files changed, 23 insertions(+) diff --git a/src/ld-types.c b/src/ld-types.c index 512bcef..5bed9dc 100644 --- a/src/ld-types.c +++ b/src/ld-types.c @@ -8,6 +8,8 @@ * */ +#include + #include #include "config.h" @@ -70,6 +72,26 @@ DEFINE_BOXED_TRIVIAL_COPY (LdPoint, ld_point) */ DEFINE_BOXED_TRIVIAL_FREE (LdPoint, ld_point) +/** + * ld_point_distance: + * @self: An #LdPoint structure. + * @x: The X coordinate of the second point. + * @y: The Y coordinate of the second point. + * + * Compute the distance between two points. + */ +gdouble +ld_point_distance (LdPoint *self, gdouble x, gdouble y) +{ + gdouble dx, dy; + + g_return_val_if_fail (self != NULL, -1); + + dx = self->x - x; + dy = self->y - y; + return sqrt (dx * dx + dy * dy); +} + /** * ld_point_array_new: * @num_points: The number of points the array can store. diff --git a/src/ld-types.h b/src/ld-types.h index 6837f74..61a1a7d 100644 --- a/src/ld-types.h +++ b/src/ld-types.h @@ -48,6 +48,7 @@ GType ld_point_get_type (void) G_GNUC_CONST; LdPoint *ld_point_copy (const LdPoint *self); void ld_point_free (LdPoint *self); +gdouble ld_point_distance (LdPoint *self, gdouble x, gdouble y); /**