Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
[submodule "Dependencies/DependencyGraph"]
path = Dependencies/DependencyGraph
url = git@github.com:P0rc3lain/DependencyGraph.git
[submodule "Dependencies/ZPack"]
path = Dependencies/ZPack
url = git@github.com:P0rc3lain/ZPack.git
1 change: 1 addition & 0 deletions Dependencies/ZPack
Submodule ZPack added at abb19d
29 changes: 11 additions & 18 deletions Engine.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

12 changes: 0 additions & 12 deletions Engine/Core/Extensions/Swift/Float+Extension.swift

This file was deleted.

32 changes: 0 additions & 32 deletions Engine/Core/Extensions/simd/simd_float3+Extension.swift

This file was deleted.

29 changes: 0 additions & 29 deletions Engine/Core/Extensions/simd/simd_float3x3+Extension.swift

This file was deleted.

9 changes: 0 additions & 9 deletions Engine/Core/Extensions/simd/simd_float4+Extension.swift
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,6 @@
import simd

extension simd_float4 {
public var norm: Float {
length(self)
}
public var xyz: simd_float3 {
simd_float3(x, y, z)
}
var zyxw: simd_float4 {
simd_float4(z, y, x, w)
}
public static var defaultNormalsColor: simd_float4 {
simd_float4(1, 0.5, 0.5, 1)
}
Expand Down
93 changes: 1 addition & 92 deletions Engine/Core/Extensions/simd/simd_float4x4+Extension.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,88 +3,14 @@
//

import simd
import ZPack

extension simd_float4x4 {
public static var identity: simd_float4x4 {
matrix_identity_float4x4
}
public var translation: simd_float3 {
get {
columns.3.xyz
} set {
columns.3 = simd_float4(newValue, columns.3.w)
}
}
public var rotation: simd_quatf {
simd_quatf(self)
}
public var scale: simd_float3 {
simd_float3(simd_length(columns.0.xyz),
simd_length(columns.1.xyz),
simd_length(columns.2.xyz))
}
public var decomposed: PNPosition {
PNPosition(translation: translation,
rotation: rotation,
scale: scale)
}
public init(_ matrix: simd_double4x4) {
let columns = matrix.columns
self.init(columns: (simd_float4(columns.0),
simd_float4(columns.1),
simd_float4(columns.2),
simd_float4(columns.3)))
}
public init(repeatingRow row: simd_float4) {
self.init(rows: [row, row, row, row])
}
public init(repeatingColumn column: simd_float4) {
self.init(columns: (column, column, column, column))
}
public static func orientation(quaternion: simd_quatf) -> simd_float4x4 {
simd_float4x4(quaternion)
}
public static func translation(vector: simd_float3) -> simd_float4x4 {
simd_float4x4(columns: (simd_float4(1, 0, 0, 0),
simd_float4(0, 1, 0, 0),
simd_float4(0, 0, 1, 0),
simd_float4(vector, 1)))
}
public static func scale(_ factors: simd_float3) -> simd_float4x4 {
simd_float4x4(diagonal: simd_float4(factors, 1))
}
public static func scale(factor: Float) -> simd_float4x4 {
simd_float4x4(diagonal: simd_float4([factor, factor, factor], 1))
}
public static func perspectiveProjectionRightHand(fovyRadians: simd_float1,
aspect: simd_float1,
nearZ: simd_float1,
farZ: simd_float1) -> simd_float4x4 {
let yScale = 1 / tan(fovyRadians * 0.5)
let xScale = yScale / aspect
let zScale = farZ / (nearZ - farZ)
return simd_float4x4(rows: [simd_float4(yScale, 0, 0, 0),
simd_float4(0, xScale, 0, 0),
simd_float4(0, 0, zScale, nearZ * zScale),
simd_float4(0, 0, -1, 0 )])
}
static func orthographicProjection(left: Float,
right: Float,
top: Float,
bottom: Float,
near: Float,
far: Float) -> simd_float4x4 {
let sLength = 1.0 / (right - left)
let aLength = right + left
let sHeight = 1.0 / (top - bottom)
let aHeight = top + bottom
let sDepth = 1.0 / (far - near)
let p = simd_float4(2 * sLength, 0, 0, 0)
let q = simd_float4(0, 2 * sHeight, 0, 0)
let r = simd_float4(0, 0, -sDepth, 0)
let s = simd_float4(-aLength * sLength, -aHeight * sHeight, -near * sDepth, 1)
return float4x4(p, q, r, s)
}
static func orthographicProjection(bound: PNBound) -> simd_float4x4 {
orthographicProjection(left: bound.min.x,
right: bound.max.x,
Expand All @@ -93,21 +19,4 @@ extension simd_float4x4 {
near: bound.min.z,
far: bound.max.z)
}
public static func from(directionVector: simd_float3) -> simd_float4x4 {
simd_float3x3.from(directionVector: directionVector).expanded
}
public static func composeTRS(translation: simd_float3,
rotation: simd_quatf,
scale: simd_float3) -> simd_float4x4 {
.translation(vector: translation) * rotation.rotationMatrix * .scale(scale)
}
public static func composeRTS(translation: simd_float3,
rotation: simd_quatf,
scale: simd_float3) -> simd_float4x4 {
rotation.rotationMatrix * .translation(vector: translation) * .scale(scale)
}
public static func compose(translation: simd_float3,
scale: simd_float3) -> simd_float4x4 {
.translation(vector: translation) * .scale(scale)
}
}
11 changes: 0 additions & 11 deletions Engine/Core/Extensions/simd/simd_quatf+Extension.swift

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import Combine
import PNShared
import simd
import ZPack

public final class PNISceneNode: PNSceneNode {
public let name: String
Expand Down
1 change: 1 addition & 0 deletions Engine/Core/UI/PNIScreenInteractor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
//

import simd
import ZPack

class PNIScreenInteractor: PNScreenInteractor {
private let boundInteractor = PNIBoundInteractor()
Expand Down
Loading