Did not implement edge based collision (performance concerns) merged other modifications

This commit is contained in:
Sara 2023-10-23 21:59:30 +02:00
commit 256fef97d9
2 changed files with 8 additions and 0 deletions

View file

@ -141,6 +141,10 @@ void shape_insert_point(Shape* self, size_t at, Vector point) {
list_insert(&self->points, &point, at);
}
List* shape_get_points(Shape* self) {
return &self->points;
}
Vector shape_remove_point(Shape* self, size_t at) {
Vector point = *list_at_as(Vector, &self->points, at);
list_erase(&self->points, at);

View file

@ -120,6 +120,10 @@ Vector vrotatef(Vector a, float t) {
};
}
static inline
float vanglebetweenf(Vector a, Vector b) {
return vdotf(a, b) / (vmagnitudef(a) * vmagnitudef(b));
}
static inline
Vector vprojectf(Vector onto, Vector from) {
float dot = vdotf(onto, from);
return vmulff(onto, dot);