Shape can now be created without points
This commit is contained in:
parent
043d93a6ae
commit
640d12ab18
15
src/shape.c
15
src/shape.c
|
@ -69,12 +69,17 @@ Shape* shape_new(const Vector* points, size_t points_len) {
|
||||||
self->points = list_from_type(Vector);
|
self->points = list_from_type(Vector);
|
||||||
list_reserve(&self->points, points_len);
|
list_reserve(&self->points, points_len);
|
||||||
|
|
||||||
memcpy(list_iterator_begin_as(Vector, &self->points), points, points_len * sizeof(Vector));
|
if(points != NULL) {
|
||||||
self->points.len = points_len;
|
memcpy(list_iterator_begin_as(Vector, &self->points), points, points_len * sizeof(Vector));
|
||||||
|
self->points.len = points_len;
|
||||||
|
|
||||||
// derive metadata
|
// derive metadata
|
||||||
self->mean = _shape_calculate_mean(self);
|
self->mean = _shape_calculate_mean(self);
|
||||||
self->is_convex = _shape_calculate_is_convex(self);
|
self->is_convex = _shape_calculate_is_convex(self);
|
||||||
|
} else {
|
||||||
|
self->is_convex = 1;
|
||||||
|
self->mean = ZeroVector;
|
||||||
|
}
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue