The Skung Cave commit
This commit is contained in:
@ -2,7 +2,7 @@ import Foundation
|
||||
import JolkEngine
|
||||
|
||||
|
||||
class Collision
|
||||
struct Collision
|
||||
{
|
||||
struct Edge { let p: Vec2f, n: Vec2f, w: Float }
|
||||
|
||||
@ -66,16 +66,16 @@ class Collision
|
||||
|
||||
enum Winding { case none, cw, ccw }
|
||||
|
||||
func build(obj: ObjModel, collision: ObjModel.Object)
|
||||
mutating func build(obj: ObjModel, collision: ObjModel.Object)
|
||||
{
|
||||
for face in collision.faces
|
||||
for face in collision.meshes.flatMap({ $0.faces })
|
||||
{
|
||||
switch face
|
||||
{
|
||||
case .triangle(let v1, let v2, let v3):
|
||||
let t = Triangle(obj.positions[v1.p], obj.positions[v2.p], obj.positions[v3.p])
|
||||
let n = t.normal
|
||||
if abs(n.y) < 0.25 { continue }
|
||||
if abs(n.y) == 0 { continue }
|
||||
edge3d.append(.triangle(normal: n, origin: (t.a + t.b + t.c) / 3.0, tri: t))
|
||||
case .quad(let v1, let v2, let v3, let v4):
|
||||
let q = Quad(obj.positions[v1.p], obj.positions[v2.p], obj.positions[v3.p], obj.positions[v4.p])
|
||||
|
Reference in New Issue
Block a user