Skip to content

Instantly share code, notes, and snippets.

View azamsharp's full-sized avatar

Mohammad Azam azamsharp

View GitHub Profile
//
// ViewController.swift
// FirebaseML
//
// Created by Mohammad Azam on 5/8/18.
// Copyright © 2018 Mohammad Azam. All rights reserved.
//
import UIKit
import Firebase
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'FirebaseML' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for FirebaseML
pod 'Firebase/Core'
private func startLiveVideo() {
session.sessionPreset = AVCaptureSession.Preset.photo
let captureDevice = AVCaptureDevice.default(for: AVMediaType.video)
let deviceInput = try! AVCaptureDeviceInput(device: captureDevice!)
let deviceOutput = AVCaptureVideoDataOutput()
deviceOutput.videoSettings = [kCVPixelBufferPixelFormatTypeKey as String: Int(kCVPixelFormatType_32BGRA)]
deviceOutput.setSampleBufferDelegate(self, queue: DispatchQueue.global(qos: DispatchQoS.QoSClass.default))
session.addInput(deviceInput)
func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
}
func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
if let barcodeDetector = self.barcodeDetector {
let visionImage = VisionImage(buffer: sampleBuffer)
barcodeDetector.detect(in: visionImage) { (barcodes, error) in
if let error = error {
print(error.localizedDescription)
@IBOutlet var sceneView: ARSCNView!
private var gSession :GARSession!
private var arAnchor :ARAnchor!
private var garAnchor :GARAnchor!
private var rootRef :DatabaseReference!
override func viewDidLoad() {
super.viewDidLoad()
self.rootRef = Database.database().reference()
func session(_ session: ARSession, didUpdate frame: ARFrame) {
try! self.gSession.update(frame)
}
private func hitTestWithPlane(touch :CGPoint) {
let hitTestResults = sceneView.hitTest(touch, types: .existingPlane)
if !hitTestResults.isEmpty {
if let hitTestResult = hitTestResults.first {
print("plane hit test")
print(hitTestResult.worldTransform)
addAnchorWithTransform(transform: hitTestResult.worldTransform)
private func addAnchorWithTransform(transform :matrix_float4x4) {
self.arAnchor = ARAnchor(transform: transform)
self.sceneView.session.add(anchor: self.arAnchor)
// host the anchor
self.garAnchor = try! self.gSession.hostCloudAnchor(self.arAnchor)
}
func session(_ session: GARSession, didHostAnchor anchor: GARAnchor) {
if let cloudIdentifier = anchor.cloudIdentifier {
self.cloudIdentifier = cloudIdentifier
}
}