minor cleanup
This commit is contained in:
parent
e8bc83df3a
commit
3ed16a426b
@ -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);
|
||||
|
||||
|
||||
17
src/gjk.c
17
src/gjk.c
@ -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));
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user