diff --git a/.gitattributes b/.gitattributes index 660c855..7bac928 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,3 +2,4 @@ *.glb filter=lfs diff=lfs merge=lfs -text *.jpg filter=lfs diff=lfs merge=lfs -text *.jpeg filter=lfs diff=lfs merge=lfs -text +*.blend filter=lfs diff=lfs merge=lfs -text diff --git a/game/assets/assets.odin b/game/assets/assets.odin index 67e6d0d..4e072da 100644 --- a/game/assets/assets.odin +++ b/game/assets/assets.odin @@ -305,30 +305,30 @@ get_convex :: proc(assetman: ^Asset_Manager, path: cstring) -> (result: Loaded_C } face.normal = plane.normal - // for index in indices[3:] { - // assert( - // abs(collision.signed_distance_plane(vertices[index].pos, plane)) < 0.01, - // "mesh has non planar faces", - // ) - // } + for index in indices[3:] { + assert( + abs(collision.signed_distance_plane(vertices[index].pos, plane)) < 0.01, + "mesh has non planar faces", + ) + } - // first_vert_pos := vertices[indices[0]].pos + first_vert_pos := vertices[indices[0]].pos for i in 0 ..< len(indices) { edge_idx := halfedge.Edge_Index(first_edge_idx + i) prev_edge_relative := i == 0 ? len(indices) - 1 : i - 1 next_edge_relative := (i + 1) % len(indices) i1, i2 := indices[i], indices[next_edge_relative] - v1, _ := &vertices[i1], &vertices[i2] + v1, v2 := &vertices[i1], &vertices[i2] - // assert( - // lg.dot( - // lg.cross(v1.pos - first_vert_pos, v2.pos - first_vert_pos), - // plane.normal, - // ) >= - // 0, - // "non convex face or non ccw winding", - // ) + assert( + lg.dot( + lg.cross(v1.pos - first_vert_pos, v2.pos - first_vert_pos), + plane.normal, + ) >= + 0, + "non convex face or non ccw winding", + ) if v1.edge == -1 { v1.edge = edge_idx diff --git a/src_assets/car_convex.blend b/src_assets/car_convex.blend index 3d67405..1b13577 100644 Binary files a/src_assets/car_convex.blend and b/src_assets/car_convex.blend differ