Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import ARKit;
- //#import "CodableUtils.h"
- class CodableUtils : NSObject {
- class func convertSimdFloat3ToString(vector:simd_float3) -> String {
- return String(format:"%f %f %f", vector[0], vector[1], vector[2])
- }
- class func convertSimdFloat4x4ToString(matrix:simd_float4x4) -> String {
- let ret:NSMutableString = NSMutableString(capacity:0)
- for var i:Int=0 ; i< 4 ; i++ {
- for var j:Int=0 ; j< 4 ; j++ {
- ret.appendString(String(format:"%f ", matrix.columns[i][j]))
- }
- }
- return ret
- }
- class func convertARAnchorToDictionary(anchor:ARAnchor) -> NSDictionary {
- let params:NSMutableDictionary = ["identifier": anchor.identifier.UUIDString(),
- "transform": CodableUtils.convertSimdFloat4x4ToString(anchor.transform)
- ].mutableCopy()
- if anchor.isMemberOfClass(ARPlaneAnchor.self) {
- let plane:ARPlaneAnchor = anchor
- params.setObject("planeAnchor", forKey:"anchorType")
- params.setObject(CodableUtils.convertSimdFloat3ToString(plane.center), forKey:"center")
- params.setObject(CodableUtils.convertSimdFloat3ToString(plane.extent), forKey:"extent")
- }
- if anchor.isMemberOfClass(ARImageAnchor.self) {
- let image:ARImageAnchor = anchor
- params.setObject("imageAnchor", forKey:"anchorType")
- params.setObject(image.referenceImage.name, forKey:"referenceImageName")
- }
- if anchor.isMemberOfClass(ARFaceAnchor.self) {
- params.setObject("faceAnchor", forKey:"anchorType")
- let faceAnchor:ARFaceAnchor = anchor
- params.setObject(CodableUtils.convertSimdFloat4x4ToString(faceAnchor.leftEyeTransform), forKey:"leftEyeTransform")
- params.setObject(CodableUtils.convertSimdFloat4x4ToString(faceAnchor.rightEyeTransform), forKey:"rightEyeTransform")
- params.setObject(faceAnchor.blendShapes, forKey:"blendShapes")
- }
- return params
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement