feat(slam): add rtabmap_ros
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
//
|
||||
// AppDelegate.swift
|
||||
// GLKittutorial
|
||||
//
|
||||
// Created by Mathieu Labbe on 2020-12-28.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import ARKit
|
||||
|
||||
func setDefaultsFromSettingsBundle() {
|
||||
|
||||
let plistFiles = ["Root", "Mapping", "Assembling"]
|
||||
|
||||
for plistName in plistFiles {
|
||||
//Read PreferenceSpecifiers from Root.plist in Settings.Bundle
|
||||
if let settingsURL = Bundle.main.url(forResource: plistName, withExtension: "plist", subdirectory: "Settings.bundle"),
|
||||
let settingsPlist = NSDictionary(contentsOf: settingsURL),
|
||||
let preferences = settingsPlist["PreferenceSpecifiers"] as? [NSDictionary] {
|
||||
|
||||
for prefSpecification in preferences {
|
||||
|
||||
if let key = prefSpecification["Key"] as? String, let value = prefSpecification["DefaultValue"] {
|
||||
|
||||
//If key doesn't exists in userDefaults then register it, else keep original value
|
||||
if UserDefaults.standard.value(forKey: key) == nil {
|
||||
|
||||
UserDefaults.standard.set(value, forKey: key)
|
||||
NSLog("registerDefaultsFromSettingsBundle: Set following to UserDefaults - (key: \(key), value: \(value), type: \(type(of: value)))")
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
NSLog("registerDefaultsFromSettingsBundle: Could not find Settings.bundle")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@main
|
||||
class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||
|
||||
var window: UIWindow?
|
||||
|
||||
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
|
||||
|
||||
// Always set Version to default
|
||||
let defaults = UserDefaults.standard
|
||||
defaults.removeObject(forKey: "Version")
|
||||
|
||||
setDefaultsFromSettingsBundle()
|
||||
|
||||
// Override point for customization after application launch.
|
||||
if !ARWorldTrackingConfiguration.supportsFrameSemantics(.sceneDepth) {
|
||||
// Ensure that the device supports scene depth and present
|
||||
// an error-message view controller, if not.
|
||||
let storyboard = UIStoryboard(name: "Main", bundle: nil)
|
||||
window?.rootViewController = storyboard.instantiateViewController(withIdentifier: "unsupportedDeviceMessage")
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
// MARK: UISceneSession Lifecycle
|
||||
|
||||
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
|
||||
// Called when a new scene session is being created.
|
||||
// Use this method to select a configuration to create the new scene with.
|
||||
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
|
||||
}
|
||||
|
||||
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
|
||||
// Called when the user discards a scene session.
|
||||
// If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
|
||||
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user