Created
June 9, 2018 14:11
-
-
Save oliver-dew/9129370cb2add4e93076b1b197c9f4fb to your computer and use it in GitHub Desktop.
Examples for augmented office blog post
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor) { | |
guard let plane = anchor as? ARPlaneAnchor, | |
let geometry = node.geometry as? ARSCNPlaneGeometry | |
else { return } | |
geometry.update(from: plane.geometry) | |
node.boundingBox = planeBoundary(extent: plane.extent) | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? { | |
guard let plane = anchor as? ARPlaneAnchor, | |
let device = renderer.device, | |
let geometry = ARSCNPlaneGeometry(device: device) | |
else { return nil } | |
geometry.update(from: plane.geometry) | |
let maskMaterial = SCNMaterial() | |
maskMaterial.colorBufferWriteMask = [] | |
geometry.materials = [maskMaterial] | |
return SCNNode(geometry: geometry) | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private func planeBoundary(extent: float3) -> (min: SCNVector3, max: SCNVector3) { | |
let radius = extent * 0.5 | |
return (min: SCNVector3(-radius), max: SCNVector3(radius)) | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
override func viewWillAppear(_ animated: Bool) { | |
super.viewWillAppear(animated) | |
startTracking() | |
} | |
private func startTracking() { | |
sceneView.debugOptions = [ARSCNDebugOptions.showFeaturePoints] | |
let configuration = ARWorldTrackingConfiguration() | |
configuration.planeDetection = [.vertical, .horizontal] | |
sceneView.session.run(configuration, options: [.resetTracking, .removeExistingAnchors]) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment