From 640d12ab18d56ab99c5c21b50a7caf3394f9bb95 Mon Sep 17 00:00:00 2001 From: Sara Date: Wed, 25 Oct 2023 20:27:19 +0200 Subject: [PATCH] Shape can now be created without points --- src/shape.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/shape.c b/src/shape.c index 17b47e3..35aa34c 100644 --- a/src/shape.c +++ b/src/shape.c @@ -69,12 +69,17 @@ Shape* shape_new(const Vector* points, size_t points_len) { self->points = list_from_type(Vector); list_reserve(&self->points, points_len); - memcpy(list_iterator_begin_as(Vector, &self->points), points, points_len * sizeof(Vector)); - self->points.len = points_len; + if(points != NULL) { + memcpy(list_iterator_begin_as(Vector, &self->points), points, points_len * sizeof(Vector)); + self->points.len = points_len; - // derive metadata - self->mean = _shape_calculate_mean(self); - self->is_convex = _shape_calculate_is_convex(self); + // derive metadata + self->mean = _shape_calculate_mean(self); + self->is_convex = _shape_calculate_is_convex(self); + } else { + self->is_convex = 1; + self->mean = ZeroVector; + } return self; }