minor cleanup

This commit is contained in:
jacob 2024-09-13 15:27:46 -05:00
parent e8bc83df3a
commit 3ed16a426b
2 changed files with 9 additions and 13 deletions

View File

@ -128,8 +128,8 @@ INTERNAL void spawn_test_entities(void)
struct v2 size = V2(1, 1);
//f32 r = PI / 4;
//f32 r = PI / 3;
f32 r = PI / 2;
//f32 r = 0;
//f32 r = PI / 2;
f32 r = 0;
f32 skew = 0;
struct entity *e = entity_alloc(root);
@ -187,6 +187,7 @@ INTERNAL void spawn_test_entities(void)
//struct v2 pos = V2(0.5, -0.5);
struct v2 pos = V2(0.5, -1);
struct v2 size = V2(1, 1);
//f32 rot = PI / 4;
f32 rot = 0;
struct entity *e = entity_alloc(root);

View File

@ -371,15 +371,14 @@ struct gjk_contact_points_result gjk_contact_points(struct v2_array shape0, stru
/* Resolve points */
if (s.len == 1) {
num_pairs = 1;
pair0.p0 = s.a.p0;
pair0.p1 = s.a.p1;
num_pairs = 1;
} else {
ASSERT(s.len == 2);
b32 p0_is_on_edge = !v2_eq(s.a.p0, s.b.p0);
b32 p1_is_on_edge = !v2_eq(s.a.p1, s.b.p1);
if (p0_is_on_edge && p1_is_on_edge) {
/* Closest features are both faces, use midpoint of clipped faces to represent contact points */
/* TODO: Epsilon */
if (!v2_eq(s.a.p0, s.b.p0) && !v2_eq(s.a.p1, s.b.p1)) {
/* Closest features are both faces, return clipped edge points of each face */
num_pairs = 2;
struct v2 a = s.a.p0;
struct v2 b = s.b.p0;
@ -404,12 +403,8 @@ struct gjk_contact_points_result gjk_contact_points(struct v2_array shape0, stru
} else {
/* Determine ratio between edge a & b that projected origin lies */
num_pairs = 1;
f32 ratio;
{
struct v2 vab = v2_sub(s.b.p, s.a.p);
struct v2 vao = v2_neg(s.a.p);
ratio = clamp_f32(v2_dot(vab, vao) / v2_dot(vab, vab), 0, 1);
}
struct v2 vab = v2_sub(s.b.p, s.a.p);
f32 ratio = clamp_f32(v2_dot(vab, v2_neg(s.a.p)) / v2_dot(vab, vab), 0, 1);
pair0.p0 = v2_add(s.a.p0, v2_mul(v2_sub(s.b.p0, s.a.p0), ratio));
pair0.p1 = v2_add(s.a.p1, v2_mul(v2_sub(s.b.p1, s.a.p1), ratio));
}