Skip to content

Instantly share code, notes, and snippets.

View elijahzarlin's full-sized avatar

Elijah Zarlin elijahzarlin

View GitHub Profile
@elijahzarlin
elijahzarlin / world-scale-ar-class.swift
Created September 13, 2018 18:36
world-scale-ar-3
internal extension matrix_float4x4 {
func rotationAroundY(radians: Float) -> matrix_float4x4 {
var matrix: matrix_float4x4 = self
matrix.columns.0.x = cos(radians)
matrix.columns.0.z = -sin(radians)
matrix.columns.2.x = sin(radians)
matrix.columns.2.z = cos(radians)
@elijahzarlin
elijahzarlin / world-scale-ar-rotate.swift
Last active September 13, 2018 18:34
world-scale-ar-2
func transformMatrix(originLocation: CLLocation, destinationLocation: CLLocation) -> simd_float4x4 {
let azimuth = azimuthBetween(origin: originLocation, destination: destinationLocation)
// Place POIs "z" meters away from camera
let position = vector_float4(0, 0, -10, 0)
let translationMatrix = matrix_identity_float4x4.translationMatrix(position)
// Rotate POI based on azimuth
let rotationMatrix = matrix_identity_float4x4.rotationAroundY(radians: azimuth)
@elijahzarlin
elijahzarlin / world-scale-ar-1.swift
Last active September 13, 2018 18:21
world scale ar post
func azimuthBetween(origin: CLLocation, destination: CLLocation) -> Float {
var azimuth: Float = 0
let originLatitude = GLKMathDegreesToRadians(Float(origin.coordinate.latitude))
let originLongitude = GLKMathDegreesToRadians(Float(origin.coordinate.longitude))
let destinationLatitude = GLKMathDegreesToRadians(Float(destination.coordinate.latitude))
let destinationLongitude = GLKMathDegreesToRadians(Float(destination.coordinate.longitude))
let dLon = destinationLongitude - originLongitude