Skip to content

Instantly share code, notes, and snippets.

@sturdysturge
Created January 31, 2021 19:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sturdysturge/ee6217901191637623353b3905486cca to your computer and use it in GitHub Desktop.
Save sturdysturge/ee6217901191637623353b3905486cca to your computer and use it in GitHub Desktop.
import simd
public extension float4x4 {
var forwardVector: simd_float3 {
simd_float3(columns.2.x, columns.2.y, columns.2.z).normalized
}
func movedForwardPosition(speed: Float) -> float4x4 {
var returnValue = self
returnValue.columns.3.x += (forwardVector.x * speed)
returnValue.columns.3.y += (forwardVector.y * speed)
returnValue.columns.3.z += (forwardVector.z * speed)
return returnValue
}
}
extension Float {
var degreesToRadians: Float { self * .pi / 180 }
}
public extension simd_float3 {
var negated: simd_float3 { self * -1 }
var magnitude: Float { sqrtf(x*x + y*y + z*z) }
var normalized: simd_float3 { return self / magnitude }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment