diff --git a/UnityExamples/Assets/Plugins/Android/AndroidManifest.xml.meta b/UnityExamples/Assets/Plugins/Android/AndroidManifest.xml.meta
index f40aea24..3119de23 100644
--- a/UnityExamples/Assets/Plugins/Android/AndroidManifest.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/AndroidManifest.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 2393f1c60f6984a86840c4b35f7ed04a
+guid: aee9217c7e3ab47afa63d020b46d12fd
TextScriptImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper.meta
index 9c8d8723..cb8ffc22 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: bbfa75534417f43268e9ae179792ed9f
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
PluginImporter:
serializedVersion: 1
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/AndroidManifest.xml.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/AndroidManifest.xml.meta
index cc423ec0..230bd227 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/AndroidManifest.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/AndroidManifest.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 96be092a8f1e949deb5fbf3756cfc9c9
+guid: 6c6d3010e866543088a365055cc88f6a
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/bin.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/bin.meta
index 3afc8e31..95b77b5b 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/bin.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/bin.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 25c2388b544974aecb4c6922931094ed
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/bin/AndroidManifest.xml.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/bin/AndroidManifest.xml.meta
index e29969d6..00359688 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/bin/AndroidManifest.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/bin/AndroidManifest.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: e95dee7639f3f475b87cb131a2810147
+guid: 6d555dad2c4be4e1292a76b9364cd87d
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/bin/R.txt.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/bin/R.txt.meta
index c804c35a..56820b89 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/bin/R.txt.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/bin/R.txt.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 881563345bd264b11881bc40daaf9ae8
+guid: 2eb6cda69656641d0b825ad3dff6febe
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/bin/unityuxhelper.jar.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/bin/unityuxhelper.jar.meta
index e700d13b..71325c48 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/bin/unityuxhelper.jar.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/bin/unityuxhelper.jar.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d197180e73e9c44578a8b57b31f30114
+guid: 4e6e2efeeb0d9478aa95ee05b198dba3
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/libs.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/libs.meta
index 2494b8a2..118e6721 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/libs.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/libs.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: c6d1ab5e100fd4c1cbaa8c3979bb0490
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/libs/android-support-v4.jar.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/libs/android-support-v4.jar.meta
index 69e40407..5193ddd6 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/libs/android-support-v4.jar.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/libs/android-support-v4.jar.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: e478d62c80bdc4eb7a4537395e43d2d4
+guid: 55f0632b08862498c85f394869a118fb
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/project.properties.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/project.properties.meta
index c177d76e..6eb8d24b 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/project.properties.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/project.properties.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 6ee62fba82b8f46888ed4e238b009f69
+guid: 9cc1c0f2dcce240729e26be670e4e973
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res.meta
index 61e263d4..b8e5a18f 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: bcf361d8b6fc14039888fd80ff8e611d
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-hdpi.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-hdpi.meta
index 648f4039..f061f0b2 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-hdpi.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-hdpi.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 1e24a1c4d95054282911e1d54cacea4f
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-hdpi/ic_launcher.png.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-hdpi/ic_launcher.png.meta
index f33217f5..c862efa3 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-hdpi/ic_launcher.png.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-hdpi/ic_launcher.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: b4f3404446af948898ae812b258fb9f4
+guid: d20c596774a4c4dbf9a080ed10804b04
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-mdpi.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-mdpi.meta
index 3be90909..10a4dda5 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-mdpi.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-mdpi.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 653b9f99ddb5a48cbb9c2ab03338c35e
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-mdpi/ic_launcher.png.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-mdpi/ic_launcher.png.meta
index f43e727a..4289b11b 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-mdpi/ic_launcher.png.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-mdpi/ic_launcher.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 1637279f49f194c5f8e590cf47b17b73
+guid: 3e694bf42b6bd47798685767bac0b978
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-xhdpi.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-xhdpi.meta
index 4482490a..1df6b493 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-xhdpi.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-xhdpi.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: c67d2ba4c8c344c3bbdf42616dae2628
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-xhdpi/ic_launcher.png.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-xhdpi/ic_launcher.png.meta
index 5b973ea4..dfc31de0 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-xhdpi/ic_launcher.png.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/drawable-xhdpi/ic_launcher.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: b8f60f4d776744ac9a2260fd600cbd9e
+guid: 4a26853b5cf62487a8f1f4e1b07663ad
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/layout.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/layout.meta
index 2f00bed5..3aa149ed 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/layout.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/layout.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: f4c21d0246fba44a48a91408f1603e1a
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/layout/tango_ux_exceptions.xml.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/layout/tango_ux_exceptions.xml.meta
index 77f21000..f397902e 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/layout/tango_ux_exceptions.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/layout/tango_ux_exceptions.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: da4df9c91f687403ba832060664e4b26
+guid: 6f33d20cd90f7446d9cbd768d5e923ab
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values-v11.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values-v11.meta
index 66c432dd..fee0b0e2 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values-v11.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values-v11.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 6b0817b96a4f84df296fec4387514b1a
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values-v11/styles.xml.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values-v11/styles.xml.meta
index 88b82f4e..2f77c63b 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values-v11/styles.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values-v11/styles.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 8e3a426843d0645578118da081fd63bf
+guid: cfc805e2962624383a66d588b45cfc2d
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values-v14.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values-v14.meta
index d3158658..18e07c04 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values-v14.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values-v14.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 32380f61c7e734ba2aabb538325cd629
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values-v14/styles.xml.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values-v14/styles.xml.meta
index ac9e546a..fcdd2a2d 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values-v14/styles.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values-v14/styles.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: c9114e3c1745f49f488faa8d96d70ce2
+guid: 619297ad98cd84bf19a2842b567a5802
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values.meta
index 8595ae5f..763d6f62 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 252ca1f4642954898849d1ee0108d7fc
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values/strings.xml.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values/strings.xml.meta
index c91135b7..261c17ce 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values/strings.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values/strings.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 65851139a950a4c2fa6e7c217d5bb815
+guid: d2806486e46164c02bf6785d73ccf778
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values/styles.xml.meta b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values/styles.xml.meta
index 147b8eba..4a7b050e 100644
--- a/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values/styles.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/UnityUxHelper/res/values/styles.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 4e88b9e176b794d97bf91c9f8f60591e
+guid: e5c0984fef11742debe9d5c919b78dbf
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper.meta b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper.meta
index 4c45c0a9..db983567 100644
--- a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper.meta
+++ b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 9cc69a99be59f444c828de9c33f550d0
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
PluginImporter:
serializedVersion: 1
diff --git a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/AndroidManifest.xml.meta b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/AndroidManifest.xml.meta
index 2a48edc3..d2283f18 100644
--- a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/AndroidManifest.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/AndroidManifest.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 1b2d5532425fe4f8789f276b0b6e40c1
+guid: 010949d0386834cdf8c1dbdcda1308f1
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin.meta b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin.meta
index f2074317..c6d9ab07 100644
--- a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin.meta
+++ b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 82e9828a3b16447768339ef7f7b16f84
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/AndroidManifest.xml.meta b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/AndroidManifest.xml.meta
index b3f1f5e9..ee58aec6 100644
--- a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/AndroidManifest.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/AndroidManifest.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 65d80c45f7ce943a6a648244a09e5037
+guid: e6c8d012020104b34bf842c47cbe2374
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes.meta b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes.meta
index d8c7c78c..847633e8 100644
--- a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes.meta
+++ b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 454c743945f934a0ab9888c983bb13a5
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com.meta b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com.meta
index 3f74b3e8..33e4a019 100644
--- a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com.meta
+++ b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: ea2c7df88ccd945f4bbacfc4f12a5d11
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google.meta b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google.meta
index 73f647a5..11378df7 100644
--- a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google.meta
+++ b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 428eb9ee5870d45608287202591e1a5c
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity.meta b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity.meta
index 7c4f3ec2..1e6c35eb 100644
--- a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity.meta
+++ b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 90a02237508e0480fa303a251d339c5a
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/BuildConfig.class.meta b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/BuildConfig.class.meta
index 9a319017..bf922a7b 100644
--- a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/BuildConfig.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/BuildConfig.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: bf953503dfbe74063b4fb432a26fc179
+guid: 785445ff5344747cb83bd4d094ddf6d9
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/GoogleUnityActivity$1.class.meta b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/GoogleUnityActivity$1.class.meta
index 2600c45e..a77cff26 100644
--- a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/GoogleUnityActivity$1.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/GoogleUnityActivity$1.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 40c864be56b7949f9a73a5d2ff611ace
+guid: fe9fd0a42ef3140b792d5d5f8f0b9d3a
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/GoogleUnityActivity$AndroidLifecycleListener.class.meta b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/GoogleUnityActivity$AndroidLifecycleListener.class.meta
index 487e3722..4f46780d 100644
--- a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/GoogleUnityActivity$AndroidLifecycleListener.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/GoogleUnityActivity$AndroidLifecycleListener.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 9528953aa35b2437b8754b41514827a6
+guid: e431a293812bc429abbc5928dd3731a3
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/GoogleUnityActivity.class b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/GoogleUnityActivity.class
index 301b6060..1842287e 100644
Binary files a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/GoogleUnityActivity.class and b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/GoogleUnityActivity.class differ
diff --git a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/GoogleUnityActivity.class.meta b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/GoogleUnityActivity.class.meta
index 2d5fc03f..489217c0 100644
--- a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/GoogleUnityActivity.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/classes/com/google/unity/GoogleUnityActivity.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: a852c112fb3364d92a1b79708349d9d7
+guid: ba16012c218b54884b081bd1c9ae30c3
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/google-unity-wrapper.jar b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/google-unity-wrapper.jar
index a5b38da1..608d1902 100644
Binary files a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/google-unity-wrapper.jar and b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/google-unity-wrapper.jar differ
diff --git a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/google-unity-wrapper.jar.meta b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/google-unity-wrapper.jar.meta
index be20c97b..496c7b92 100644
--- a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/google-unity-wrapper.jar.meta
+++ b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/bin/google-unity-wrapper.jar.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: f1483cc18315e4e8d8b6b090fc49aa85
+guid: d3fe9f572eca84f76a60dc5b4998feb8
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/project.properties.meta b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/project.properties.meta
index f00a5a80..bcf45f17 100644
--- a/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/project.properties.meta
+++ b/UnityExamples/Assets/Plugins/Android/google-unity-wrapper/project.properties.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: aec16ffd81f5d427cbc3310bff0f741c
+guid: c782a962409ae409db729f0cb83a0a71
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib.meta
index dfe0eadd..eb38f64d 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 00eaa1aad644d429c9958627e61314a8
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
PluginImporter:
serializedVersion: 1
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/AndroidManifest.xml.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/AndroidManifest.xml.meta
index fdf70ef6..3ca59245 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/AndroidManifest.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/AndroidManifest.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d5b7894f472184d69a7ee0ec0268374c
+guid: c76e5ec84619b49c6b8ec794dc217a47
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin.meta
index fabe20bb..2027276c 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 5abcd22b5d1924911a6fae133ad45259
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/AndroidManifest.xml.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/AndroidManifest.xml.meta
index 55fcaf18..f15ab991 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/AndroidManifest.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/AndroidManifest.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: b1c7735ba96a54f998a4007a1f75ca54
+guid: 8124236e17d3c4b6fad5063b4934f375
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes.meta
index 1e3450e0..a83647f9 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 9f48ceeaedcdd4ed6a129398670afb0a
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com.meta
index fce9ee7c..d8d0153b 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 182695de821454fd6921c64666cf1af3
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google.meta
index 7f456090..303ff4f7 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 15246131f5b974cf2b9d14d2ec46a8da
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap.meta
index dd722910..777b53d0 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: d197c0d282e174063b125216c6a22404
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tango.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tango.meta
index 65c2755f..02c05918 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tango.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tango.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 5bef54d15b8424c17b3bb533d11b41b1
folderAsset: yes
-timeCreated: 1440434027
+timeCreated: 1441729897
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tango/TangoJNINative.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tango/TangoJNINative.class.meta
index 2aefedf3..2da5d03e 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tango/TangoJNINative.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tango/TangoJNINative.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 2490437add03d40a7a0c984bc54056f6
+guid: 97cd2e33ae0d443c18d49f57106cd23c
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tango/package.html.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tango/package.html.meta
index 42b40f38..18ceee92 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tango/package.html.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tango/package.html.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 1eec34b98b7cf4387a20757c77e3c831
+guid: 1dc6954c7cdf342b48bce1baa97aa58d
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangohelperlib.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangohelperlib.meta
index 92894c0c..1b4ee7ca 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangohelperlib.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangohelperlib.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: afcff3dda4cde4f24868b9249d0e0afe
folderAsset: yes
-timeCreated: 1440434027
+timeCreated: 1441729897
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangohelperlib/BuildConfig.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangohelperlib/BuildConfig.class.meta
index 619da901..c75d7199 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangohelperlib/BuildConfig.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangohelperlib/BuildConfig.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: bae8ed9f3926b4d6a907aae2969596e6
+guid: e8090888be7514efe892f2b6f1adc538
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice.meta
index c7dd1ce3..013dd7bd 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 42dc9c9efcbc3474887eb565bc4d4ba7
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729897
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/Tango$OnTangoUpdateListener.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/Tango$OnTangoUpdateListener.class.meta
index e465876f..51dda841 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/Tango$OnTangoUpdateListener.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/Tango$OnTangoUpdateListener.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: c1ca5aac36e654a64b64ac0f5743507b
+guid: 2fe866aa5c0914e4bb0ca908d2866651
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/Tango.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/Tango.class.meta
index 6a8624ad..11bdb125 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/Tango.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/Tango.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 4b3952f55fde14ab58a5fdb46d10999b
+guid: 710b1e326fb6b4559a270ce6c16a9c8a
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoAreaDescriptionMetaData$1.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoAreaDescriptionMetaData$1.class.meta
index a5350a3c..2034a314 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoAreaDescriptionMetaData$1.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoAreaDescriptionMetaData$1.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: c3b398ec08679419daf50d8ed8f80f90
+guid: e4e0b14dadcb84abd8d1fc97e53510e5
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoAreaDescriptionMetaData.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoAreaDescriptionMetaData.class.meta
index d642899d..0f511dcb 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoAreaDescriptionMetaData.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoAreaDescriptionMetaData.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 8cd0a2c31d5304b9d985b2b11b70ad09
+guid: d9efe2d29da43420994602c56bd0f980
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCameraIntrinsics$1.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCameraIntrinsics$1.class.meta
index b4376a2d..3fbf9b77 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCameraIntrinsics$1.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCameraIntrinsics$1.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: f3f7aeda4b1b14463a45bf6f120e6d1f
+guid: b55d99d03cb3e4de7a05a448ec668eb4
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCameraIntrinsics.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCameraIntrinsics.class.meta
index aad32399..4c4f45af 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCameraIntrinsics.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCameraIntrinsics.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 849fe963df06c458392f592c188999c5
+guid: f16898839a1fd4a4d90141f7f2cd64fc
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCameraPreview$MainRenderer.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCameraPreview$MainRenderer.class.meta
index 626adc24..d6edf2bd 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCameraPreview$MainRenderer.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCameraPreview$MainRenderer.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 14eb58945af0241daad2258d8ae12f30
+guid: 9cb0685aa07be40ba8f59b4a54ac2acc
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCameraPreview.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCameraPreview.class.meta
index 9d0f830e..d7677666 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCameraPreview.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCameraPreview.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 62df46368d74d4bafbf99f5032e32189
+guid: e05139d87a337464899fc67de62a8c5b
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoConfig$1.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoConfig$1.class.meta
index 3a25ce93..78e97748 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoConfig$1.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoConfig$1.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: a8489cc3995514794b55a8df596ad66c
+guid: d479066d728004e56bb614cae23e0372
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoConfig.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoConfig.class.meta
index 1dc7ef33..8c1459d3 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoConfig.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoConfig.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 10278985a171c4843850ad3c6ea0c679
+guid: cdfd513f0da294dfeb6e277a2e247d8e
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCoordinateFramePair$1.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCoordinateFramePair$1.class.meta
index dd003118..91d3dc6f 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCoordinateFramePair$1.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCoordinateFramePair$1.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 4727a1939eb224110955aa533f477faa
+guid: 4fed07366463d440c917e3198b59c519
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCoordinateFramePair.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCoordinateFramePair.class.meta
index 4ce6f176..bbae1475 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCoordinateFramePair.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoCoordinateFramePair.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: a0d28fe1d922642b3804624aad124a1d
+guid: e664a63c7a2764c828e1bd6cd28b9c6c
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoErrorException.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoErrorException.class.meta
index 80f05148..d1f1f1b1 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoErrorException.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoErrorException.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 1980257d5d54b42529d57296e5b97ae2
+guid: a4d96fa5d5e2a43ea985ce88a84308de
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoEvent$1.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoEvent$1.class.meta
index 98e2b462..572a1ad4 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoEvent$1.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoEvent$1.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: ba912b0506033495cbc5377f2d18b625
+guid: 8ab405c03e3054536ae2aed4428d9777
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoEvent.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoEvent.class.meta
index 2a99867e..3b911a7f 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoEvent.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoEvent.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d488e7d41356f4cbca37c0247ec27d54
+guid: 3be78d234a1204e11be5fe3a06578124
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoException.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoException.class.meta
index 0114a7d9..150d33c5 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoException.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoException.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d8b62cc2d1019455185190c9b42099d2
+guid: a0a8134aea21e470b923f9c33db14975
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoInvalidException.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoInvalidException.class.meta
index 1af23d61..6a0041bb 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoInvalidException.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoInvalidException.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: cd0a282196f7749c8ae8891e1af2b835
+guid: b2b91dfc3eebe4c839eee22c856ff72a
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoOutOfDateException.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoOutOfDateException.class.meta
index 7cc60bbb..ef5fe1d0 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoOutOfDateException.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoOutOfDateException.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: f76f46da606ee4771bfb55496dd95a47
+guid: a327fef468d914eeaa0779155b83644f
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoPoseData$1.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoPoseData$1.class.meta
index 4eeaa3b0..1aea3956 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoPoseData$1.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoPoseData$1.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 1327ae508ab0c446993c66e5d26e42f0
+guid: 74a20ace050674c57b65823dab0a1ee7
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoPoseData.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoPoseData.class.meta
index 6c7a9427..9023b70a 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoPoseData.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoPoseData.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d15aec76a2b48497894e55a44a340aab
+guid: 10538c1229f9548ada766e74dda97eb5
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoTextureCameraPreview.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoTextureCameraPreview.class.meta
index ed0e690f..2a2f6978 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoTextureCameraPreview.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoTextureCameraPreview.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: ebb225fee42114515bf60608ed53c743
+guid: 9c34a9a831cc44713b1d277d3359ae78
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoXyzIjData$1.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoXyzIjData$1.class.meta
index 49d9ced2..15aefe14 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoXyzIjData$1.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoXyzIjData$1.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 7f5acc348bfe2419991081ace83ac40a
+guid: c6cff3eba9c164a9e9362498aac19a55
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoXyzIjData.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoXyzIjData.class.meta
index bb0a0417..14ec5b89 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoXyzIjData.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TangoXyzIjData.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d4ba66c146f434d6c8b4fd34192afe51
+guid: ddf58140c7c544c178ef57fd9ebeeecc
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TextureRenderer.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TextureRenderer.class.meta
index 4c1702b4..577dbfc7 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TextureRenderer.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/TextureRenderer.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 1930517bc24214c108e3f893f4cfcedc
+guid: 4b99a24cf90774bf38890a1f6b0b4923
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental.meta
index 88dbdec7..d425a09c 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 80cb9c621c08c41d1bf457684e061a41
folderAsset: yes
-timeCreated: 1440434027
+timeCreated: 1441729897
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMesh.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMesh.class.meta
index 009c4d5b..c98a7c98 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMesh.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMesh.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: e646aaf04da9e446aa66f5f2477b1f13
+guid: 2ce7caed0a60d43e98959a438b0755dd
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMeshVector$1.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMeshVector$1.class.meta
index f486daf6..9b18b96a 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMeshVector$1.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMeshVector$1.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 4693f475583944c799fa66889c3bbeb7
+guid: bc3c12013bcfa40d685cc0b0c31ce2a4
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMeshVector.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMeshVector.class.meta
index a040d795..bc6f821f 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMeshVector.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMeshVector.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 4fdf93d38e5064b5ba1f0ac343d8a245
+guid: 3a94a008411f94cf88680b80645511fd
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMesher$OnTangoMeshVectorAvailableListener.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMesher$OnTangoMeshVectorAvailableListener.class.meta
index 6a4e7690..48ca68c1 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMesher$OnTangoMeshVectorAvailableListener.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMesher$OnTangoMeshVectorAvailableListener.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 1058263ca4174482faefc29c12330ed3
+guid: 33b9dce346d454bd8a6778c4357360df
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMesher.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMesher.class.meta
index c124dcb1..b8422040 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMesher.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/TangoMesher.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 7f04c6d1efefe4f79a4f9e06ae51c99a
+guid: f8224aa5cd8df4455b2dd8fd0b538b71
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/package-info.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/package-info.class.meta
index ceac2dfb..af10151a 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/package-info.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/experimental/package-info.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 7a1830f47966940e79d04674cbdaa927
+guid: 62f54bc87ea3448f09e9b0ef45bae13f
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/package-info.class.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/package-info.class.meta
index 189faa11..23586182 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/package-info.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/classes/com/google/atap/tangoservice/package-info.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: a363f371df05f48ce8b00b19ad7c3e49
+guid: 39f2b943c70f24c4a9b7d7b363ff8a79
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/tango-java-lib.jar.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/tango-java-lib.jar.meta
index aa863a10..836171b5 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/tango-java-lib.jar.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/bin/tango-java-lib.jar.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 822f7e76a5ade4ecb8965c14547e4c8c
+guid: db01d5ef27bd342b8a5d040ba6c0b5d5
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-java-lib/project.properties.meta b/UnityExamples/Assets/Plugins/Android/tango-java-lib/project.properties.meta
index 17045ce3..ff331003 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-java-lib/project.properties.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-java-lib/project.properties.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: a8986f554db7b41fd8ccb9b8c90ae15e
+guid: 99d7490486c3f48a88c73a4f03b0b9cd
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-unity-helper.meta b/UnityExamples/Assets/Plugins/Android/tango-unity-helper.meta
index 7d8a7880..fb0ea6b8 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-unity-helper.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-unity-helper.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: c0a826487b8304d3288512aff8443656
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
PluginImporter:
serializedVersion: 1
diff --git a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/AndroidManifest.xml.meta b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/AndroidManifest.xml.meta
index cfba6ac7..f0f6c175 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/AndroidManifest.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/AndroidManifest.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 94b83cfccb1d54475b95a1c29c7fc624
+guid: 57e284a9afc434e04809cb2a5b9e47a4
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin.meta b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin.meta
index 94f218e4..aa7b6ac9 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 721c052a60a1a430685b336ac7c0e42c
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/AndroidManifest.xml.meta b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/AndroidManifest.xml.meta
index ee61d85c..3415a917 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/AndroidManifest.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/AndroidManifest.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: b8bc4a5f8e2ec4775bcdf586c5c4fd28
+guid: bffdb30cce99943269b62b8acb1a846a
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes.meta b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes.meta
index 63152f47..77dfe5b2 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: fff2a47d7b2134cb8a0b88b47449a730
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com.meta b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com.meta
index 12557f0e..50afff46 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: eace03ad54b694e10b9708ddb0eb4179
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com/projecttango.meta b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com/projecttango.meta
index c6ece1e4..50946c1d 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com/projecttango.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com/projecttango.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 199d8b96150bb4600a7b0ec8e3064346
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com/projecttango/unity.meta b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com/projecttango/unity.meta
index cb5db0b3..a03abb25 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com/projecttango/unity.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com/projecttango/unity.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: d33fb341feda1484ea48e92c5118223e
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com/projecttango/unity/BuildConfig.class.meta b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com/projecttango/unity/BuildConfig.class.meta
index 28fcf369..36c80fa4 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com/projecttango/unity/BuildConfig.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com/projecttango/unity/BuildConfig.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 993db61fd9d11443dbe7ec40cb212824
+guid: 089c24cf83c864db197125dda2d8f7e5
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com/projecttango/unity/TangoUnityHelper.class.meta b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com/projecttango/unity/TangoUnityHelper.class.meta
index b3ce26bd..b2182856 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com/projecttango/unity/TangoUnityHelper.class.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/classes/com/projecttango/unity/TangoUnityHelper.class.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: cfa6b960a4d6243648ce3af817515894
+guid: 887f5f9a7ff0e4b34b33e19f6115b63e
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/tango-unity-helper.jar.meta b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/tango-unity-helper.jar.meta
index 6ae17355..166af09c 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/tango-unity-helper.jar.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/bin/tango-unity-helper.jar.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 8c51d50c6162345e2b84997969a724b1
+guid: b5ee2602b4eff496797392ec27c066b4
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/project.properties.meta b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/project.properties.meta
index ca5bc21f..7f37da7d 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-unity-helper/project.properties.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-unity-helper/project.properties.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 28a523326d2d945eebd32e22e4529508
+guid: 7d18dd27032b9411099f8eafdaed41f0
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library.meta
index 20b92f2b..439e994e 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 9cbaeed14f5ba4a128a3178cee73342c
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
PluginImporter:
serializedVersion: 1
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/AndroidManifest.xml.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/AndroidManifest.xml.meta
index 8b7e9ff6..f2d8f8f8 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/AndroidManifest.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/AndroidManifest.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: fb1855a48cf5249b0bb15ed6a59e1135
+guid: c0c55822782244b60a794ed5e30fec90
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin.meta
index ca9aa555..5a65f8c7 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 04399f879535b4594ba031c4e7956d1b
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/AndroidManifest.xml b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/AndroidManifest.xml
index bfa61674..3f07b937 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/AndroidManifest.xml
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/AndroidManifest.xml
@@ -20,7 +20,7 @@
android:versionName="0" >
\ No newline at end of file
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/AndroidManifest.xml.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/AndroidManifest.xml.meta
index 1d524006..bdba7185 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/AndroidManifest.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/AndroidManifest.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 5ed42dd55e45d4761b211f28e9fc3d2d
+guid: 12af0d8898350430bb2486dedc5c5e3d
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/R.txt b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/R.txt
index 61702d1c..a7663cd1 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/R.txt
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/R.txt
@@ -1,14 +1,14 @@
int color gray_dark 0x7f040000
-int color tango_blue 0x7f040004
-int color tango_green 0x7f040003
-int color tango_yellow 0x7f040005
-int color text_exception_action_required 0x7f040002
-int color text_exception_description 0x7f040001
+int color tango_blue 0x7f040001
+int color tango_green 0x7f040002
+int color tango_yellow 0x7f040003
+int color text_exception_action_required 0x7f040004
+int color text_exception_description 0x7f040005
int dimen connection_progress_bar_sub_margin 0x7f050000
int dimen exception_component_height 0x7f050001
int dimen exception_status_component_size 0x7f050002
-int dimen hold_steady_bubble_level_max_y 0x7f050004
-int dimen hold_steady_frame_transform_pivot_y 0x7f050003
+int dimen hold_steady_bubble_level_max_y 0x7f050003
+int dimen hold_steady_frame_transform_pivot_y 0x7f050004
int dimen hold_steady_trace_size 0x7f050005
int drawable exception_container_shadow 0x7f020000
int drawable hold_steady_bubble_level_err 0x7f020001
@@ -45,38 +45,37 @@ int layout exception_component 0x7f030001
int layout layout_connection 0x7f030002
int layout layout_splash 0x7f030003
int layout layout_tango_ux 0x7f030004
-int string action_required 0x7f060015
-int string connection_layout_description 0x7f060017
-int string connection_layout_message 0x7f060016
-int string device_not_responding_description 0x7f06000c
-int string device_not_responding_title 0x7f06000b
-int string lying_on_surface_description 0x7f060010
-int string lying_on_surface_title 0x7f06000f
-int string motion_track_description 0x7f060012
-int string motion_track_title 0x7f060011
-int string moving_too_fast_description 0x7f060002
-int string moving_too_fast_title 0x7f060001
-int string not_enough_light_description 0x7f060008
-int string not_enough_light_title 0x7f060007
-int string project_tango 0x7f060000
-int string run_time_mismatch_description 0x7f060014
-int string run_time_mismatch_title 0x7f060013
-int string service_updated_description 0x7f06000e
-int string service_updated_title 0x7f06000d
-int string space_not_recognized_description 0x7f060006
-int string space_not_recognized_title 0x7f060005
-int string too_much_light_description 0x7f06000a
-int string too_much_light_title 0x7f060009
-int string unable_to_detect_surface_description 0x7f060004
-int string unable_to_detect_surface_title 0x7f060003
-int style ConnectionLayoutSubtext 0x7f070003
-int style ConnectionLayoutText 0x7f070002
-int style DownloadProgressText 0x7f070004
-int style ExceptionActionRequired 0x7f070007
-int style ExceptionDescription 0x7f070006
+int string action_required 0x7f060000
+int string connection_layout_message 0x7f060001
+int string device_not_responding_description 0x7f060002
+int string device_not_responding_title 0x7f060003
+int string lying_on_surface_description 0x7f060004
+int string lying_on_surface_title 0x7f060005
+int string motion_track_description 0x7f060006
+int string motion_track_title 0x7f060007
+int string moving_too_fast_description 0x7f060008
+int string moving_too_fast_title 0x7f060009
+int string not_enough_light_description 0x7f06000a
+int string not_enough_light_title 0x7f06000b
+int string project_tango 0x7f06000c
+int string run_time_mismatch_description 0x7f06000d
+int string run_time_mismatch_title 0x7f06000e
+int string service_updated_description 0x7f06000f
+int string service_updated_title 0x7f060010
+int string space_not_recognized_description 0x7f060011
+int string space_not_recognized_title 0x7f060012
+int string too_much_light_description 0x7f060013
+int string too_much_light_title 0x7f060014
+int string unable_to_detect_surface_description 0x7f060015
+int string unable_to_detect_surface_title 0x7f060016
+int style ConnectionLayoutSubtext 0x7f070000
+int style ConnectionLayoutText 0x7f070001
+int style DownloadProgressText 0x7f070002
+int style ExceptionActionRequired 0x7f070003
+int style ExceptionDescription 0x7f070004
int style ExceptionTitle 0x7f070005
-int style Text20GrayDarkLight 0x7f070001
-int style Text40GrayDarkThin 0x7f070000
-int style TextListContentItem 0x7f07000a
-int style TextListTitle 0x7f070008
-int style TextListTitleItem 0x7f070009
+int style Text20GrayDarkLight 0x7f070006
+int style Text40GrayDarkThin 0x7f070007
+int style TextListContentItem 0x7f070008
+int style TextListTitle 0x7f070009
+int style TextListTitleItem 0x7f07000a
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/R.txt.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/R.txt.meta
index 7eb5b730..b57615a8 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/R.txt.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/R.txt.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 53c4a77bb9ff94dc8a9a29df3839fcf0
+guid: 3a814b608f0ca4f3794b3e6172056007
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/tango-ux-support-library.jar b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/tango-ux-support-library.jar
index 45a57ec2..b3e8347d 100644
Binary files a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/tango-ux-support-library.jar and b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/tango-ux-support-library.jar differ
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/tango-ux-support-library.jar.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/tango-ux-support-library.jar.meta
index 327fb373..d63af778 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/tango-ux-support-library.jar.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/bin/tango-ux-support-library.jar.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: ab5d30c37ce034f8f97da7d59af5084e
+guid: c19ee39257d2d4ecb9ffe05e28e4f8e0
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/project.properties.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/project.properties.meta
index e6bada1b..01452aea 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/project.properties.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/project.properties.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 0d4bd0272f13248aba56ecc1e589ffa9
+guid: 58b250d77e25c4e8aaa1a16701165e8e
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res.meta
index 26876e09..08bcef9d 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: fd9dcf3597e5d4387b74288b2f31442a
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi.meta
index 6ab7ccda..68f56a57 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 8b284ef68867845fdba8889f5242a41e
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/exception_container_shadow.png.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/exception_container_shadow.png.meta
index 9e201088..e82202cc 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/exception_container_shadow.png.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/exception_container_shadow.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 92e885633f5b0478c8ddfe15af3e62c1
+guid: c83f7ae2437a34ec2a2a4b87a21eac61
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_bubble_level_err.png.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_bubble_level_err.png.meta
index b952c186..ea813ca4 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_bubble_level_err.png.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_bubble_level_err.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 33e1c79516e434be0ac9186037aa9eea
+guid: 728b86c7f85df414bb48a72785c19aaf
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_bubble_level_ok.png.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_bubble_level_ok.png.meta
index b1b038a8..792d8612 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_bubble_level_ok.png.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_bubble_level_ok.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: facbf073298f8457e9d0cc095dfb1155
+guid: a8f5c7e0c04354187889c0c7a015b4f7
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_frame_err.png.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_frame_err.png.meta
index 131b35e9..230d70b7 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_frame_err.png.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_frame_err.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 038ce08ae5ade411485af0a8fcd0a9ef
+guid: 5612d950d71a247a8b421d70df8a9dfa
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_frame_ok.png.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_frame_ok.png.meta
index f4ab7114..be314062 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_frame_ok.png.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_frame_ok.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 9bacc2b46bdfb4e3480e457188d47892
+guid: fac73c7be55cf4d25bf1292aaf3fd849
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_trace_left_1.png.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_trace_left_1.png.meta
index 59bc3d22..6b92d804 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_trace_left_1.png.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_trace_left_1.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 709bc139bb1564750ac2067eac8e7ec4
+guid: 680b0b26a3faf4f429467370161fecc2
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_trace_left_2.png.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_trace_left_2.png.meta
index d4c6f49b..3913f6f1 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_trace_left_2.png.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_trace_left_2.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: bc70d1a2a2d6e4c62bcbc943a47664ca
+guid: 93fab9a5d52a84b3e95318d39a241b86
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_trace_right_1.png.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_trace_right_1.png.meta
index 57f1d846..aa256fc1 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_trace_right_1.png.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_trace_right_1.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d7f94cc4b613348dc886e6daab805459
+guid: 114602e7119004bae967929f739217a2
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_trace_right_2.png.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_trace_right_2.png.meta
index 2269badb..7a3a9e78 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_trace_right_2.png.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/hold_steady_trace_right_2.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 038eef80a51674a11928eabdaab8543c
+guid: 8f18e3edf7d0c40ddab5d06787be7a19
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/ic_exception_i_am_dizzy.png.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/ic_exception_i_am_dizzy.png.meta
index 42e4540e..90e46b85 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/ic_exception_i_am_dizzy.png.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/ic_exception_i_am_dizzy.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 63ea0364c9f0741deb3ff598832ed32b
+guid: ccbc58387f5814b4ea83dcf29dbfa236
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/ic_exception_i_am_lost.png.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/ic_exception_i_am_lost.png.meta
index 27073d7f..4abbe98e 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/ic_exception_i_am_lost.png.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/ic_exception_i_am_lost.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 7d30719c6ae8d48fb825414fda35518a
+guid: 3cfc0d6cc9e4048ce9095fcebb8e7f2c
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/ic_exception_i_cant_see.png.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/ic_exception_i_cant_see.png.meta
index f709f48d..4cc8f148 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/ic_exception_i_cant_see.png.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/ic_exception_i_cant_see.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: b11d579b46ba54b58a98f3c9a8af66cd
+guid: f96000b1f919c406db6de0a2e2960cc2
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/ic_exception_system.png.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/ic_exception_system.png.meta
index f03452c0..6d987cbc 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/ic_exception_system.png.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/ic_exception_system.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 98d42567dd7a846ed8cbb9e75c2e4132
+guid: 33462bb6b34204a3aa56c00e63d4ac7d
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/splash_logo.png.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/splash_logo.png.meta
index 363f9ce0..3f8cfcca 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/splash_logo.png.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/drawable-xhdpi/splash_logo.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 6b595833602c34b5aa8928d366cf41c2
+guid: 86dd2879b137e463db2e1686aabcc74a
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout.meta
index 7bac0e81..36f7c8cc 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 0fa3a214c4fdd4be8bf45d42f0596de8
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/component_hold_steady.xml.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/component_hold_steady.xml.meta
index 3d0d380f..4d94e280 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/component_hold_steady.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/component_hold_steady.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 337a1e50bf3954b2697013fe74527093
+guid: be434169d7c61486c8e90002886e0251
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/exception_component.xml.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/exception_component.xml.meta
index 9df78088..904b734b 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/exception_component.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/exception_component.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 9cdbfb4548a8147d68e14b910cbe76ca
+guid: c2e54118470ed49aa954b79ba6dd99f7
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/layout_connection.xml b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/layout_connection.xml
index b17d42df..e8c8455a 100755
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/layout_connection.xml
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/layout_connection.xml
@@ -38,11 +38,4 @@
android:text="@string/connection_layout_message"
android:textAllCaps="true" />
-
-
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/layout_connection.xml.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/layout_connection.xml.meta
index e49a303c..f97b6acb 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/layout_connection.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/layout_connection.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: eb84e881bd975441594fb4a9135f1f02
+guid: 3474435349f5e4df2a59abef18c7504b
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/layout_splash.xml.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/layout_splash.xml.meta
index 1af0f909..7d8bd99e 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/layout_splash.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/layout_splash.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 98ab9deac97bc466fb0ba293e59d09f0
+guid: dec3305c4202a4898a053aac4c5835eb
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/layout_tango_ux.xml.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/layout_tango_ux.xml.meta
index 3c97e9cf..c84f4381 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/layout_tango_ux.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/layout/layout_tango_ux.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 508d64f7e0bec4ed3aa07badadeada48
+guid: 445b640922e504a67b3717d8c815f3eb
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values.meta
index db39e41e..f31845b4 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 9a4395c2824094c1d8f295967429fc62
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/colors.xml.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/colors.xml.meta
index 12694877..5c5d7c87 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/colors.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/colors.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 95ab709761a4449e1a1b8f4540aab554
+guid: 981fc3c35046042f5b3f8febf7462650
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/dimens.xml.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/dimens.xml.meta
index fe1a8be7..fd33d375 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/dimens.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/dimens.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: fed378dee4e2a46778c6162d652572ae
+guid: 485fdc2a9e5b14cb38b5c0e8f9f5d0ee
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/strings.xml b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/strings.xml
index ec7687a3..f0e8acd0 100755
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/strings.xml
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/strings.xml
@@ -53,7 +53,6 @@
Action required
- Connecting
- Please hold steady
+ Hold steady
\ No newline at end of file
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/strings.xml.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/strings.xml.meta
index d9d52f12..b1a17d08 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/strings.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/strings.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: cbc69026447e54056980fe57e06bb4f2
+guid: efe77506871ab46428f1b6966172f4ea
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/styles.xml.meta b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/styles.xml.meta
index b93ac8ba..fb84ab4b 100644
--- a/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/styles.xml.meta
+++ b/UnityExamples/Assets/Plugins/Android/tango-ux-support-library/res/values/styles.xml.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 337e215e57a1444b491eb4b4890b6420
+guid: 4c153ed4c6ca8475d9f0420569f832e5
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/Scenes/Materials.meta b/UnityExamples/Assets/Scenes/Materials.meta
deleted file mode 100644
index a9f3f95c..00000000
--- a/UnityExamples/Assets/Scenes/Materials.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: e806fdce175124c39ac9fe2c0ba8567d
-folderAsset: yes
-timeCreated: 1440525069
-licenseType: Free
-DefaultImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityExamples/Assets/Scenes/Materials/pCylinder1Mat.mat b/UnityExamples/Assets/Scenes/Materials/pCylinder1Mat.mat
deleted file mode 100644
index 993493e4..00000000
--- a/UnityExamples/Assets/Scenes/Materials/pCylinder1Mat.mat
+++ /dev/null
@@ -1,138 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_Name: pCylinder1Mat
- m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
- m_ShaderKeywords:
- m_LightmapFlags: 5
- m_CustomRenderQueue: -1
- stringTagMap: {}
- m_SavedProperties:
- serializedVersion: 2
- m_TexEnvs:
- data:
- first:
- name: _MainTex
- second:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- data:
- first:
- name: _BumpMap
- second:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- data:
- first:
- name: _DetailNormalMap
- second:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- data:
- first:
- name: _ParallaxMap
- second:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- data:
- first:
- name: _OcclusionMap
- second:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- data:
- first:
- name: _EmissionMap
- second:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- data:
- first:
- name: _DetailMask
- second:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- data:
- first:
- name: _DetailAlbedoMap
- second:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- data:
- first:
- name: _MetallicGlossMap
- second:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- data:
- first:
- name: _SrcBlend
- second: 1
- data:
- first:
- name: _DstBlend
- second: 0
- data:
- first:
- name: _Cutoff
- second: .5
- data:
- first:
- name: _Parallax
- second: .0199999996
- data:
- first:
- name: _ZWrite
- second: 1
- data:
- first:
- name: _Glossiness
- second: .5
- data:
- first:
- name: _BumpScale
- second: 1
- data:
- first:
- name: _OcclusionStrength
- second: 1
- data:
- first:
- name: _DetailNormalMapScale
- second: 1
- data:
- first:
- name: _UVSec
- second: 0
- data:
- first:
- name: _Mode
- second: 0
- data:
- first:
- name: _Metallic
- second: 0
- m_Colors:
- data:
- first:
- name: _EmissionColor
- second: {r: 0, g: 0, b: 0, a: 1}
- data:
- first:
- name: _Color
- second: {r: .800000012, g: .800000012, b: .800000012, a: 1}
diff --git a/UnityExamples/Assets/TangoExamples/Common/Textures/ProjectTango_Logo.png b/UnityExamples/Assets/TangoExamples/Common/Textures/ProjectTango_Logo.png
old mode 100644
new mode 100755
index d8665552..c53fe23e
Binary files a/UnityExamples/Assets/TangoExamples/Common/Textures/ProjectTango_Logo.png and b/UnityExamples/Assets/TangoExamples/Common/Textures/ProjectTango_Logo.png differ
diff --git a/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Materials/pin_shadow.mat b/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Materials/pin_shadow.mat
new file mode 100644
index 00000000..f4ba8871
--- /dev/null
+++ b/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Materials/pin_shadow.mat
@@ -0,0 +1,30 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: pin_shadow
+ m_Shader: {fileID: 30, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords:
+ m_LightmapFlags: 5
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ m_SavedProperties:
+ serializedVersion: 2
+ m_TexEnvs:
+ data:
+ first:
+ name: _MainTex
+ second:
+ m_Texture: {fileID: 2800000, guid: 270aaf7f8aaa0454ab5c3ed1e3d06087, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats: {}
+ m_Colors:
+ data:
+ first:
+ name: _Color
+ second: {r: 1, g: 1, b: 1, a: 1}
diff --git a/UnityExamples/Assets/Scenes/Materials/pCylinder1Mat.mat.meta b/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Materials/pin_shadow.mat.meta
similarity index 55%
rename from UnityExamples/Assets/Scenes/Materials/pCylinder1Mat.mat.meta
rename to UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Materials/pin_shadow.mat.meta
index 72f6f1e6..c474e1f5 100644
--- a/UnityExamples/Assets/Scenes/Materials/pCylinder1Mat.mat.meta
+++ b/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Materials/pin_shadow.mat.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
-guid: f1a242400dee94ce3906f578b4f8e33c
-timeCreated: 1440525069
-licenseType: Free
+guid: 6260fee5fdb624898bd92068ab874264
+timeCreated: 1441140322
+licenseType: Pro
NativeFormatImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Prefabs/Location Marker.prefab b/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Prefabs/Location Marker.prefab
index 669701b1..96cf86e5 100644
--- a/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Prefabs/Location Marker.prefab
+++ b/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Prefabs/Location Marker.prefab
@@ -1,5 +1,23 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &141338
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 424758}
+ - 33: {fileID: 3388810}
+ - 64: {fileID: 6411824}
+ - 23: {fileID: 2356450}
+ m_Layer: 0
+ m_Name: Quad
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
--- !u!1 &188320
GameObject:
m_ObjectHideFlags: 0
@@ -27,11 +45,24 @@ Transform:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 188320}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: .0199999996, y: .0199999996, z: .0199999996}
- m_Children: []
+ m_Children:
+ - {fileID: 424758}
m_Father: {fileID: 0}
m_RootOrder: 0
+--- !u!4 &424758
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 141338}
+ m_LocalRotation: {x: .707106829, y: 0, z: 0, w: .707106709}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 5, y: 5, z: 5}
+ m_Children: []
+ m_Father: {fileID: 421018}
+ m_RootOrder: 0
--- !u!23 &2344510
MeshRenderer:
m_ObjectHideFlags: 1
@@ -56,6 +87,30 @@ MeshRenderer:
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingOrder: 0
+--- !u!23 &2356450
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 141338}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 6260fee5fdb624898bd92068ab874264, type: 2}
+ m_SubsetIndices:
+ m_StaticBatchRoot: {fileID: 0}
+ m_UseLightProbes: 1
+ m_ReflectionProbeUsage: 1
+ m_ProbeAnchor: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_ImportantGI: 0
+ m_AutoUVMaxDistance: .5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
--- !u!33 &3376278
MeshFilter:
m_ObjectHideFlags: 1
@@ -63,6 +118,13 @@ MeshFilter:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 188320}
m_Mesh: {fileID: 4300000, guid: 6c28710ea3d26482eba596282b5e6538, type: 3}
+--- !u!33 &3388810
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 141338}
+ m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!64 &6406318
MeshCollider:
m_ObjectHideFlags: 1
@@ -75,6 +137,18 @@ MeshCollider:
serializedVersion: 2
m_Convex: 0
m_Mesh: {fileID: 4300000, guid: 6c28710ea3d26482eba596282b5e6538, type: 3}
+--- !u!64 &6411824
+MeshCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 141338}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Convex: 0
+ m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!111 &11140948
Animation:
m_ObjectHideFlags: 1
@@ -102,8 +176,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 81f9f42e3ed5b417f97d7297e8ea7582, type: 3}
m_Name:
m_EditorClassIdentifier:
- m_normalShader: {fileID: 10703, guid: 0000000000000000f000000000000000, type: 0}
- m_selectedShader: {fileID: 30, guid: 0000000000000000f000000000000000, type: 0}
--- !u!1001 &100100000
Prefab:
m_ObjectHideFlags: 1
diff --git a/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Scripts/ARScreen.cs b/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Scripts/ARScreen.cs
index 594a6d72..f633a255 100644
--- a/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Scripts/ARScreen.cs
+++ b/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Scripts/ARScreen.cs
@@ -300,8 +300,15 @@ private void _SetCameraIntrinsics()
float verticalFOV = 2.0f * Mathf.Rad2Deg * Mathf.Atan((intrinsics.height * 0.5f) / (float)intrinsics.fy);
if (!float.IsNaN(verticalFOV))
{
- m_renderCamera.fieldOfView = verticalFOV;
-
+ m_renderCamera.projectionMatrix =
+ ProjectionMatrixForCameraIntrinsics((float)intrinsics.width,
+ (float)intrinsics.height,
+ (float)intrinsics.fx,
+ (float)intrinsics.fy,
+ (float)intrinsics.cx,
+ (float)intrinsics.cy,
+ 0.1f, 1000.0f);
+
// Here we are scaling the image plane to make sure the image plane's ratio is set as the
// color camera image ratio.
// If we don't do this, because we are drawing the texture fullscreen, the image plane will
@@ -320,4 +327,57 @@ private void _SetCameraIntrinsics()
}
}
}
+
+ ///
+ /// Create a projection matrix from window size, camera intrinsics, and clip settings.
+ ///
+ /// The width of the camera image.
+ /// The height of the camera image.
+ /// The x-axis focal length of the camera.
+ /// The y-axis focal length of the camera.
+ /// The x-coordinate principal point in pixels.
+ /// The y-coordinate principal point in pixels.
+ /// The desired near z-clipping plane.
+ /// The desired far z-clipping plane.
+ private Matrix4x4 ProjectionMatrixForCameraIntrinsics(float width, float height,
+ float fx, float fy,
+ float cx, float cy,
+ float near, float far) {
+ float xscale = near / fx;
+ float yscale = near / fy;
+
+ float xoffset = (cx - (width / 2.0f)) * xscale;
+ // OpenGL coordinates has y pointing downwards so we negate this term.
+ float yoffset = -(cy - (height / 2.0f)) * yscale;
+
+ return Frustum(xscale * -width / 2.0f - xoffset,
+ xscale * width / 2.0f - xoffset,
+ yscale * -height / 2.0f - yoffset,
+ yscale * height / 2.0f - yoffset,
+ near, far);
+ }
+
+ ///
+ /// This is function compute the projection matrix based on frustum size.
+ /// This function's implementation is same as glFrustum.
+ ///
+ /// Specify the coordinates for the left vertical clipping planes.
+ /// Specify the coordinates for the right vertical clipping planes.
+ /// Specify the coordinates for the bottom horizontal clipping planes.
+ /// Specify the coordinates for the top horizontal clipping planes.
+ /// Specify the distances to the near depth clipping planes. Both distances must be positive.
+ /// Specify the distances to the far depth clipping planes. Both distances must be positive.
+ private Matrix4x4 Frustum(float left,
+ float right,
+ float bottom,
+ float top,
+ float zNear,
+ float zFar) {
+ Matrix4x4 m = new Matrix4x4();
+ m.SetRow(0, new Vector4(2.0f * zNear / (right - left), 0.0f, (right + left) / (right - left) , 0.0f));
+ m.SetRow(1, new Vector4(0.0f, 2.0f * zNear/ (top - bottom), (top + bottom) / (top - bottom) , 0.0f));
+ m.SetRow(2, new Vector4(0.0f, 0.0f, -(zFar + zNear) / (zFar - zNear), -(2 * zFar * zNear) / (zFar - zNear)));
+ m.SetRow(3, new Vector4(0.0f, 0.0f, -1.0f, 0.0f));
+ return m;
+ }
}
diff --git a/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Scripts/AugmentedRealityGUIController.cs b/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Scripts/AugmentedRealityGUIController.cs
index 59ceb6bd..54511351 100644
--- a/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Scripts/AugmentedRealityGUIController.cs
+++ b/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Scripts/AugmentedRealityGUIController.cs
@@ -411,7 +411,22 @@ private void _UpdateLocationMarker()
{
return;
}
- Instantiate(m_prefabLocation, planeCenter, Quaternion.FromToRotation(Vector3.up, plane.normal));
+
+ // Ensure the location is always facing the camera. This is like a LookRotation, but for the Y axis.
+ Vector3 up = plane.normal;
+ Vector3 forward;
+ if (Vector3.Angle(plane.normal, cam.transform.forward) < 175)
+ {
+ Vector3 right = Vector3.Cross(up, cam.transform.forward).normalized;
+ forward = Vector3.Cross(right, up).normalized;
+ }
+ else
+ {
+ // Normal is nearly parallel to camera look direction, the cross product would have too much
+ // floating point error in it.
+ forward = Vector3.Cross(up, cam.transform.right);
+ }
+ Instantiate(m_prefabLocation, planeCenter, Quaternion.LookRotation(forward, up));
m_selectedMarker = null;
}
}
diff --git a/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Textures/pin_shadow.png b/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Textures/pin_shadow.png
new file mode 100644
index 00000000..c863eae3
Binary files /dev/null and b/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Textures/pin_shadow.png differ
diff --git a/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Textures/pin_shadow.png.meta b/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Textures/pin_shadow.png.meta
new file mode 100644
index 00000000..05b4c30b
--- /dev/null
+++ b/UnityExamples/Assets/TangoExamples/ExperimentalAugmentedReality/Textures/pin_shadow.png.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: 270aaf7f8aaa0454ab5c3ed1e3d06087
+timeCreated: 1441140192
+licenseType: Pro
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 1
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/UnityExamples/Assets/TangoSDK/Core.meta b/UnityExamples/Assets/TangoSDK/Core.meta
index ea3c0c43..2dcc9fae 100644
--- a/UnityExamples/Assets/TangoSDK/Core.meta
+++ b/UnityExamples/Assets/TangoSDK/Core.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: b80c15ce37a1447f69e465cf133f71b6
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts.meta b/UnityExamples/Assets/TangoSDK/Core/Scripts.meta
index da3b86a8..c40fbb99 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts.meta
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 8e63f857443034fb6b291e8ff42a6c60
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/Common.meta b/UnityExamples/Assets/TangoSDK/Core/Scripts/Common.meta
index 954f4682..b6ca0cfe 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/Common.meta
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/Common.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: a96639d914c7d4c11aa8634e9e475b09
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/Common.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/Common.cs
index f244d824..79eb1efc 100755
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/Common.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/Common.cs
@@ -1,18 +1,22 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System.Runtime.InteropServices;
using UnityEngine;
@@ -33,16 +37,39 @@ public struct Common
///
public struct ErrorType
{
- public static readonly int TANGO_NO_CAMERA_PERMISSION = -5; /**< Camera access not allowed */
- public static readonly int TANGO_NO_ADF_PERMISSION = -4; /**< ADF access not allowed */
- public static readonly int TANGO_NO_MOTION_TRACKING_PERMISSION = -3; /**< Motion tracking not allowed*/
+ ///
+ /// Camera access not allowed.
+ ///
+ public static readonly int TANGO_NO_CAMERA_PERMISSION = -5;
+
+ ///
+ /// ADF access not allowed.
+ ///
+ public static readonly int TANGO_NO_ADF_PERMISSION = -4;
+
+ ///
+ /// Motion tracking not allowed.
+ ///
+ public static readonly int TANGO_NO_MOTION_TRACKING_PERMISSION = -3;
+
+ ///
+ /// General invalid state.
+ ///
public static readonly int TANGO_INVALID = -2;
+
+ ///
+ /// General error state.
+ ///
public static readonly int TANGO_ERROR = -1;
+
+ ///
+ /// No error, success.
+ ///
public static readonly int TANGO_SUCCESS = 0;
}
///
- /// Metadata keys supported by Tango APIs
+ /// Metadata keys supported by Tango APIs.
///
public struct MetaDataKeyType
{
@@ -52,24 +79,28 @@ public struct MetaDataKeyType
public const string KEY_TRANSFORMATION = "transformation";
}
- public enum AndroidResult
- {
- SUCCESS = -1,
- CANCELED = 0,
- DENIED = 1
- }
-
- public const string TANGO_UNITY_DLL = "tango_client_api";
+ ///
+ /// Return values from Android actvities.
+ ///
+ public enum AndroidResult
+ {
+ SUCCESS = -1,
+ CANCELED = 0,
+ DENIED = 1
+ }
+ ///
+ /// DEPRECATED: Empty string.
+ ///
public const string TANGO_PERMISSION_STRING = "";
- public const string TANGO_MOTION_TRACKING_PERMISSIONS = "MOTION_TRACKING_PERMISSION";
- public const string TANGO_ADF_LOAD_SAVE_PERMISSIONS = "ADF_LOAD_SAVE_PERMISSION";
- public const string TANGO_NO_PERMISSIONS_ERROR = "This application requires all Tango permissions to run. Please restart the application and grant Tango permissions.";
- public const int TANGO_MOTION_TRACKING_PERMISSIONS_REQUEST_CODE = 42;
- public const int TANGO_ADF_LOAD_SAVE_PERMISSIONS_REQUEST_CODE = 43;
- public const int UNITY_MAX_SUPPORTED_VERTS_PER_MESH = 65534;
+ ///
+ /// DEPRECATED: Tango permissions error.
+ ///
+ public const string TANGO_NO_PERMISSIONS_ERROR = "This application requires all Tango permissions to run. Please restart the application and grant Tango permissions.";
+ //// \cond
+ //// Collection of deprecated fields that should be removed
public const float UI_LABEL_START_X = 15.0f;
public const float UI_LABEL_START_Y = 15.0f;
public const float UI_LABEL_SIZE_X = 1920.0f;
@@ -86,33 +117,68 @@ public enum AndroidResult
public const float UI_DEPTH_LABLE_START_Y = UI_POSE_LABEL_START_Y + UI_LABEL_OFFSET;
public const string UI_FLOAT_FORMAT = "F3";
public const string UI_FONT_SIZE = "";
-
+
public const float UI_TANGO_VERSION_X = UI_LABEL_START_X;
public const float UI_TANGO_VERSION_Y = UI_LABEL_START_Y;
public const float UI_TANGO_APP_SPECIFIC_START_X = UI_TANGO_VERSION_X;
public const float UI_TANGO_APP_SPECIFIC_START_Y = UI_TANGO_VERSION_Y + (UI_LABEL_OFFSET * 2);
-
+
public const string UX_SERVICE_VERSION = "Service version: {0}";
public const string UX_TANGO_SERVICE_VERSION = "Tango service version: {0}";
public const string UX_TANGO_SYSTEM_EVENT = "Tango system event: {0}";
public const string UX_TARGET_TO_BASE_FRAME = "Target->{0}, Base->{1}:";
public const string UX_STATUS = "\tstatus: {0}, count: {1}, delta time(ms): {2}, position (m): [{3}], orientation: [{4}]";
-
- public const int UUID_LENGTH = 37;
public const float SECOND_TO_MILLISECOND = 1000.0f;
-
- #if (UNITY_EDITOR)
+ //// \endcond
+
+ ///
+ /// Name of the Tango C-API library.
+ ///
+ internal const string TANGO_UNITY_DLL = "tango_client_api";
+
+ ///
+ /// Motion Tracking permission intent string.
+ ///
+ internal const string TANGO_MOTION_TRACKING_PERMISSIONS = "MOTION_TRACKING_PERMISSION";
+
+ ///
+ /// ADF Load/Save permission intent string.
+ ///
+ internal const string TANGO_ADF_LOAD_SAVE_PERMISSIONS = "ADF_LOAD_SAVE_PERMISSION";
+
+ ///
+ /// Code used to identify the result came from the Motion Tracking permission request.
+ ///
+ internal const int TANGO_MOTION_TRACKING_PERMISSIONS_REQUEST_CODE = 42;
+
+ ///
+ /// Code used to identify the result came from the ADF Load/Save permission request.
+ ///
+ internal const int TANGO_ADF_LOAD_SAVE_PERMISSIONS_REQUEST_CODE = 43;
+
+ ///
+ /// Max number of vertices the Point Cloud supports.
+ ///
+ internal const int UNITY_MAX_SUPPORTED_VERTS_PER_MESH = 65534;
+
+ ///
+ /// The length of an area description ID string.
+ ///
+ internal const int UUID_LENGTH = 37;
+
+ //// Backing for deprecated properties below.
+#if (UNITY_EDITOR)
private static bool m_mirroring = true;
- #elif (UNITY_ANDROID)
+#elif (UNITY_ANDROID)
private static bool m_mirroring = false;
- #else
+#else
private static bool m_mirroring = false;
- #endif
+#endif
private static Resolution m_depthFrameResolution;
private static int m_depthBufferSize;
///
- /// Property for mirroring.
+ /// DEPRECATED: Property for mirroring.
///
/// Bool - sets mirroring.
public static bool Mirroring
@@ -122,7 +188,7 @@ public static bool Mirroring
}
///
- /// Property for the current depth frame resolution.
+ /// DEPRECATED: Property for the current depth frame resolution.
///
/// Resolution - Sets depth frame resolution reference.
public static Resolution DepthFrameResolution
@@ -132,7 +198,7 @@ public static Resolution DepthFrameResolution
}
///
- /// Property for the depth buffer size.
+ /// DEPRECATED: Property for the depth buffer size.
///
/// Bool - Sets the size of the depth buffer.
public static int DepthBufferSize
@@ -142,7 +208,7 @@ public static int DepthBufferSize
}
///
- /// Get the world rotation.
+ /// DEPRECATED: Get the world rotation.
///
/// Quaternion representing the world rotation.
public static Quaternion GetWorldRotation()
@@ -151,10 +217,11 @@ public static Quaternion GetWorldRotation()
}
///
- /// Gets current window resoltion where width is
- /// always larger than height.
+ /// DEPRECATED: Get the screen size if the screen was in landscape mode.
+ ///
+ /// This looks at Screen.width and Screen.height.
///
- /// Vector2 containing the screen width and height.
+ /// Vector2 containing the screen size.
public static Vector2 GetWindowResolution()
{
Vector2 screenSize;
@@ -168,12 +235,21 @@ public static Vector2 GetWindowResolution()
}
return screenSize;
}
-
+
+ ///
+ /// DEPRECATED: Get the aspect ratio of the screen in landscape mode.
+ ///
+ /// Aspect ratio.
+ public static float GetWindowResolutionAspect()
+ {
+ Vector2 resolution = GetWindowResolution();
+ return resolution.x / resolution.y;
+ }
+
///
- /// Get the aspect resolution of the window.
+ /// DEPRECATED: Misspelled version of GetWindowResolutionAspect.
///
- /// Window resolution aspect ratio as a single
- /// precision floating point.
+ /// Aspect ratio.
public static float GetWindowResoltionAspect()
{
Vector2 resolution = GetWindowResolution();
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/OrientationManager.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/OrientationManager.cs
index 56ca6f46..b80bedf0 100755
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/OrientationManager.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/OrientationManager.cs
@@ -1,18 +1,22 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System.Collections;
using UnityEngine;
@@ -21,55 +25,55 @@ namespace Tango
///
/// Manages the orientation of the screen.
///
- public class OrientationManager
- {
+ public class OrientationManager
+ {
///
/// Gets the Screen orientation.
///
/// Returns the current orientation of the screen.
- public static ScreenOrientation GetScreenOrientation()
+ public static ScreenOrientation GetScreenOrientation()
{
- #if (UNITY_EDITOR || UNITY_STANDALONE_OSX)
- if (Screen.width > Screen.height)
+#if (UNITY_EDITOR || UNITY_STANDALONE_OSX)
+ if (Screen.width > Screen.height)
{
- return ScreenOrientation.LandscapeLeft;
+ return ScreenOrientation.LandscapeLeft;
}
- else
+ else
{
- return ScreenOrientation.Portrait;
+ return ScreenOrientation.Portrait;
}
- #elif (UNITY_IPHONE || UNITY_ANDROID)
- return Screen.orientation;
- #else
- #error not supported platform
- #endif
- }
-
+#elif (UNITY_IPHONE || UNITY_ANDROID)
+ return Screen.orientation;
+#else
+#error not supported platform
+#endif
+ }
+
///
/// Get the current world rotation.
///
/// Returns a Quaternion representing the current world rotation.
- public static Quaternion GetWorldRotation()
+ public static Quaternion GetWorldRotation()
{
- ScreenOrientation orientation = GetScreenOrientation();
- Quaternion transformation = Quaternion.identity;
- if (orientation == ScreenOrientation.LandscapeLeft)
+ ScreenOrientation orientation = GetScreenOrientation();
+ Quaternion transformation = Quaternion.identity;
+ if (orientation == ScreenOrientation.LandscapeLeft)
{
- transformation = Quaternion.identity;
- }
+ transformation = Quaternion.identity;
+ }
else if (orientation == ScreenOrientation.LandscapeRight)
{
- transformation = Quaternion.AngleAxis(180f, Vector3.forward);
- }
+ transformation = Quaternion.AngleAxis(180f, Vector3.forward);
+ }
else if (orientation == ScreenOrientation.PortraitUpsideDown)
{
- transformation = Quaternion.AngleAxis(90f, Vector3.forward);
- }
+ transformation = Quaternion.AngleAxis(90f, Vector3.forward);
+ }
else if (orientation == ScreenOrientation.Portrait)
{
- transformation = Quaternion.AngleAxis(-90f, Vector3.forward);
- }
- return transformation;
- }
- }
+ transformation = Quaternion.AngleAxis(-90f, Vector3.forward);
+ }
+ return transformation;
+ }
+ }
}
\ No newline at end of file
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/TangoAndroidHelper.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/TangoAndroidHelper.cs
index bf6de0e4..091e8ead 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/TangoAndroidHelper.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/TangoAndroidHelper.cs
@@ -1,86 +1,96 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-using UnityEngine;
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System.Collections;
+using UnityEngine;
///
-/// Helper functions for common android functionality.
+/// Misc Android related utilities provided by the Tango CoreSDK.
///
public partial class AndroidHelper
{
///
- /// Holds the current and default offset of the
- /// current Tango device.
+ /// Holds the current and default orientation of the device.
///
public struct TangoDeviceOrientation
{
+ ///
+ /// The default orientation of the device. This is the "natural" way to hold this device.
+ ///
public DeviceOrientation defaultRotation;
+
+ ///
+ /// The current orientation of the device.
+ ///
public DeviceOrientation currentRotation;
}
private const string PERMISSION_REQUESTER = "com.projecttango.permissionrequester.RequestManagerActivity";
- #pragma warning disable 414
+#if UNITY_ANDROID && !UNITY_EDITOR
private static AndroidJavaObject m_tangoHelper = null;
- #pragma warning restore 414
-
+#endif
+
///
/// Gets the Java tango helper object.
///
/// The tango helper object.
public static AndroidJavaObject GetTangoHelperObject()
{
- #if UNITY_ANDROID && !UNITY_EDITOR
+#if UNITY_ANDROID && !UNITY_EDITOR
if(m_tangoHelper == null)
{
m_tangoHelper = new AndroidJavaObject("com.projecttango.unity.TangoUnityHelper", GetUnityActivity());
}
return m_tangoHelper;
- #else
+#else
return null;
- #endif
+#endif
}
///
- /// Starts the tango permissions activity of the provided type.
+ /// Start the Tango permissions activity, requesting that permission.
///
- /// Permissions type.
+ /// String for the permission to request.
public static void StartTangoPermissionsActivity(string permissionsType)
{
AndroidJavaObject unityActivity = GetUnityActivity();
- if(unityActivity != null)
+ if (unityActivity != null)
{
int requestCode = 0;
string[] args = new string[1];
-
- if(permissionsType == Tango.Common.TANGO_MOTION_TRACKING_PERMISSIONS)
+
+ if (permissionsType == Tango.Common.TANGO_MOTION_TRACKING_PERMISSIONS)
{
requestCode = Tango.Common.TANGO_MOTION_TRACKING_PERMISSIONS_REQUEST_CODE;
args[0] = "PERMISSIONTYPE:" + Tango.Common.TANGO_MOTION_TRACKING_PERMISSIONS;
}
- else if(permissionsType == Tango.Common.TANGO_ADF_LOAD_SAVE_PERMISSIONS)
+ else if (permissionsType == Tango.Common.TANGO_ADF_LOAD_SAVE_PERMISSIONS)
{
requestCode = Tango.Common.TANGO_ADF_LOAD_SAVE_PERMISSIONS_REQUEST_CODE;
args[0] = "PERMISSIONTYPE:" + Tango.Common.TANGO_ADF_LOAD_SAVE_PERMISSIONS;
}
- if(requestCode != 0)
+ if (requestCode != 0)
{
- unityActivity.Call("LaunchIntent", "com.projecttango.tango", "com.google.atap.tango.RequestPermissionActivity", args, requestCode);
+ unityActivity.Call("launchIntent", "com.projecttango.tango", "com.google.atap.tango.RequestPermissionActivity", args, requestCode);
}
else
{
@@ -88,15 +98,16 @@ public static void StartTangoPermissionsActivity(string permissionsType)
}
}
}
-
+
///
- /// Determines if the application has Tango permissions.
+ /// Check if the application has a Tango permission.
///
- /// true if application has tango permissions; otherwise, false.
+ /// String for the permission.
+ /// true if application has the permission; otherwise, false.
public static bool ApplicationHasTangoPermissions(string permissionType)
{
AndroidJavaObject tangoObject = GetTangoHelperObject();
- if(tangoObject != null)
+ if (tangoObject != null)
{
return tangoObject.Call("hasPermission", permissionType);
}
@@ -105,9 +116,9 @@ public static bool ApplicationHasTangoPermissions(string permissionType)
}
///
- /// Gets the current and default device orientation.
+ /// Get the devices current and default orientations.
///
- /// The current and default tango device orientation.
+ /// The current and default orientations.
public static TangoDeviceOrientation GetTangoDeviceOrientation()
{
AndroidJavaObject tangoObject = GetTangoHelperObject();
@@ -115,7 +126,7 @@ public static TangoDeviceOrientation GetTangoDeviceOrientation()
deviceOrientation.defaultRotation = DeviceOrientation.Unknown;
deviceOrientation.currentRotation = DeviceOrientation.Unknown;
- if(tangoObject != null)
+ if (tangoObject != null)
{
AndroidJavaObject rotationInfo = tangoObject.Call("showTranslatedOrientation");
@@ -127,16 +138,16 @@ public static TangoDeviceOrientation GetTangoDeviceOrientation()
}
///
- /// Determines if is tango core present.
+ /// Check if the Tango Core package is installed.
///
- /// true if is tango core present; otherwise, false.
+ /// true if the package is installed; otherwise, false.
public static bool IsTangoCorePresent()
{
AndroidJavaObject unityActivity = GetUnityActivity();
- if(unityActivity != null)
+ if (unityActivity != null)
{
- if(GetPackageInfo("com.projecttango.tango") != null)
+ if (GetPackageInfo("com.projecttango.tango") != null)
{
return true;
}
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/TangoEnums.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/TangoEnums.cs
index e434da9e..11759a30 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/TangoEnums.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/TangoEnums.cs
@@ -1,18 +1,22 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System.Collections;
using UnityEngine;
@@ -24,99 +28,242 @@ namespace Tango
public class TangoEnums
{
///
- /// Possible states for the motion tracking
+ /// Tango pose status lifecycle enumerations.
+ ///
+ /// Every pose has a state denoted by this enum, which provides information about the internal status of the
+ /// position estimate. The application may use the status to decide what actions or rendering should be taken.
+ /// A change in the status between poses and subsequent timestamps can denote lifecycle state changes. The
+ /// status affects the rotation and position estimates. Other fields are considered valid (i.e. version or
+ /// timestamp).
///
public enum TangoPoseStatusType
{
- TANGO_POSE_INITIALIZING, /**< Motion estimation is being initialized */
- TANGO_POSE_VALID, /**< The pose of this estimate is valid */
- TANGO_POSE_INVALID, /**< The pose of this estimate is not valid */
- TANGO_POSE_UNKNOWN, /**< Could not estimate pose at this time */
- NA /***
+ /// Motion estimation is being initialized.
+ ///
+ TANGO_POSE_INITIALIZING,
+
+ ///
+ /// The pose of this estimate is valid.
+ ///
+ TANGO_POSE_VALID,
+
+ ///
+ /// The pose of this estimate is not valid.
+ ///
+ TANGO_POSE_INVALID,
+
+ ///
+ /// Could not estimate pose at this time.
+ ///
+ TANGO_POSE_UNKNOWN,
+
+ ///
+ /// Not Available, not a real TangoPoseStatusType.
+ ///
+ NA
}
///
- /// Coordinate frames provided by the Tango Service.
+ /// Tango coordinate frame enumerations.
///
public enum TangoCoordinateFrameType
{
- /** Coordinate system for the entire Earth.
- * See WGS84: http://en.wikipedia.org/wiki/World_Geodetic_System
- */
+ ///
+ /// Coordinate system for the entire Earth.
+ ///
+ /// See WGS84: [http://en.wikipedia.org/wiki/World_Geodetic_System].
+ ///
TANGO_COORDINATE_FRAME_GLOBAL_WGS84 = 0,
- /** Origin within a saved area description */
+
+ ///
+ /// Origin within a saved area description.
+ ///
TANGO_COORDINATE_FRAME_AREA_DESCRIPTION,
- /** Origin when the device started tracking */
+
+ ///
+ /// Origin when the device started tracking.
+ ///
TANGO_COORDINATE_FRAME_START_OF_SERVICE,
- /** Immediately previous device pose */
+
+ ///
+ /// Immediately previous device pose.
+ ///
TANGO_COORDINATE_FRAME_PREVIOUS_DEVICE_POSE,
- TANGO_COORDINATE_FRAME_DEVICE, /**< Device coordinate frame */
- TANGO_COORDINATE_FRAME_IMU, /**< Inertial Measurement Unit */
- TANGO_COORDINATE_FRAME_DISPLAY, /**< Display */
- TANGO_COORDINATE_FRAME_CAMERA_COLOR, /**< Color camera */
- TANGO_COORDINATE_FRAME_CAMERA_DEPTH, /**< Depth camera */
- TANGO_COORDINATE_FRAME_CAMERA_FISHEYE, /**< Fisheye camera */
+
+ ///
+ /// Device coordinate frame.
+ ///
+ TANGO_COORDINATE_FRAME_DEVICE,
+
+ ///
+ /// Inertial Measurement Unit.
+ ///
+ TANGO_COORDINATE_FRAME_IMU,
+
+ ///
+ /// Display.
+ ///
+ TANGO_COORDINATE_FRAME_DISPLAY,
+
+ ///
+ /// Color camera.
+ ///
+ TANGO_COORDINATE_FRAME_CAMERA_COLOR,
+
+ ///
+ /// Depth camera.
+ ///
+ TANGO_COORDINATE_FRAME_CAMERA_DEPTH,
+
+ ///
+ /// Fisheye camera.
+ ///
+ TANGO_COORDINATE_FRAME_CAMERA_FISHEYE,
+
+ ///
+ /// An invalid frame.
+ ///
TANGO_COORDINATE_FRAME_INVALID,
- TANGO_MAX_COORDINATE_FRAME_TYPE /**< Maximum allowed */
+
+ ///
+ /// Maximum allowed.
+ ///
+ TANGO_MAX_COORDINATE_FRAME_TYPE
}
///
- /// Enumeration containing the ID used for each
- /// Tango camera.
+ /// Tango Camera enumerations.
///
public enum TangoCameraId
{
- TANGO_CAMERA_COLOR = 0, /**< Back-facing color camera */
- TANGO_CAMERA_RGBIR, /**< Back-facing camera producing IR-sensitive images */
- TANGO_CAMERA_FISHEYE, /**< Back-facing fisheye wide-angle camera */
- TANGO_CAMERA_DEPTH, /**< Depth camera */
- TANGO_MAX_CAMERA_ID /**< Maximum camera allowable */
+ ///
+ /// Back-facing color camera.
+ ///
+ TANGO_CAMERA_COLOR = 0,
+
+ ///
+ /// Back-facing camera producing IR-sensitive images.
+ ///
+ TANGO_CAMERA_RGBIR,
+
+ ///
+ /// Back-facing fisheye wide-angle camera.
+ ///
+ TANGO_CAMERA_FISHEYE,
+
+ ///
+ /// Depth camera.
+ ///
+ TANGO_CAMERA_DEPTH,
+
+ ///
+ /// Maximum camera allowable.
+ ///
+ TANGO_MAX_CAMERA_ID
}
///
- /// Enumeration containing events provided by the
- /// Tango Service.
+ /// Tango Event types.
///
public enum TangoEventType
{
- TANGO_EVENT_UNKNOWN = 0, /**< Unclassified Event Type */
- TANGO_EVENT_GENERAL, /**< General callbacks not otherwise categorized */
- TANGO_EVENT_FISHEYE_CAMERA, /**< Fisheye Camera Event */
- TANGO_EVENT_COLOR_CAMERA, /**< Color Camera Event */
- TANGO_EVENT_IMU, /**< IMU Event */
- TANGO_EVENT_FEATURE_TRACKING, /**< Feature Tracking Event */
+ ///
+ /// Unclassified Event Type.
+ ///
+ TANGO_EVENT_UNKNOWN = 0,
+
+ ///
+ /// General callbacks not otherwise categorized.
+ ///
+ TANGO_EVENT_GENERAL,
+
+ ///
+ /// Fisheye Camera Event.
+ ///
+ TANGO_EVENT_FISHEYE_CAMERA,
+
+ ///
+ /// Color Camera Event.
+ ///
+ TANGO_EVENT_COLOR_CAMERA,
+
+ ///
+ /// IMU Event.
+ ///
+ TANGO_EVENT_IMU,
+
+ ///
+ /// Feature Tracking Event.
+ ///
+ TANGO_EVENT_FEATURE_TRACKING,
}
+ ///
+ /// Tango runtime configuration enumerations.
+ ///
public enum TangoConfigType
{
- TANGO_CONFIG_DEFAULT = 0, /**< Default, motion tracking only. */
- TANGO_CONFIG_CURRENT, /**< Current */
- TANGO_CONFIG_MOTION_TRACKING, /**< Motion tracking */
- TANGO_CONFIG_AREA_LEARNING, /**< Area learning */
- TANGO_MAX_CONFIG_TYPE /**< Maximum number allowable. */
+ ///
+ /// Default, motion tracking only.
+ ///
+ TANGO_CONFIG_DEFAULT = 0,
+
+ ///
+ /// Current.
+ ///
+ TANGO_CONFIG_CURRENT,
+
+ ///
+ /// Motion tracking.
+ ///
+ TANGO_CONFIG_MOTION_TRACKING,
+
+ ///
+ /// Area learning.
+ ///
+ TANGO_CONFIG_AREA_LEARNING,
+
+ ///
+ /// Maximum number allowable.
+ ///
+ TANGO_MAX_CONFIG_TYPE
}
+ ///
+ /// Tango Camera Calibration types.
+ ///
+ /// See TangoCameraIntrinsics for a detailed description.
+ ///
public enum TangoCalibrationType
{
TANGO_CALIBRATION_UNKNOWN,
- /**< f-theta fisheye lens model. See
- http://scholar.google.com/scholar?cluster=13508836606423559694&hl=en&as_sdt=2005&sciodt=0,5
- */
+
+ ///
+ /// An f-theta fisheye lens model.
+ /// See .
+ ///
TANGO_CALIBRATION_EQUIDISTANT,
TANGO_CALIBRATION_POLYNOMIAL_2_PARAMETERS,
- /**< Tsai's k1,k2,k3 Model. See
- http://scholar.google.com/scholar?cluster=3512800631607394002&hl=en&as_sdt=0,5&sciodt=0,5
- */
+
+ ///
+ /// Tsai's k1,k2,k3 Model.
+ /// See .
+ ///
TANGO_CALIBRATION_POLYNOMIAL_3_PARAMETERS,
TANGO_CALIBRATION_POLYNOMIAL_5_PARAMETERS,
-
}
-
- /// Tango Image Formats
+
+ ///
+ /// Tango Image Formats.
/// Equivalent to those found in Android core/system/include/system/graphics.h.
+ ///
public enum TangoImageFormatType
{
- TANGO_HAL_PIXEL_FORMAT_YV12 = 0x32315659 // YCrCb 4:2:0 Planar
+ ///
+ /// YCrCb 4:2:0 Planar.
+ ///
+ TANGO_HAL_PIXEL_FORMAT_YV12 = 0x32315659
}
}
}
\ No newline at end of file
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/TangoTypes.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/TangoTypes.cs
index e7b63ac8..a3c1aad0 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/TangoTypes.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/Common/TangoTypes.cs
@@ -1,100 +1,205 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System;
+using System.Collections.Generic;
using System.Runtime.InteropServices;
using UnityEngine;
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.DocumentationRules",
+ "SA1649:FileHeaderFileNameDocumentationMustMatchTypeName",
+ Justification = "Types file.")]
+
namespace Tango
{
///
- /// Represents the ordered point cloud data.
+ /// The TangoXYZij struct contains information returned from the depth sensor.
///
[StructLayout(LayoutKind.Sequential)]
public class TangoXYZij
{
+ ///
+ /// An integer denoting the version of the structure.
+ ///
[MarshalAs(UnmanagedType.I4)]
public int version;
-
+
+ ///
+ /// Time of capture of the depth data for this struct (in seconds).
+ ///
[MarshalAs(UnmanagedType.R8)]
public double timestamp;
-
+
+ ///
+ /// The number of points in the xyz array.
+ ///
+ /// This is variable with result and is returned in (x,y,z) triplets populated (e.g. 2 points populated
+ /// returned means 6 floats, or 6*4 bytes used).
+ ///
[MarshalAs(UnmanagedType.I4)]
public int xyz_count;
-
+
+ ///
+ /// An array of packed coordinate triplets, x,y,z as floating point values.
+ ///
+ /// With the unit in landscape orientation, screen facing the user: +Z points in the direction of the
+ /// camera's optical axis, and is measured perpendicular to the plane of the camera. +X points toward the
+ /// user's right, and +Y points toward the bottom of the screen. The origin is the focal centre of the color
+ /// camera. The output is in units of metres.
+ ///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.SysUInt)]
public IntPtr[] xyz;
-
+
+ ///
+ /// The dimensions of the ij index buffer.
+ ///
[MarshalAs(UnmanagedType.I4)]
public int ij_rows;
-
+
+ ///
+ /// The dimensions of the ij index buffer.
+ ///
[MarshalAs(UnmanagedType.I4)]
public int ij_cols;
-
+
+ ///
+ /// A 2D buffer, of size ij_rows x ij_cols in raster ordering that contains the index of a point in the xyz
+ /// array that was generated at this "ij" location.
+ ///
+ /// A value of -1 denotes there was no corresponding point generated at that position. This buffer can be used
+ /// to find neighbouring points in the point cloud.
+ ///
+ /// For more information, see our developer overview on depth perception .
+ ///
public IntPtr ij;
- // Reserved for future use.
+ ///
+ /// TangoImageBuffer is reserved for future use.
+ ///
public IntPtr color_image;
///
/// Returns a that represents the current .
///
- /// A that represents the current .
+ ///
+ /// A that represents the current .
+ ///
public override string ToString()
{
- return ("timestamp : " + timestamp + "\n" +
- "xyz_count : " + xyz_count + "\n" +
- "ij_rows : " + ij_rows + "\n" +
- "ij_cols : " + ij_cols);
+ return string.Format("timestamp : {0}\nxyz_count : {1}\nij_rows : {2}\nij_cols : {3}",
+ timestamp, xyz_count, ij_rows, ij_cols);
}
}
///
- /// Tango event.
+ /// The TangoEvent structure signals important sensor and tracking events.
+ ///
+ /// Each event comes with a timestamp, a type, and a key-value pair describing
+ /// the event. The type is an enumeration which generally classifies the event
+ /// type. The key is a text string describing the event. The description holds
+ /// parameters specific to the event.
+ ///
+ /// Possible descriptions (as "key:value") are:
+ /// - "TangoServiceException:X" - The service has encountered an exception, and
+ /// a text description is given in X.
+ /// - "FisheyeOverExposed:X" - the fisheye image is over exposed with average
+ /// pixel value X px.
+ /// - "FisheyeUnderExposed:X" - the fisheye image is under exposed with average
+ /// pixel value X px.
+ /// - "ColorOverExposed:X" - the color image is over exposed with average pixel
+ /// value X px.
+ /// - "ColorUnderExposed:X" - the color image is under exposed with average
+ /// pixel value X px.
+ /// - "TooFewFeaturesTracked:X" - too few features were tracked in the fisheye
+ /// image. The number of features tracked is X.
+ /// - "Unknown".
///
[StructLayout(LayoutKind.Sequential)]
public class TangoEvent
{
+ ///
+ /// Timestamp, in seconds, of the event.
+ ///
[MarshalAs(UnmanagedType.R8)]
public double timestamp;
-
+
+ ///
+ /// Type of event.
+ ///
[MarshalAs(UnmanagedType.I4)]
public TangoEnums.TangoEventType type;
-
+
+ ///
+ /// Description of the event key.
+ ///
[MarshalAs(UnmanagedType.LPStr)]
public string event_key;
+ ///
+ /// Description of the event value.
+ ///
[MarshalAs(UnmanagedType.LPStr)]
public string event_value;
}
///
- /// Tango coordinate frame pair.
+ /// The TangoCoordinateFramePair struct contains a pair of coordinate frames of reference.
+ ///
+ /// Tango pose data is calculated as a transformation between two frames
+ /// of reference (so, for example, you can be asking for the pose of the
+ /// device within a learned area).
+ ///
+ /// This struct is used to specify the desired base and target frames of
+ /// reference when requesting pose data. You can also use it when you have
+ /// a TangoPoseData structure returned from the API and want to examine which
+ /// frames of reference were used to get that pose.
+ ///
+ /// For more information, including which coordinate frame pairs are valid,
+ /// see our page on
+ /// frames of reference.
///
[StructLayout(LayoutKind.Sequential)]
public struct TangoCoordinateFramePair
{
+ ///
+ /// Base frame of reference to compare against when requesting pose data.
+ /// For example, if you have loaded an area and want to find out where the
+ /// device is within it, you would use the
+ /// TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_AREA_DESCRIPTION
frame of reference
+ /// as your base.
+ ///
[MarshalAs(UnmanagedType.I4)]
public TangoEnums.TangoCoordinateFrameType baseFrame;
-
+
+ ///
+ /// Target frame of reference when requesting pose data, compared to the
+ /// base. For example, if you want the device's pose data, use
+ /// TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_DEVICE
.
+ ///
[MarshalAs(UnmanagedType.I4)]
public TangoEnums.TangoCoordinateFrameType targetFrame;
}
///
- /// Tango image buffer.
+ /// The TangoImageBuffer contains information about a byte buffer holding image data.
+ ///
+ /// This data is populated by the service when it returns an image.
///
[StructLayout(LayoutKind.Sequential)]
public class TangoImageBuffer
@@ -136,34 +241,46 @@ public class TangoImageBuffer
public TangoEnums.TangoImageFormatType format;
///
- /// Pixels in HAL_PIXEL_FORMAT_YV12 format. Y samples of width x height are
- /// first, followed by V samples, with half the stride and half the lines of
- /// the Y data, followed by a U samples with the same dimensions as the V
- /// sample. This is stored in the API as a dynamic byte array (uint8_t*).
+ /// Pixels in the format of this image buffer.
///
public IntPtr data;
}
///
/// The TangoCameraIntrinsics struct contains intrinsic parameters for a camera.
- /// For image coordinates, the obervations, [u, v]^T in pixels.
- /// Normalized image plane coordinates refer to:
///
- /// x = (u - cx) / fx
+ /// Given a 3D point (X, Y, Z) in camera coordinates, the corresponding
+ /// pixel coordinates (x, y) are:
///
- /// y = (v - cy) / fy
+ ///
+ /// x = X / Z * fx * rd / ru + cx
+ /// y = X / Z * fy * rd / ru + cy
+ ///
///
- /// Distortion model type is as given by calibration_type. For example, for the
- /// color camera, TANGO_CALIBRATION_POLYNOMIAL_3_PARAMETERS means that the
- /// distortion parameters are in distortion[] as {k1, k2 ,k3} where
+ /// The normalized radial distance ru is given by:
///
- /// x_corr_px = x_px (1 + k1 * r2 + k2 * r4 + k3 * r6)
- /// y_corr_px = y_px (1 + k1 * r2 + k2 * r4 + k3 * r6)
+ ///
+ /// ru = sqrt((X^2 + Y^2) / (Z^2))
+ ///
///
- /// where r2, r4, r6 are the 2nd, 4th, and 6th powers of the r, where r is the
- /// distance (normalized image plane coordinates) of (x,y) to (cx,cy), and
- /// for a pixel at point (x_px, y_px) in pixel coordinates, the corrected output
- /// position would be (x_corr, y_corr).
+ /// The distorted radial distance rd depends on the distortion model used.
+ ///
+ /// For TangoCalibrationType.TANGO_CALIBRATION_POLYNOMIAL_3_PARAMETERS
, rd is a
+ /// polynomial that depends on the 3 distortion coefficients k1, k2 and k3:
+ ///
+ ///
+ /// rd = ru + k1 * ru^3 + k2 * ru^5 + k3 * ru^7
+ ///
+ ///
+ /// For TangoCalibrationType.TANGO_CALIBRATION_EQUIDISTANT
, rd depends on the single
+ /// distortion coefficient w:
+ ///
+ ///
+ /// rd = 1 / w * arctan(2 * ru * tan(w / 2))
+ ///
+ ///
+ /// For more information, see our page on
+ /// Camera Intrinsics and Extrinsics.
///
[StructLayout(LayoutKind.Sequential)]
public class TangoCameraIntrinsics
@@ -175,7 +292,8 @@ public class TangoCameraIntrinsics
public TangoEnums.TangoCameraId camera_id;
///
- /// Calibration model type that they distorion parameters reference.
+ /// The type of distortion model used. This determines the meaning of the
+ /// distortion coefficients.
///
[MarshalAs(UnmanagedType.I4)]
public TangoEnums.TangoCalibrationType calibration_type;
@@ -218,34 +336,72 @@ public class TangoCameraIntrinsics
}
///
- /// Data representing a pose from the Tango Service.
+ /// The TangoPoseData struct contains 6DOF pose information.
+ ///
+ /// The device pose is given using Android conventions. See the Android
+ /// Sensor
+ /// Overview page for more information.
///
[StructLayout(LayoutKind.Sequential)]
public class TangoPoseData
{
+ ///
+ /// An integer denoting the version of the structure.
+ ///
[MarshalAs(UnmanagedType.I4)]
public int version;
-
+
+ ///
+ /// Timestamp of the time that this pose estimate corresponds to.
+ ///
[MarshalAs(UnmanagedType.R8)]
public double timestamp;
-
+
+ ///
+ /// Orientation, as a quaternion, of the pose of the target frame
+ /// with reference to the base frame.
+ /// Specified as (x,y,z,w) where RotationAngle is in radians:
+ ///
+ /// x = RotationAxis.x * sin(RotationAngle / 2)
+ /// y = RotationAxis.y * sin(RotationAngle / 2)
+ /// z = RotationAxis.z * sin(RotationAngle / 2)
+ /// w = cos(RotationAngle / 2)
+ ///
+ ///
[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.R8)]
public double[] orientation;
-
+
+ ///
+ /// Translation, ordered x, y, z, of the pose of the target frame
+ /// with reference to the base frame.
+ ///
[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.R8)]
public double[] translation;
-
+
+ ///
+ /// The status of the pose, according to the pose lifecycle.
+ ///
[MarshalAs(UnmanagedType.I4)]
public TangoEnums.TangoPoseStatusType status_code;
-
+
+ ///
+ /// The pair of coordinate frames for this pose.
+ ///
+ /// We retrieve a pose for a target coordinate frame (such as the Tango device) against a base
+ /// coordinate frame (such as a learned area).
+ ///
[MarshalAs(UnmanagedType.Struct)]
public TangoCoordinateFramePair framePair;
-
- // Unused. Integer levels are determined by service.
+
+ ///
+ /// Unused. Integer levels are determined by service.
+ ///
[MarshalAs(UnmanagedType.I4)]
public int confidence;
- // Unused. Reserved for metric accuracy.
+ ///
+ /// Unused. Reserved for metric accuracy.
+ ///
[MarshalAs(UnmanagedType.R4)]
public float accuracy;
@@ -265,7 +421,7 @@ public TangoPoseData()
}
///
- /// Performs a deep copy of pose data.
+ /// Deep copy from poseToCopy into this.
///
/// Pose to copy.
public void DeepCopy(TangoPoseData poseToCopy)
@@ -276,11 +432,11 @@ public void DeepCopy(TangoPoseData poseToCopy)
this.framePair.baseFrame = poseToCopy.framePair.baseFrame;
this.framePair.targetFrame = poseToCopy.framePair.targetFrame;
this.confidence = poseToCopy.confidence;
- for(int i = 0; i < 4; ++i)
+ for (int i = 0; i < 4; ++i)
{
this.orientation[i] = poseToCopy.orientation[i];
}
- for(int i = 0; i < 3; ++i)
+ for (int i = 0; i < 3; ++i)
{
this.translation[i] = poseToCopy.translation[i];
}
@@ -288,14 +444,19 @@ public void DeepCopy(TangoPoseData poseToCopy)
}
///
- /// Used in the Unity SDK to hold information about the UUID
- /// to avoid too many conversions when needing to access the information.
+ /// Unity-side representation of a area description ID and its associated metadata.
+ ///
+ /// Used to avoid too many conversions when needing to access the information.
///
public class UUIDUnityHolder
{
+ ///
+ /// The Metadata for this area description ID.
+ ///
+ public Metadata uuidMetaData;
+
private UUID uuidObject;
private string uuidName;
- public Metadata uuidMetaData;
///
/// Initializes a new instance of the class.
@@ -314,7 +475,6 @@ public UUIDUnityHolder()
///
public void PrepareUUIDMetaData()
{
-
uuidMetaData.PopulateMetaDataKeyValues();
}
@@ -334,7 +494,7 @@ public void AllocateDataBuffer()
/// The data marshalled by the UUID list object for this UUID object.
public void SetDataUUID(byte[] uuidData)
{
- if(uuidObject.data == IntPtr.Zero)
+ if (uuidObject.data == IntPtr.Zero)
{
AllocateDataBuffer();
}
@@ -346,7 +506,7 @@ public void SetDataUUID(byte[] uuidData)
/// Copies the data contained by uuidData into our UUID object
/// data IntPtr.
///
- /// The UTF-8 encoded string for this UUID object.
+ /// The UTF-8 encoded string for this UUID object.
public void SetDataUUID(string uuidString)
{
uuidName = uuidString;
@@ -381,7 +541,9 @@ public bool IsObjectValid()
}
///
- /// Unique Identifier for an Area Description File.
+ /// The unique id associated with a single area description.
+ ///
+ /// Should be 36 characters including dashes and a null terminating character.
///
[StructLayout(LayoutKind.Sequential)]
public class UUID
@@ -395,15 +557,16 @@ public class UUID
///
public class UUID_list
{
- private UUIDUnityHolder[] UUIDs;
+ private UUIDUnityHolder[] uuids;
private int count;
///
/// Count of all Area Description Files (Read only).
///
+ /// The count.
public int Count
{
- get {return count;}
+ get { return count; }
}
///
@@ -411,7 +574,7 @@ public int Count
///
public UUID_list()
{
- UUIDs = null;
+ uuids = null;
}
///
@@ -422,32 +585,33 @@ public void PopulateUUIDList(string uuidNames)
{
System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding();
string[] splitNames = uuidNames.Split(',');
- UUIDs = new UUIDUnityHolder[splitNames.Length];
+ uuids = new UUIDUnityHolder[splitNames.Length];
count = splitNames.Length;
- for(int i = 0; i < count; ++i)
+ for (int i = 0; i < count; ++i)
{
- if(UUIDs[i] == null)
+ if (uuids[i] == null)
{
- UUIDs[i] = new Tango.UUIDUnityHolder();
+ uuids[i] = new Tango.UUIDUnityHolder();
}
- //Following three calls should be done in the same order always.
- UUIDs[i].SetDataUUID(System.Text.Encoding.UTF8.GetString(encoder.GetBytes(splitNames[i])));
- PoseProvider.GetAreaDescriptionMetaData(UUIDs[i]);
- UUIDs[i].PrepareUUIDMetaData();
+
+ // Following three calls should be done in the same order always.
+ uuids[i].SetDataUUID(System.Text.Encoding.UTF8.GetString(encoder.GetBytes(splitNames[i])));
+ PoseProvider.GetAreaDescriptionMetaData(uuids[i]);
+ uuids[i].PrepareUUIDMetaData();
}
}
///
- /// Returns the latest ADF UUID found in the list
+ /// Returns the latest ADF UUID found in the list.
///
/// UUIDUnityHolder object that contains the last ADF saved.
public UUIDUnityHolder GetLatestADFUUID()
{
- if(UUIDs == null || (UUIDs != null && count <= 0))
+ if (uuids == null || (uuids != null && count <= 0))
{
return null;
}
- return UUIDs[count - 1];
+ return uuids[count - 1];
}
///
@@ -457,11 +621,11 @@ public UUIDUnityHolder GetLatestADFUUID()
/// Index.
public UUIDUnityHolder GetADFAtIndex(int index)
{
- if(UUIDs == null || (index < 0 || index >= count))
+ if (uuids == null || (index < 0 || index >= count))
{
return null;
}
- return UUIDs[index];
+ return uuids[index];
}
///
@@ -471,11 +635,11 @@ public UUIDUnityHolder GetADFAtIndex(int index)
/// Index.
public string GetUUIDAsString(int index)
{
- if(UUIDs == null || (index < 0 || index >= count))
+ if (uuids == null || (index < 0 || index >= count))
{
return null;
}
- return UUIDs[index].GetStringDataUUID();
+ return uuids[index].GetStringDataUUID();
}
///
@@ -489,20 +653,19 @@ public bool HasEntries()
}
///
- /// Metadata_entry.
+ /// UUID Metadata list.
///
- [StructLayout(LayoutKind.Sequential)]
public class Metadata
{
- private System.Collections.Generic.Dictionary m_KeyValuePairs = new System.Collections.Generic.Dictionary();
public IntPtr meta_data_pointer;
+ private Dictionary m_keyValuePairs = new Dictionary();
///
/// Populates the meta data key values pairs.
///
public void PopulateMetaDataKeyValues()
{
- PoseProvider.PopulateAreaDescriptionMetaDataKeyValues(meta_data_pointer,ref m_KeyValuePairs);
+ PoseProvider.PopulateAreaDescriptionMetaDataKeyValues(meta_data_pointer, ref m_keyValuePairs);
}
///
@@ -510,13 +673,15 @@ public void PopulateMetaDataKeyValues()
/// PopulateMetaDataKeyValues() should be called before calling this.
///
/// The meta data key values.
- public System.Collections.Generic.Dictionary GetMetaDataKeyValues()
+ public Dictionary GetMetaDataKeyValues()
{
- return m_KeyValuePairs;
+ return m_keyValuePairs;
}
-
}
+ ///
+ /// The TangoUnityImageData contains information about a byte buffer holding image data.
+ ///
public class TangoUnityImageData
{
///
@@ -545,39 +710,28 @@ public class TangoUnityImageData
public Int64 frame_number;
///
- /// The pixel format of the data.
+ /// Pixel format of the data.
///
public TangoEnums.TangoImageFormatType format;
///
- /// Pixels in HAL_PIXEL_FORMAT_YV12 format. Y samples of width x height are
- /// first, followed by V samples, with half the stride and half the lines of
- /// the Y data, followed by a U samples with the same dimensions as the V
- /// sample. This is stored in the API as a dynamic byte array (uint8_t*).
+ /// Pixels in the format of this image buffer.
///
public byte[] data;
}
-
+
///
- /// Tango depth that is more Unity friendly.
+ /// Like TangoXYZij, but more Unity friendly.
///
public class TangoUnityDepth
{
- public int m_version;
- public int m_pointCount;
- public float[] m_points;
- public double m_timestamp;
- public int m_ijRows;
- public int m_ijColumns;
- public int[] m_ij;
-
///
/// Max point array size is currently defined by the largest single mesh
/// supported by Unity. This array is multiplied by 3 to account for the
/// x/y/z components.
///
public static readonly int MAX_POINTS_ARRAY_SIZE = Common.UNITY_MAX_SUPPORTED_VERTS_PER_MESH * 3;
-
+
///
/// Max IJ array size is currently defined by the largest single mesh
/// supported by Unity. This number is multiplied by 2 to account for the
@@ -585,6 +739,56 @@ public class TangoUnityDepth
///
public static readonly int MAX_IJ_ARRAY_SIZE = Common.UNITY_MAX_SUPPORTED_VERTS_PER_MESH * 2;
+ ///
+ ///
+ /// An integer denoting the version of the structure.
+ ///
+ public int m_version;
+
+ ///
+ /// The number of points in the m_points array.
+ ///
+ /// Because the points array always contains 3D points, this is m_points.Count / 3.
+ ///
+ public int m_pointCount;
+
+ ///
+ /// An array of packed coordinate triplets, x,y,z as floating point values.
+ ///
+ public float[] m_points;
+
+ ///
+ /// Time of capture of the depth data for this struct (in seconds).
+ ///
+ public double m_timestamp;
+
+ ///
+ /// The dimensions of the ij index buffer.
+ ///
+ public int m_ijRows;
+
+ ///
+ /// The dimensions of the ij index buffer.
+ ///
+ public int m_ijColumns;
+
+ ///
+ /// A 2D buffer, of size ij_rows x ij_cols in raster ordering that contains
+ /// the index of a point in the xyz array that was generated at this "ij"
+ /// location.
+ ///
+ /// A value of -1 denotes there was no corresponding point generated at that position. This buffer can be used
+ /// to find neighbouring points in the point cloud.
+ ///
+ /// For more information, see our
+ /// developer
+ /// overview on depth perception.
+ ///
+ public int[] m_ij;
+
+ ///
+ /// Initializes an empty instance of the class, with no points.
+ ///
public TangoUnityDepth()
{
m_points = new float[MAX_POINTS_ARRAY_SIZE];
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces.meta b/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces.meta
index b67addc5..9e25d3ba 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces.meta
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: f5d37fb7ce64947f28ab06d0dbf90ce4
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/IExperimentalTangoVideoOverlay.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/IExperimentalTangoVideoOverlay.cs
index 61695067..b23c25b7 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/IExperimentalTangoVideoOverlay.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/IExperimentalTangoVideoOverlay.cs
@@ -1,25 +1,35 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System.Collections;
using UnityEngine;
///
-/// Interface for experimental Tango video overlay event handler.
+/// Experimental API only, subject to change. Tango video overlay interface.
///
public interface IExperimentalTangoVideoOverlay
{
+ ///
+ /// This will be called when a new frame is available from the camera.
+ ///
+ /// The first scan-line of the color image is reserved for metadata instead of image pixels.
+ ///
+ /// Camera identifier.
void OnExperimentalTangoImageAvailable(Tango.TangoEnums.TangoCameraId cameraId);
}
\ No newline at end of file
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/ITangoDepth.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/ITangoDepth.cs
index 1d99a6f0..b6813eb4 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/ITangoDepth.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/ITangoDepth.cs
@@ -1,25 +1,35 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System.Collections;
using UnityEngine;
///
-/// Interface for Tango depth event handler.
+/// Tango depth interface.
///
public interface ITangoDepth
{
- void OnTangoDepthAvailable(Tango.TangoUnityDepth tangoDepth);
+ ///
+ /// This is called each time new depth data is available.
+ ///
+ /// On the Tango tablet, the depth callback occurs at 5 Hz.
+ ///
+ /// Tango depth.
+ void OnTangoDepthAvailable(Tango.TangoUnityDepth tangoDepth);
}
\ No newline at end of file
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/ITangoEvent.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/ITangoEvent.cs
index eb2dad3e..d3619678 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/ITangoEvent.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/ITangoEvent.cs
@@ -1,25 +1,33 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-using UnityEngine;
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System.Collections;
+using UnityEngine;
///
-/// Interface for Tango Events
+/// Event notification interface.
///
public interface ITangoEvent
{
+ ///
+ /// This is called each time a Tango event happens.
+ ///
+ /// Tango event.
void OnTangoEventAvailableEventHandler(Tango.TangoEvent tangoEvent);
}
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/ITangoPose.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/ITangoPose.cs
index e0370544..06a8169d 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/ITangoPose.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/ITangoPose.cs
@@ -1,25 +1,36 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System.Collections;
using UnityEngine;
///
-/// Interface for Tango pose event handler.
+/// Pose interface.
///
public interface ITangoPose
{
- void OnTangoPoseAvailable(Tango.TangoPoseData poseData);
+ ///
+ /// This is called as new pose updates become available.
+ ///
+ /// This will be called for START_OF_SERVICE to DEVICE, AREA_DESCRIPTION to DEVICE, and START_OF_SERVICE to
+ /// AREA_DESCRIPTION, based on which flags have been set on the TangoApplication.
+ ///
+ /// Pose data.
+ void OnTangoPoseAvailable(Tango.TangoPoseData poseData);
}
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/ITangoVideoOverlay.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/ITangoVideoOverlay.cs
index f208a9f9..06b7270f 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/ITangoVideoOverlay.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/Interfaces/ITangoVideoOverlay.cs
@@ -1,26 +1,37 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System.Collections;
using UnityEngine;
///
-/// Interface for Tango video overlay event handler.
+/// Tango video overlay interface.
///
public interface ITangoVideoOverlay
{
+ ///
+ /// This will be called when a new frame is available from the camera.
+ ///
+ /// The first scan-line of the color image is reserved for metadata instead of image pixels.
+ ///
+ /// Camera identifier.
+ /// Image buffer.
void OnTangoImageAvailableEventHandler(Tango.TangoEnums.TangoCameraId cameraId,
Tango.TangoUnityImageData imageBuffer);
}
\ No newline at end of file
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners.meta b/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners.meta
index 7adfc8ed..582cccc2 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners.meta
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: f2e1e806634414f10ad59d9b84c3130c
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners/DepthListener.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners/DepthListener.cs
index 7e8e035e..bedbebd3 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners/DepthListener.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners/DepthListener.cs
@@ -1,18 +1,22 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System;
using System.Runtime.InteropServices;
using UnityEngine;
@@ -20,24 +24,23 @@
namespace Tango
{
///
- /// On tango depth available event handler.
+ /// Delegate for Tango depth events.
///
/// TangoUnityDepth object for the available depth frame.
- public delegate void OnTangoDepthAvailableEventHandler(TangoUnityDepth tangoDepth);
+ internal delegate void OnTangoDepthAvailableEventHandler(TangoUnityDepth tangoDepth);
///
- /// Abstract base class that can be used to
- /// automatically register for onDepthAvailable
- /// callbacks from the Tango Service.
+ /// Marshals Tango depth data between the C callbacks in one thread and
+ /// the main Unity thread.
///
- public class DepthListener
+ internal class DepthListener
{
private Tango.DepthProvider.TangoService_onDepthAvailable m_onDepthAvailableCallback;
///
/// Occurs when m_on tango depth available.
///
- private event OnTangoDepthAvailableEventHandler m_OnTangoDepthAvailable;
+ private event OnTangoDepthAvailableEventHandler OnTangoDepthAvailable;
private bool m_isDirty = false;
private TangoUnityDepth m_tangoDepth;
@@ -45,56 +48,59 @@ public class DepthListener
private float[] m_depthPoints;
///
- /// Register this class to receive the OnDepthAvailable callback.
+ /// Register to get Tango depth callbacks.
+ ///
+ /// NOTE: Tango depth callbacks happen on a different thread than the main
+ /// Unity thread.
///
- public virtual void SetCallback()
+ internal virtual void SetCallback()
{
m_tangoDepth = new TangoUnityDepth();
m_onDepthAvailableCallback = new Tango.DepthProvider.TangoService_onDepthAvailable(_OnDepthAvailable);
- Tango.DepthProvider.SetCallback(m_onDepthAvailableCallback);
+ Tango.DepthProvider.SetCallback(m_onDepthAvailableCallback);
}
///
- /// Sends the depth if available.
+ /// Raise a Tango depth event if there is new data.
///
- public void SendDepthIfAvailable()
+ internal void SendDepthIfAvailable()
{
- if (m_isDirty && m_OnTangoDepthAvailable != null)
+ if (m_isDirty && OnTangoDepthAvailable != null)
{
lock (m_lockObject)
{
- m_OnTangoDepthAvailable(m_tangoDepth);
+ OnTangoDepthAvailable(m_tangoDepth);
}
m_isDirty = false;
}
}
///
- /// Registers the on tango depth available.
+ /// Register a Unity main thread handler for the Tango depth event.
///
- /// Handler.
- public void RegisterOnTangoDepthAvailable(OnTangoDepthAvailableEventHandler handler)
+ /// Event handler to register.
+ internal void RegisterOnTangoDepthAvailable(OnTangoDepthAvailableEventHandler handler)
{
if (handler != null)
{
- m_OnTangoDepthAvailable += handler;
+ OnTangoDepthAvailable += handler;
}
}
///
- /// Unregisters the on tango depth available.
+ /// Unregisters a Unity main thread handler for the Tango depth event.
///
- /// Handler.
- public void UnregisterOnTangoDepthAvailable(OnTangoDepthAvailableEventHandler handler)
+ /// Event handler to unregister.
+ internal void UnregisterOnTangoDepthAvailable(OnTangoDepthAvailableEventHandler handler)
{
if (handler != null)
{
- m_OnTangoDepthAvailable -= handler;
+ OnTangoDepthAvailable -= handler;
}
}
///
- /// Callback that gets called when depth is available
+ /// DEPRECATED: Callback that gets called when depth is available
/// from the Tango Service.
///
/// Callback context.
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners/PoseListener.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners/PoseListener.cs
index eb6a093d..4f79d849 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners/PoseListener.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners/PoseListener.cs
@@ -1,18 +1,22 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using UnityEngine;
@@ -20,49 +24,32 @@
namespace Tango
{
///
- /// On tango pose available event handler.
+ /// Delegate for Tango pose events.
///
- public delegate void OnTangoPoseAvailableEventHandler(TangoPoseData poseData);
+ /// The pose data from Tango.
+ internal delegate void OnTangoPoseAvailableEventHandler(TangoPoseData poseData);
///
- /// Abstract base class that can be used to
- /// automatically register for onPoseAvailable
- /// callbacks from the Tango Service.
+ /// Marshals Tango pose data between the C callbacks in one thread and the main Unity thread.
///
public class PoseListener
{
- public Tango.PoseProvider.TangoService_onPoseAvailable m_poseAvailableCallback;
+ ///
+ /// DEPRECATED: The pose available callback.
+ ///
+ internal Tango.PoseProvider.TangoService_onPoseAvailable m_poseAvailableCallback;
private const int SIZE_OF_POSE_DATA_POOL = 3;
- private TangoPoseData m_motionTrackingData;
- private TangoPoseData m_areaLearningData;
- private TangoPoseData m_relocalizationData;
+ private TangoPoseData m_motionTrackingData = null;
+ private TangoPoseData m_areaLearningData = null;
+ private TangoPoseData m_relocalizationData = null;
private OnTangoPoseAvailableEventHandler m_onTangoPoseAvailable;
private Stack m_poseDataPool;
private bool m_isDirty = false;
+ private object m_lockObject = new object();
///
- /// Initializes a new instance of the class.
- ///
- public PoseListener()
- {
- m_motionTrackingData = null;
- m_areaLearningData = null;
- m_relocalizationData = null;
- m_poseDataPool = new Stack();
-
- // Add pre-allocated TangoPoseData objects to the
- // pool stack.
- for(int i = 0; i < SIZE_OF_POSE_DATA_POOL; ++i)
- {
- TangoPoseData emptyPose = new TangoPoseData();
- m_poseDataPool.Push(emptyPose);
- }
- }
-
- ///
- /// Gets or sets a value indicating whether this
- /// is using auto reset.
+ /// DEPRECATED: Gets or sets a value indicating whether this is using auto reset.
///
/// true if auto reset; otherwise, false.
public bool AutoReset
@@ -72,7 +59,7 @@ public bool AutoReset
}
///
- /// Gets or sets a value indicating whether this use camera intrinsics.
+ /// DEPRECATED: Gets or sets a value indicating whether this use camera intrinsics.
///
/// true if use camera intrinsics; otherwise, false.
public bool UseCameraIntrinsics
@@ -82,143 +69,210 @@ public bool UseCameraIntrinsics
}
///
- /// Sends the pose if available.
+ /// Initializes a new instance of the class.
///
- /// The pose status if available.
- public void SendPoseIfAvailable()
+ internal PoseListener()
{
- if(m_isDirty)
- {
- if(m_onTangoPoseAvailable != null)
+ m_poseDataPool = new Stack();
+
+ // Add pre-allocated TangoPoseData objects to the
+ // pool stack.
+ for (int i = 0; i < SIZE_OF_POSE_DATA_POOL; ++i)
+ {
+ TangoPoseData emptyPose = new TangoPoseData();
+ m_poseDataPool.Push(emptyPose);
+ }
+ }
+
+ ///
+ /// Raise a Tango pose event if there is new data.
+ ///
+ internal void SendPoseIfAvailable()
+ {
+#if UNITY_EDITOR
+ if (TangoApplication.m_mouseEmulationViaPoseUpdates)
+ {
+ PoseProvider.UpdateTangoEmulation();
+ lock (m_lockObject)
{
- if(m_motionTrackingData != null)
+ if (m_onTangoPoseAvailable != null)
{
- m_onTangoPoseAvailable(m_motionTrackingData);
- m_poseDataPool.Push(m_motionTrackingData);
- m_motionTrackingData = null;
+ FillEmulatedPoseData(ref m_motionTrackingData,
+ TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_START_OF_SERVICE,
+ TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_DEVICE);
+ FillEmulatedPoseData(ref m_areaLearningData,
+ TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_AREA_DESCRIPTION,
+ TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_DEVICE);
+ m_isDirty = true;
}
- if(m_areaLearningData != null)
- {
- m_onTangoPoseAvailable(m_areaLearningData);
- m_poseDataPool.Push(m_areaLearningData);
- m_areaLearningData = null;
- }
- if(m_relocalizationData != null)
+ }
+ }
+#endif
+
+ if (m_isDirty)
+ {
+ if (m_onTangoPoseAvailable != null)
+ {
+ // NOTE: If this becomes a performance issue, this could be changed to use
+ // Interlocked.CompareExchange to "consume" the motion tracking data.
+ lock (m_lockObject)
{
- m_onTangoPoseAvailable(m_relocalizationData);
- m_poseDataPool.Push(m_relocalizationData);
- m_relocalizationData = null;
+ if (m_motionTrackingData != null)
+ {
+ m_onTangoPoseAvailable(m_motionTrackingData);
+ m_poseDataPool.Push(m_motionTrackingData);
+ m_motionTrackingData = null;
+ }
+ if (m_areaLearningData != null)
+ {
+ m_onTangoPoseAvailable(m_areaLearningData);
+ m_poseDataPool.Push(m_areaLearningData);
+ m_areaLearningData = null;
+ }
+ if (m_relocalizationData != null)
+ {
+ m_onTangoPoseAvailable(m_relocalizationData);
+ m_poseDataPool.Push(m_relocalizationData);
+ m_relocalizationData = null;
+ }
}
}
- m_isDirty = false;
+ m_isDirty = false;
}
}
///
- /// Registers the callback.
+ /// Register to get Tango pose callbacks for specific reference frames.
+ ///
+ /// NOTE: Tango pose callbacks happen on a different thread than the main
+ /// Unity thread.
///
- /// Frame pairs.
- public void SetCallback(TangoCoordinateFramePair[] framePairs)
+ /// The reference frames to get callbacks for.
+ internal void SetCallback(TangoCoordinateFramePair[] framePairs)
{
m_poseAvailableCallback = new Tango.PoseProvider.TangoService_onPoseAvailable(_OnPoseAvailable);
Tango.PoseProvider.SetCallback(framePairs, m_poseAvailableCallback);
}
-
+
///
- /// Registers for Tango pose available.
+ /// Register a Unity main thread handler for the Tango pose event.
///
- /// Handler.
- public void RegisterTangoPoseAvailable(OnTangoPoseAvailableEventHandler handler)
+ /// Event handler to register.
+ internal void RegisterTangoPoseAvailable(OnTangoPoseAvailableEventHandler handler)
{
- if(handler != null)
+ if (handler != null)
{
m_onTangoPoseAvailable += handler;
}
}
-
+
///
- /// Unregisters the tango pose available.
+ /// Unregister a Unity main thread handler for the Tango depth event.
///
- /// Handler.
- public void UnregisterTangoPoseAvailable(OnTangoPoseAvailableEventHandler handler)
+ /// Event handler to unregister.
+ internal void UnregisterTangoPoseAvailable(OnTangoPoseAvailableEventHandler handler)
{
- if(handler != null)
+ if (handler != null)
{
m_onTangoPoseAvailable -= handler;
}
}
///
- /// Handle the callback sent by the Tango Service
- /// when a new pose is sampled.
+ /// Handle the callback sent by the Tango Service when a new pose is sampled.
///
/// Callback context.
/// Pose.
private void _OnPoseAvailable(IntPtr callbackContext, TangoPoseData pose)
{
- // MotionTracking
if (pose.framePair.baseFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_START_OF_SERVICE &&
pose.framePair.targetFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_DEVICE)
{
- // Only set new pose once the previous pose has been returned.
- if(m_motionTrackingData == null)
+ // MotionTracking
+ lock (m_lockObject)
{
- TangoPoseData currentPose = m_poseDataPool.Pop();
-
- if(currentPose == null)
- {
- return;
- }
- else
+ // Only set new pose once the previous pose has been returned.
+ if (m_motionTrackingData == null)
{
+ TangoPoseData currentPose = m_poseDataPool.Pop();
currentPose.DeepCopy(pose);
m_motionTrackingData = currentPose;
}
}
}
- // ADF Localized
else if (pose.framePair.baseFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_AREA_DESCRIPTION &&
pose.framePair.targetFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_DEVICE)
{
- // Only set new pose once the previous pose has been returned.
- if(m_areaLearningData == null)
+ // ADF Localized
+ lock (m_lockObject)
{
- TangoPoseData currentPose = m_poseDataPool.Pop();
-
- if(currentPose == null)
- {
- return;
- }
- else
+ // Only set new pose once the previous pose has been returned.
+ if (m_areaLearningData == null)
{
+ TangoPoseData currentPose = m_poseDataPool.Pop();
currentPose.DeepCopy(pose);
m_areaLearningData = currentPose;
}
}
- }
- // Relocalized against ADF
+ }
else if (pose.framePair.baseFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_AREA_DESCRIPTION &&
pose.framePair.targetFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_START_OF_SERVICE)
{
- // Only set new pose once the previous pose has been returned.
- if(m_relocalizationData == null)
+ // Relocalized against ADF
+ lock (m_lockObject)
{
- TangoPoseData currentPose = m_poseDataPool.Pop();
-
- if(currentPose == null)
- {
- return;
- }
- else
+ // Only set new pose once the previous pose has been returned.
+ if (m_relocalizationData == null)
{
+ TangoPoseData currentPose = m_poseDataPool.Pop();
currentPose.DeepCopy(pose);
m_relocalizationData = currentPose;
}
}
}
- m_isDirty = true;
+ m_isDirty = true;
+ }
+
+#if UNITY_EDITOR
+ ///
+ /// Fill out poseData with emulated values from Tango.
+ ///
+ /// The poseData to fill out.
+ /// Base frame to set.
+ /// Target frame to set.
+ private void FillEmulatedPoseData(ref TangoPoseData poseData, TangoEnums.TangoCoordinateFrameType baseFrame,
+ TangoEnums.TangoCoordinateFrameType targetFrame)
+ {
+ if (poseData == null)
+ {
+ TangoPoseData currentPose = m_poseDataPool.Pop();
+
+ if (currentPose != null)
+ {
+ Vector3 position;
+ Quaternion rotation;
+ PoseProvider.GetTangoEmulation(out position, out rotation);
+
+ currentPose.framePair.baseFrame = baseFrame;
+ currentPose.framePair.targetFrame = targetFrame;
+
+ currentPose.timestamp = Time.time * 1000; // timestamp is in ms, time is in sec.
+ currentPose.version = 0; // Not actually used
+ currentPose.status_code = TangoEnums.TangoPoseStatusType.TANGO_POSE_VALID;
+
+ currentPose.translation[0] = position.x;
+ currentPose.translation[1] = position.y;
+ currentPose.translation[2] = position.z;
+ currentPose.orientation[0] = rotation.x;
+ currentPose.orientation[1] = rotation.y;
+ currentPose.orientation[2] = rotation.z;
+ currentPose.orientation[3] = rotation.w;
+ poseData = currentPose;
+ }
+ }
}
+#endif
}
-}
\ No newline at end of file
+}
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners/TangoEventListener.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners/TangoEventListener.cs
index 6f62da44..873098ca 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners/TangoEventListener.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners/TangoEventListener.cs
@@ -1,31 +1,37 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System;
using UnityEngine;
namespace Tango
{
- public delegate void OnTangoEventAvailableEventHandler(TangoEvent tangoEvent);
+ ///
+ /// IDelegate for Tango event events.
+ ///
+ /// Tango event that happened.
+ internal delegate void OnTangoEventAvailableEventHandler(TangoEvent tangoEvent);
///
- /// Abstract base class that can be used to
- /// automatically register for onEventAvailable
- /// callbacks from the Tango Service.
+ /// Marshals Tango event data between the C callbacks in one thread and the main Unity thread.
///
- public class TangoEventListener
+ internal class TangoEventListener
{
private TangoEvents.TangoService_onEventAvailable m_onEventAvaialableCallback;
private OnTangoEventAvailableEventHandler m_onTangoEventAvailable;
@@ -33,66 +39,68 @@ public class TangoEventListener
private bool m_isDirty;
///
- /// Sets the callback.
+ /// Register to get Tango event callbacks.
+ ///
+ /// NOTE: Tango event callbacks happen on a different thread than the main
+ /// Unity thread.
///
- public virtual void SetCallback()
+ internal virtual void SetCallback()
{
- m_onEventAvaialableCallback = new TangoEvents.TangoService_onEventAvailable(_onEventAvailable);
- TangoEvents.SetCallback(m_onEventAvaialableCallback);
+ m_onEventAvaialableCallback = new TangoEvents.TangoService_onEventAvailable(_onEventAvailable);
+ TangoEvents.SetCallback(m_onEventAvaialableCallback);
m_previousEvent = new TangoEvent();
m_isDirty = false;
}
- ///
- /// Sends if tango event available.
- ///
- /// If set to true using UX library.
- public void SendIfTangoEventAvailable()
- {
- if(m_isDirty)
- {
- if(m_onTangoEventAvailable != null)
- {
- m_onTangoEventAvailable(m_previousEvent);
- }
+ ///
+ /// Raise a Tango event if there is new data.
+ ///
+ internal void SendIfTangoEventAvailable()
+ {
+ if (m_isDirty)
+ {
+ if (m_onTangoEventAvailable != null)
+ {
+ m_onTangoEventAvailable(m_previousEvent);
+ }
- m_isDirty = true;
- }
+ m_isDirty = true;
+ }
}
///
- /// Registers the on tango event available.
+ /// Register a Unity main thread handler for Tango events.
///
- /// Handler.
- public void RegisterOnTangoEventAvailable(OnTangoEventAvailableEventHandler handler)
+ /// Event handler to register.
+ internal void RegisterOnTangoEventAvailable(OnTangoEventAvailableEventHandler handler)
{
- if(handler != null)
+ if (handler != null)
{
m_onTangoEventAvailable += handler;
}
}
///
- /// Unregisters the on tango event available.
+ /// Unregister a Unity main thread handler for the Tango depth event.
///
- /// Handler.
- public void UnregisterOnTangoEventAvailable(OnTangoEventAvailableEventHandler handler)
+ /// Event handler to unregister.
+ internal void UnregisterOnTangoEventAvailable(OnTangoEventAvailableEventHandler handler)
{
- if(handler != null)
+ if (handler != null)
{
m_onTangoEventAvailable -= handler;
}
}
///
- /// Handle the callback sent by the Tango Service
+ /// DEPRECATED: Handle the callback sent by the Tango Service
/// when a new event is issued.
///
/// Callback context.
/// Tango event.
protected void _onEventAvailable(IntPtr callbackContext, TangoEvent tangoEvent)
{
- if(tangoEvent != null)
+ if (tangoEvent != null)
{
m_previousEvent.timestamp = tangoEvent.timestamp;
m_previousEvent.type = tangoEvent.type;
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners/VideoOverlayListener.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners/VideoOverlayListener.cs
index 5d06c399..5f07a266 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners/VideoOverlayListener.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/Listeners/VideoOverlayListener.cs
@@ -1,62 +1,88 @@
-
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-using UnityEngine;
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System.Collections;
using System;
using System.Runtime.InteropServices;
+using UnityEngine;
namespace Tango
{
- public delegate void OnTangoImageAvailableEventHandler(TangoEnums.TangoCameraId cameraId,
- TangoUnityImageData imageBuffer);
- public delegate void OnExperimentalTangoImageAvailableEventHandler(Tango.TangoEnums.TangoCameraId cameraId);
+ ///
+ /// Delegate for Tango image events.
+ ///
+ /// The camera for the image.
+ /// The image from the camera.
+ internal delegate void OnTangoImageAvailableEventHandler(TangoEnums.TangoCameraId cameraId,
+ TangoUnityImageData imageBuffer);
+
+ ///
+ /// Experimental API only, subject to change. Delegate for Tango image events.
+ ///
+ /// The camera for the image.
+ internal delegate void OnExperimentalTangoImageAvailableEventHandler(Tango.TangoEnums.TangoCameraId cameraId);
///
- /// Video overlay listener.
+ /// Marshals Tango image data between the C callbacks in one thread and
+ /// the main Unity thread.
///
- public class VideoOverlayListener
+ internal class VideoOverlayListener
{
- private VideoOverlayProvider.TangoService_onImageAvailable m_onImageAvailable;
+ private VideoOverlayProvider.TangoService_onImageAvailable m_onImageAvailable;
private VideoOverlayProvider.TangoService_onUnityFrameAvailable m_onUnityFrameAvailable;
- private event OnTangoImageAvailableEventHandler m_onTangoImageAvailable;
- private event OnExperimentalTangoImageAvailableEventHandler m_onExperimentalTangoImageAvailable;
+ ///
+ /// Called when a new Tango image is available.
+ ///
+ private event OnTangoImageAvailableEventHandler OnTangoImageAvailable;
- private TangoEnums.TangoCameraId m_previousCameraId;
- private TangoUnityImageData m_previousImageBuffer;
- private bool m_shouldSendEvent = false;
+ ///
+ /// Called when a new Tange image is available (experimental version).
+ ///
+ private event OnExperimentalTangoImageAvailableEventHandler OnExperimentalTangoImageAvailable;
+
+ private TangoEnums.TangoCameraId m_previousCameraId;
+ private TangoUnityImageData m_previousImageBuffer;
+ private bool m_shouldSendEvent = false;
private bool m_usingExperimentalOverlay = false;
- ///
- /// Sets the callback for image updates.
- ///
- /// Camera identifier.
- public virtual void SetCallback(Tango.TangoEnums.TangoCameraId cameraId, bool useExperimentalOverlay, YUVTexture videoOverlayTexture)
- {
+ ///
+ /// Register to get Tango image events.
+ ///
+ /// NOTE: Tango image events happen on a different thread than the main
+ /// Unity thread.
+ ///
+ /// Camera identifier to get events for.
+ /// If true, use the experimental video overlay.
+ /// The video overlay texture to use. Only used in experimental mode.
+ internal virtual void SetCallback(Tango.TangoEnums.TangoCameraId cameraId, bool useExperimentalOverlay, YUVTexture videoOverlayTexture)
+ {
m_usingExperimentalOverlay = useExperimentalOverlay;
- if(!useExperimentalOverlay)
+ if (!useExperimentalOverlay)
{
m_previousImageBuffer = new TangoUnityImageData();
- m_onImageAvailable = new Tango.VideoOverlayProvider.TangoService_onImageAvailable(_OnImageAvailable);
- Tango.VideoOverlayProvider.SetCallback(cameraId, m_onImageAvailable);
+ m_onImageAvailable = new Tango.VideoOverlayProvider.TangoService_onImageAvailable(_OnImageAvailable);
+ Tango.VideoOverlayProvider.SetCallback(cameraId, m_onImageAvailable);
}
else
{
- if(videoOverlayTexture != null)
+ if (videoOverlayTexture != null)
{
m_onUnityFrameAvailable = new Tango.VideoOverlayProvider.TangoService_onUnityFrameAvailable(_OnExperimentalUnityFrameAvailable);
VideoOverlayProvider.ExperimentalConnectTexture(cameraId,
@@ -70,93 +96,93 @@ public virtual void SetCallback(Tango.TangoEnums.TangoCameraId cameraId, bool us
Debug.Log("VideoOverlayListener.SetCallback() : No Texture2D found!");
}
}
- }
+ }
///
- /// Sends event if video overlay is available.
+ /// Raise a Tango image event if there is new data.
///
- public void SendIfVideoOverlayAvailable()
- {
- if(m_usingExperimentalOverlay)
+ internal void SendIfVideoOverlayAvailable()
+ {
+ if (m_usingExperimentalOverlay)
{
- if(m_onExperimentalTangoImageAvailable != null && m_shouldSendEvent)
+ if (OnExperimentalTangoImageAvailable != null && m_shouldSendEvent)
{
- m_onExperimentalTangoImageAvailable(m_previousCameraId);
+ OnExperimentalTangoImageAvailable(m_previousCameraId);
m_shouldSendEvent = false;
}
}
else
{
- if(m_onTangoImageAvailable != null && m_shouldSendEvent)
- {
- m_onTangoImageAvailable(TangoEnums.TangoCameraId.TANGO_CAMERA_COLOR, m_previousImageBuffer);
+ if (OnTangoImageAvailable != null && m_shouldSendEvent)
+ {
+ OnTangoImageAvailable(TangoEnums.TangoCameraId.TANGO_CAMERA_COLOR, m_previousImageBuffer);
m_shouldSendEvent = false;
- }
+ }
}
- }
+ }
///
- /// Registers the on tango image available.
+ /// Register a Unity main thread handler for the Tango image event.
///
- /// Handler.
- public void RegisterOnTangoImageAvailable(OnTangoImageAvailableEventHandler handler)
+ /// Event handler to register.
+ internal void RegisterOnTangoImageAvailable(OnTangoImageAvailableEventHandler handler)
{
- if(handler != null)
+ if (handler != null)
{
- m_onTangoImageAvailable += handler;
+ OnTangoImageAvailable += handler;
}
}
///
- /// Unregisters the on tango image available.
+ /// Unregister a Unity main thread handler for the Tango image event.
///
- /// Handler.
- public void UnregisterOnTangoImageAvailable(OnTangoImageAvailableEventHandler handler)
+ /// Event handler to unregister.
+ internal void UnregisterOnTangoImageAvailable(OnTangoImageAvailableEventHandler handler)
{
- if(handler != null)
+ if (handler != null)
{
- m_onTangoImageAvailable -= handler;
+ OnTangoImageAvailable -= handler;
}
}
///
- /// Registers the on tango image available.
+ /// Register a Unity main thread handler for the Tango image event.
///
- /// Handler.
- public void RegisterOnExperimentalTangoImageAvailable(OnExperimentalTangoImageAvailableEventHandler handler)
+ /// Event handler to register.
+ internal void RegisterOnExperimentalTangoImageAvailable(OnExperimentalTangoImageAvailableEventHandler handler)
{
- if(handler != null)
+ if (handler != null)
{
- m_onExperimentalTangoImageAvailable += handler;
+ OnExperimentalTangoImageAvailable += handler;
}
}
///
- /// Unregisters the on tango image available.
+ /// Unregister a Unity main thread handler for the Tango image event.
///
- /// Handler.
- public void UnregisterOnExperimentalTangoImageAvailable(OnExperimentalTangoImageAvailableEventHandler handler)
+ /// Event handler to unregister.
+ internal void UnregisterOnExperimentalTangoImageAvailable(OnExperimentalTangoImageAvailableEventHandler handler)
{
- if(handler != null)
+ if (handler != null)
{
- m_onExperimentalTangoImageAvailable -= handler;
+ OnExperimentalTangoImageAvailable -= handler;
}
}
-
- ///
- /// Handle the callback sent by the Tango Service
- /// when a new image is sampled.
- ///
- /// Camera identifier.
- /// Callback context.
- /// Image buffer.
- protected void _OnImageAvailable(IntPtr callbackContext,
- TangoEnums.TangoCameraId cameraId,
- TangoImageBuffer imageBuffer)
+
+ ///
+ /// DEPRECATED: Handle the callback sent by the Tango Service
+ /// when a new image is sampled.
+ ///
+ /// Callback context.
+ /// Camera identifier.
+ /// Image buffer.
+ protected void _OnImageAvailable(IntPtr callbackContext,
+ TangoEnums.TangoCameraId cameraId,
+ TangoImageBuffer imageBuffer)
{
- m_previousCameraId = cameraId;
+ m_previousCameraId = cameraId;
- if(m_previousImageBuffer.data == null)
+ if (m_previousImageBuffer.data == null)
{
m_previousImageBuffer.data = new byte[imageBuffer.width * imageBuffer.height * 2];
}
@@ -170,10 +196,15 @@ protected void _OnImageAvailable(IntPtr callbackContext,
Marshal.Copy(imageBuffer.data, m_previousImageBuffer.data, 0, m_previousImageBuffer.data.Length);
- m_shouldSendEvent = true;
+ m_shouldSendEvent = true;
}
- public void _OnExperimentalUnityFrameAvailable(IntPtr callbackContext, Tango.TangoEnums.TangoCameraId cameraId)
+ ///
+ /// DEPRECATED: Handle the callback set by the Tango Service when a new image is available.
+ ///
+ /// Callback context.
+ /// Camera identifier.
+ protected void _OnExperimentalUnityFrameAvailable(IntPtr callbackContext, Tango.TangoEnums.TangoCameraId cameraId)
{
m_previousCameraId = cameraId;
m_shouldSendEvent = true;
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers.meta b/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers.meta
index ab2a508b..ecc99fdb 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers.meta
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 4fc55f6870f0443b986d0ef797cec697
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/DepthProvider.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/DepthProvider.cs
index 841a7b9f..5dadf42f 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/DepthProvider.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/DepthProvider.cs
@@ -1,18 +1,22 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System;
using System.Collections;
using System.Runtime.InteropServices;
@@ -21,24 +25,28 @@
namespace Tango
{
///
- /// Wraps depth related Tango Service functionality.
+ /// C API wrapper for the Tango depth interface.
///
- public class DepthProvider
+ internal class DepthProvider
{
+ ///
+ /// Tango depth C callback function signature.
+ ///
+ /// Callback context.
+ /// Depth information.
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- public delegate void TangoService_onDepthAvailable(IntPtr callbackContext, [In,Out] TangoXYZij xyzij);
+ internal delegate void TangoService_onDepthAvailable(IntPtr callbackContext, [In, Out] TangoXYZij xyzij);
///
- /// Sets the callback that is called when new depth
- /// points have been sampled by the Tango Service.
+ /// Set the C callback for the Tango depth interface.
///
/// Callback.
- public static void SetCallback(TangoService_onDepthAvailable callback)
+ internal static void SetCallback(TangoService_onDepthAvailable callback)
{
int returnValue = DepthAPI.TangoService_connectOnXYZijAvailable(callback);
if (returnValue != Common.ErrorType.TANGO_SUCCESS)
{
- Debug.Log("DepthProvider.SetCallback() Callback was not set!");
+ Debug.Log("DepthProvider.SetCallback() Callback was not set!");
}
else
{
@@ -46,9 +54,9 @@ public static void SetCallback(TangoService_onDepthAvailable callback)
}
}
- ///
- /// Wraps depth functionality from Tango Service.
- ///
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.DocumentationRules",
+ "SA1600:ElementsMustBeDocumented",
+ Justification = "C API Wrapper.")]
private struct DepthAPI
{
#if UNITY_ANDROID && !UNITY_EDITOR
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/PoseProvider.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/PoseProvider.cs
index b619e33a..39473e36 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/PoseProvider.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/PoseProvider.cs
@@ -1,65 +1,87 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
+using System;
using System.Collections;
+using System.Collections.Generic;
using System.Runtime.InteropServices;
using UnityEngine;
-using System;
namespace Tango
{
///
- /// Provide pose related functionality.
+ /// C API wrapper for the Tango pose interface.
///
public class PoseProvider
- {
-
+ {
+ ///
+ /// Tango pose C callback function signature.
+ ///
+ /// Callback context.
+ /// Pose data.
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- public delegate void TangoService_onPoseAvailable(IntPtr callbackContext, [In,Out] TangoPoseData pose);
-
- private static readonly string CLASS_NAME = "PoseProvider";
+ internal delegate void TangoService_onPoseAvailable(IntPtr callbackContext, [In, Out] TangoPoseData pose);
+
private const float MOUSE_LOOK_SENSITIVITY = 100.0f;
private const float TRANSLATION_SPEED = 2.0f;
+ private static readonly string CLASS_NAME = "PoseProvider";
// Keeps track of all the ADFs on the device.
private static UUID_list m_adfList = new UUID_list();
+#if UNITY_EDITOR
///
- /// Sets the callback to be used when a new Pose is
- /// presented by the Tango Service.
+ /// The emulated pose position. Used for Tango emulation on PC.
///
- /// Callback.
- public static void SetCallback(TangoCoordinateFramePair[] framePairs, TangoService_onPoseAvailable callback)
- {
- int returnValue = PoseProviderAPI.TangoService_connectOnPoseAvailable(framePairs.Length, framePairs, callback);
- if (returnValue != Common.ErrorType.TANGO_SUCCESS)
- {
- Debug.Log(CLASS_NAME + ".SetCallback() Callback was not set!");
- }
- else
- {
- Debug.Log(CLASS_NAME + ".SetCallback() OnPose callback was set!");
- }
- }
+ private static Vector3 m_emulatedPosePosition;
+
+ ///
+ /// The emulated pose euler angles from forward. Used for Tango emulation on PC.
+ ///
+ /// This is not the pure rotation for Tango, when it is Identity, you are facing forward, not down.
+ ///
+ private static Vector3 m_emulatedPoseAnglesFromForward;
+#endif
///
- /// Gets the pose at a given time.
+ /// Get a pose at a given timestamp from the base to the target frame.
+ ///
+ /// All poses returned are marked as TANGO_POSE_VALID (in the status_code field on TangoPoseData ) even if
+ /// they were marked as TANGO_POSE_INITIALIZING in the callback poses.
+ ///
+ /// If no pose can be returned, the status_code of the returned pose will be TANGO_POSE_INVALID.
///
- /// Pose data.
- /// Time stamp.
- public static void GetPoseAtTime([In,Out] TangoPoseData poseData,
+ /// The pose to return.
+ ///
+ /// Time specified in seconds.
+ ///
+ /// If not set to 0.0, GetPoseAtTime retrieves the interpolated pose closest to this timestamp. If set to 0.0,
+ /// the most recent pose estimate for the target-base pair is returned. The time of the returned pose is
+ /// contained in the pose output structure and may differ from the queried timestamp.
+ ///
+ ///
+ /// A pair of coordinate frames specifying the transformation to be queried for.
+ ///
+ /// For example, typical device motion is given by a target frame of TANGO_COORDINATE_FRAME_DEVICE and a base
+ /// frame of TANGO_COORDINATE_FRAME_START_OF_SERVICE .
+ ///
+ public static void GetPoseAtTime([In, Out] TangoPoseData poseData,
double timeStamp,
TangoCoordinateFramePair framePair)
{
@@ -69,32 +91,41 @@ public static void GetPoseAtTime([In,Out] TangoPoseData poseData,
Debug.Log(CLASS_NAME + ".GetPoseAtTime() Could not get pose at time : " + timeStamp);
}
}
-
+
///
- /// Sets the listener coordinate frame pairs.
+ /// DEPRECATED: Sets the listener coordinate frame pairs.
///
/// Count.
/// Frames.
public static void SetListenerCoordinateFramePairs(int count,
ref TangoCoordinateFramePair frames)
{
- int returnValue = PoseProviderAPI.TangoService_setPoseListenerFrames (count, ref frames);
+ int returnValue = PoseProviderAPI.TangoService_setPoseListenerFrames(count, ref frames);
if (returnValue != Common.ErrorType.TANGO_SUCCESS)
{
Debug.Log(CLASS_NAME + ".SetListenerCoordinateFramePairs() Could not set frame pairs");
}
}
-
+
///
- /// Resets the motion tracking.
+ /// Resets the motion tracking system.
+ ///
+ /// This reinitializes the TANGO_COORDINATE_FRAME_START_OF_SERVICE
coordinate frame to where the
+ /// device is when you call this function; afterwards, if you ask for the pose with relation to start of
+ /// service, it uses this as the new origin. You can call this function at any time.
+ ///
+ /// If you are using Area Learning, the TANGO_COORDINATE_FRAME_AREA_DESCRIPTION
coordinate frame
+ /// is not affected by calling this function; however, the device needs to localize again before you can use
+ /// the area description.
///
public static void ResetMotionTracking()
{
PoseProviderAPI.TangoService_resetMotionTracking();
}
+#if UNITY_EDITOR
///
- /// Gets the mouse emulation.
+ /// DEPRECATED: Legacy function that gets mouse / keyboard PoseEmulation data.
///
/// Controller postion.
/// Controller rotation.
@@ -129,10 +160,13 @@ public static void GetMouseEmulation(ref Vector3 controllerPostion, ref Quaterni
controllerRotation = rotation;
controllerPostion = position;
}
+#endif
#region ADF Functionality
///
- /// Helper method to retrieve a list of saved area description files.
+ /// Gets the full list of unique area description IDs available on a device.
+ ///
+ /// This is updated by calling RefreshADFList
.
///
/// The cached ADF list.
public static UUID_list GetCachedADFList()
@@ -141,46 +175,51 @@ public static UUID_list GetCachedADFList()
}
///
- /// Returns the UUID of the most recent ADF file.
+ /// Gets the latest area description ID available on a device.
///
- /// A string object encoded in UTF-8 format containing the UUID of the requested ADF.
+ /// The most recent area description ID.
public static UUIDUnityHolder GetLatestADFUUID()
{
- if(m_adfList == null)
+ if (m_adfList == null)
{
return null;
}
- return (m_adfList.GetLatestADFUUID());
+ return m_adfList.GetLatestADFUUID();
}
+ ///
+ /// Check if an area description ID is valid.
+ ///
+ /// true if the ID is valid; otherwise, false.
+ /// Area description ID to check.
public static bool IsUUIDValid(UUIDUnityHolder toCheck)
{
return toCheck != null && toCheck.IsObjectValid();
}
///
- /// Gets the UUID of the ADF at the specified index. It will be encoded in UTF-8.
+ /// Gets the area description ID at the specified index as a string.
///
- /// The ADF UUID as string.
- /// The ADF format that we want to know the UUID of.
+ /// The area description ID as a string.
+ /// The index of the area description ID.
public static string GetUUIDAsString(int index)
{
- if(m_adfList == null)
+ if (m_adfList == null)
{
return string.Empty;
}
return m_adfList.GetUUIDAsString(index);
}
-
+
///
- /// Gets the UUID of the ADF at the specified index. It will be encoded in UTF-8.
+ /// Gets the area description ID at the specified index as a char array.
///
- /// The ADF UUID as a char array.
- /// The ADF format that we want to know the UUID of.
+ /// The area description ID as a char array.
+ /// The index of the area description ID.
public static char[] GetUUIDAsCharArray(int index)
{
string uuidString = GetUUIDAsString(index);
- if(String.IsNullOrEmpty(uuidString))
+ if (String.IsNullOrEmpty(uuidString))
{
return null;
}
@@ -188,27 +227,23 @@ public static char[] GetUUIDAsCharArray(int index)
}
///
- /// This method is used to make sure that we have the most up to date information about ADF
- /// that are stored on device. It will make sure to cache it in a UUID_list object
- /// for easier access without querying the device API again. This method will also
- /// retrieve the UUID of each ADF by performing a Marshal.Copy and store the information
- /// in a UUID object list.
+ /// Update the list returned by GetCachedADFList
.
///
- /// The ADF list.
+ /// Returns TANGO_SUCCESS on success, or TANGO_ERROR on failure to retrieve the list.
public static int RefreshADFList()
{
int returnValue = Common.ErrorType.TANGO_ERROR;
IntPtr tempData = IntPtr.Zero;
returnValue = PoseProviderAPI.TangoService_getAreaDescriptionUUIDList(ref tempData);
-
- if(returnValue != Common.ErrorType.TANGO_SUCCESS)
+
+ if (returnValue != Common.ErrorType.TANGO_SUCCESS)
{
Debug.Log(CLASS_NAME + ".RefreshADFList() Could not get ADF list from device.");
}
else
{
byte[] charBuffer = new byte[sizeof(char)];
- System.Collections.Generic.List dataHolder = new System.Collections.Generic.List();
+ List dataHolder = new List();
Marshal.Copy(tempData, charBuffer, 0, 1);
while (charBuffer[0] != 0 && charBuffer[0] != '\n')
{
@@ -218,9 +253,8 @@ public static int RefreshADFList()
}
string uuidList = System.Text.Encoding.UTF8.GetString(dataHolder.ToArray());
m_adfList.PopulateUUIDList(uuidList);
- if(!m_adfList.HasEntries())
+ if (!m_adfList.HasEntries())
{
-
Debug.Log(CLASS_NAME + ".RefreshADFList() No area description files found on device.");
}
}
@@ -228,16 +262,22 @@ public static int RefreshADFList()
}
///
- /// Saves an area description to device based on the UUID object contained in the adfID object holder.
+ /// Saves the area description, returning the unique ID associated with the saved map.
+ ///
+ /// You can only save an area description while connected to the Tango Service and if you have enabled Area
+ /// Learning mode. If you loaded an ADF before connecting, then calling this method appends any new learned
+ /// areas to that ADF and returns the same UUID. If you did not load an ADF, this method creates a new ADF and
+ /// a new UUID for that ADF.
///
- /// Common.ErrorType.TANGO_SUCCESS if saving was successfull.
- /// The UUIDUnityHolder object that contains the desired UUID object.
+ ///
+ /// Returns TANGO_SUCCESS on success, and TANGO_ERROR if a failure occurred when saving, or if the service
+ /// needs to be initialized, or TANGO_INVALID if uuid is NULL, or of incorrect length, or if Area Learning Mode
+ /// was not set (see logcat for details).
+ ///
+ /// Upon saving, the TangoUUID to refer to this ADF is returned here.
public static int SaveAreaDescription(UUIDUnityHolder adfUnityHolder)
{
- // is learning mode on
- // are we localized?
-
- if(adfUnityHolder == null)
+ if (adfUnityHolder == null)
{
Debug.Log(CLASS_NAME + ".SaveAreaDescription() Could not save area description. UUID Holder object specified is not initialized");
return Common.ErrorType.TANGO_ERROR;
@@ -246,7 +286,7 @@ public static int SaveAreaDescription(UUIDUnityHolder adfUnityHolder)
int returnValue = PoseProviderAPI.TangoService_saveAreaDescription(idData);
if (returnValue != Common.ErrorType.TANGO_SUCCESS)
{
- Debug.Log(CLASS_NAME + ".SaveAreaDescripton() Could not save area description with ID: "+ adfUnityHolder.GetStringDataUUID());
+ Debug.Log(CLASS_NAME + ".SaveAreaDescripton() Could not save area description with ID: " + adfUnityHolder.GetStringDataUUID());
}
else
{
@@ -258,30 +298,33 @@ public static int SaveAreaDescription(UUIDUnityHolder adfUnityHolder)
}
///
- /// Saves the area description meta data with whatever metadata is set inside the adfUnityHolder object
+ /// Saves the metadata associated with a single area description unique ID.
///
- /// The area description meta data.
- /// Adf unity holder.
+ ///
+ /// Returns TANGO_SUCCESS on successful save, or TANGO_ERROR on failure, or if the service needs to be
+ /// initialized.
+ ///
+ /// The metadata and associated UUID to save.
public static int SaveAreaDescriptionMetaData(UUIDUnityHolder adfUnityHolder)
{
- if(adfUnityHolder == null)
+ if (adfUnityHolder == null)
{
Debug.Log(CLASS_NAME + ".SaveAreaDescription() Could not save area description. UUID Holder object specified is not initialized");
return Common.ErrorType.TANGO_ERROR;
}
- if(string.IsNullOrEmpty(adfUnityHolder.GetStringDataUUID()))
+ if (string.IsNullOrEmpty(adfUnityHolder.GetStringDataUUID()))
{
Debug.Log(CLASS_NAME + ".MetaData cannot be retrived for the area description as UUIDUnityHolder object was empty or null.");
return Common.ErrorType.TANGO_ERROR;
}
- if(adfUnityHolder.uuidMetaData.meta_data_pointer == IntPtr.Zero)
+ if (adfUnityHolder.uuidMetaData.meta_data_pointer == IntPtr.Zero)
{
Debug.Log(CLASS_NAME + "metadata pointer is null, cannot save metadata to this ADF!");
return Common.ErrorType.TANGO_ERROR;
}
Debug.Log("UUID being saved is: " + adfUnityHolder.GetStringDataUUID());
int returnValue = PoseProviderAPI.TangoService_saveAreaDescriptionMetadata(adfUnityHolder.GetStringDataUUID(), adfUnityHolder.uuidMetaData.meta_data_pointer);
- if(returnValue!=Common.ErrorType.TANGO_SUCCESS)
+ if (returnValue != Common.ErrorType.TANGO_SUCCESS)
{
Debug.Log(CLASS_NAME + "Could not save metadata to the ADF!");
}
@@ -289,51 +332,51 @@ public static int SaveAreaDescriptionMetaData(UUIDUnityHolder adfUnityHolder)
}
///
- /// Takes care of saving a ADF file to the specified folder.
+ /// Export an area with the UUID from the default area storage location to the destination file directory with
+ /// the UUID as its name.
///
- /// Common.ErrorType.TANGO_SUCCESS if the ADF file was exported successfully.
- /// The UUID of the ADF file we want to export.
- /// File path where we want to export the ADF.
- public static int ExportAreaDescriptionToFile(string UUID, string filePath)
+ /// Returns TANGO_SUCCESS if the file was exported, or TANGO_ERROR if the export failed.
+ /// The UUID of the area.
+ /// The destination file directory.
+ public static int ExportAreaDescriptionToFile(string uuid, string filePath)
{
- if(string.IsNullOrEmpty(UUID))
+ if (string.IsNullOrEmpty(uuid))
{
Debug.Log("Can't export an empty UUID. Please define one.");
return Common.ErrorType.TANGO_ERROR;
}
- if(string.IsNullOrEmpty(filePath))
+ if (string.IsNullOrEmpty(filePath))
{
Debug.Log("Missing file path for exporting area description. Please define one.");
return Common.ErrorType.TANGO_ERROR;
}
- int returnValue = PoseProviderAPI.TangoService_exportAreaDescription(UUID, filePath);
- if(returnValue != Common.ErrorType.TANGO_SUCCESS)
+ int returnValue = PoseProviderAPI.TangoService_exportAreaDescription(uuid, filePath);
+ if (returnValue != Common.ErrorType.TANGO_SUCCESS)
{
- Debug.Log(CLASS_NAME + ".ExportAreaDescription() Could not export area description: " + UUID +
- " with path: " + filePath);
+ Debug.Log(CLASS_NAME + ".ExportAreaDescription() Could not export area description: " + uuid +
+ " with path: " + filePath);
}
return returnValue;
-
}
-
+
///
- /// Takes care of importing a adf file from the specified path. Important: make sure that the filepath
- /// does not contain ADF files already present on device, otherwise it will return an error, as duplicates
- /// can't be imported.
+ /// Import an area description from a file path to the default area storage location.
+ ///
+ /// The new area description will get a new ID, which will be stored in adfID.
///
/// Common.ErrorType.TANGO_SUCCESS if the UUID was imported successfully.
- /// The UUIDUnityHolder object that will contain information about the retrieved ADF.
- /// File path containing the ADF we want to export.
+ /// Upon successful return, this will have the new ID.
+ /// File path of the area descrption to be imported.
public static int ImportAreaDescriptionFromFile(UUIDUnityHolder adfID, string filePath)
{
- if(adfID == null)
+ if (adfID == null)
{
Debug.Log(CLASS_NAME + ".ImportAreaDescription() Could not import area description. UUID Holder object specified is not initialized");
return Common.ErrorType.TANGO_ERROR;
}
IntPtr uuidHolder = Marshal.AllocHGlobal(Common.UUID_LENGTH);
int returnValue = PoseProviderAPI.TangoService_importAreaDescription(filePath, uuidHolder);
- if(returnValue != Common.ErrorType.TANGO_SUCCESS)
+ if (returnValue != Common.ErrorType.TANGO_SUCCESS)
{
Debug.Log(CLASS_NAME + ".ImportAreaDescription() Could not import area description at path: " + filePath);
}
@@ -347,20 +390,21 @@ public static int ImportAreaDescriptionFromFile(UUIDUnityHolder adfID, string fi
}
///
- /// Deletes the area description with the specified UUID from the default folder where ADF maps are stored.
- /// This needs to be called before trying to import a ADF that is already present in the default ADF maps folder.
+ /// Deletes an area description with the specified unique ID.
///
- /// Common.ErrorType.TANGO_SUCCESS if the UUID was deleted successfully.
- /// The UUID of the ADF we want to delete.
+ ///
+ /// Returns TANGO_SUCCESS if area description file with specified unique ID is found and can be removed.
+ ///
+ /// The area description to delete.
public static int DeleteAreaDescription(string toDeleteUUID)
{
- if(string.IsNullOrEmpty(toDeleteUUID))
+ if (string.IsNullOrEmpty(toDeleteUUID))
{
Debug.Log(CLASS_NAME + ".DeleteAreaDescription() Could not delete area description, UUID was empty or null.");
return Common.ErrorType.TANGO_ERROR;
}
int returnValue = PoseProviderAPI.TangoService_deleteAreaDescription(toDeleteUUID);
- if(returnValue != Common.ErrorType.TANGO_SUCCESS)
+ if (returnValue != Common.ErrorType.TANGO_SUCCESS)
{
Debug.Log(CLASS_NAME + ".DeleteAreaDescription() Could not delete area description, API returned invalid.");
}
@@ -369,89 +413,90 @@ public static int DeleteAreaDescription(string toDeleteUUID)
#endregion // ADF Functionality
#region ADF Metadata Functionality
-
-
///
- /// This function sets the pointer to metadatapointer in UUIDUnityHolder Object.
- /// UUIDObjectHolder needs to be initialized and UUID data needs to be filled in before passing in to this
- /// function.
+ /// Gets the metadata handle associated with a single area description unique ID.
///
- /// The area description meta data.
- /// Adf unity holder with UUID data only should be passed into this function. If the data is valid,
- /// this function sets the pointer to raw UUID metadata which can then be parsed using AreaDescriptionMetaData_get or set functions
+ ///
+ /// Returns TANGO_SUCCESS on successful load of metadata, or TANGO_ERROR if the service needs to be initialized
+ /// or if the metadata could not be loaded.
+ ///
+ ///
+ /// The TangoUUID for which to load the metadata. On success, this function sets the pointer to raw UUID
+ /// metadata which can then be extracted using AreaDescriptionMetaData_get, AreaDescriptionMetaData_get, or
+ /// PopulateAreaDescriptionMetaDataKeyValues.
+ ///
public static int GetAreaDescriptionMetaData(UUIDUnityHolder adfUnityHolder)
{
- if(string.IsNullOrEmpty(adfUnityHolder.GetStringDataUUID()))
+ if (string.IsNullOrEmpty(adfUnityHolder.GetStringDataUUID()))
{
Debug.Log(CLASS_NAME + ".MetaData cannot be retrived for the area description as UUIDUnityHolder object was empty or null.");
return Common.ErrorType.TANGO_ERROR;
}
int returnValue = PoseProviderAPI.TangoService_getAreaDescriptionMetadata(adfUnityHolder.GetStringDataUUID(), ref adfUnityHolder.uuidMetaData.meta_data_pointer);
- if(returnValue != Common.ErrorType.TANGO_SUCCESS)
+ if (returnValue != Common.ErrorType.TANGO_SUCCESS)
{
Debug.Log(CLASS_NAME + "Meta Data could not be loaded");
}
- Debug.Log("GetAreaDescription return value is: "+ returnValue.ToString());
+ Debug.Log("GetAreaDescription return value is: " + returnValue.ToString());
return returnValue;
}
///
- /// /Populates the Metadata values of a given metadataPointer into a Dictionary object which can
- /// then be used by application for listing the ADF's information. metaDataPointer should be initialized to
- /// a valid MetaData by calling the getAreaDescriptionMetaData().
+ /// Populates the Metadata key/value pairs of a given metadataPointer.
+ ///
+ /// metaDataPointer should be initialized to a valid Metadata by calling the getAreaDescriptionMetaData().
///
- /// Tango Success if successful, else returns Invalid or Tango_Error type.
+ /// TANGO_SUCCESS if successful, else TANGO_INVALID or TANGO_ERROR.
/// Metadata pointer.
- /// M_ key value pairs.
- public static int PopulateAreaDescriptionMetaDataKeyValues(IntPtr metadataPointer, ref System.Collections.Generic.Dictionary m_KeyValuePairs)
+ /// Dictionary of key/value pairs stored in the metadata.
+ public static int PopulateAreaDescriptionMetaDataKeyValues(IntPtr metadataPointer, ref Dictionary keyValuePairs)
{
IntPtr keyList = IntPtr.Zero;
- if(metadataPointer == IntPtr.Zero)
+ if (metadataPointer == IntPtr.Zero)
{
Debug.Log(CLASS_NAME + "metadata pointer is null, cannot save metadata to this ADF!");
return Common.ErrorType.TANGO_ERROR;
}
- int returnValue = PoseProviderAPI.TangoAreaDescriptionMetadata_listKeys(metadataPointer,ref keyList);
- if(returnValue != Tango.Common.ErrorType.TANGO_SUCCESS)
+ int returnValue = PoseProviderAPI.TangoAreaDescriptionMetadata_listKeys(metadataPointer, ref keyList);
+ if (returnValue != Tango.Common.ErrorType.TANGO_SUCCESS)
{
Debug.Log("Could not read metadata keys list");
}
string metadataKeys = Marshal.PtrToStringAuto(keyList);
- string[] keys = metadataKeys.Split(new char[]{','});
+ string[] keys = metadataKeys.Split(new char[] { ',' });
string[] values = new string[keys.Length];
- for(int i =0; i< values.Length; i++)
+ for (int i = 0; i < values.Length; i++)
{
uint valuesize = 0;
IntPtr valuePointer = IntPtr.Zero;
- PoseProviderAPI.TangoAreaDescriptionMetadata_get(metadataPointer,keys[i], ref valuesize,ref valuePointer);
+ PoseProviderAPI.TangoAreaDescriptionMetadata_get(metadataPointer, keys[i], ref valuesize, ref valuePointer);
byte[] valueByteArray = new byte[valuesize];
- Marshal.Copy(valuePointer,valueByteArray,0,(int)valuesize);
+ Marshal.Copy(valuePointer, valueByteArray, 0, (int)valuesize);
values[i] = System.Text.Encoding.UTF8.GetString(valueByteArray);
- Debug.Log("Key Values are- " + keys[i]+": "+values[i]);
- m_KeyValuePairs.Add(keys[i],values[i]);
+ Debug.Log("Key Values are- " + keys[i] + ": " + values[i]);
+ keyValuePairs.Add(keys[i], values[i]);
}
return returnValue;
}
///
- /// Gets the value of a key and populates into the "value" string object. adfUnitHolderObject
- /// should be initialized with valid UUID before calling this function.
+ /// Get the value of a key from a metadata.
///
- /// The description meta data_get.
- /// Key.
- /// Value.
- /// Adf unity holder.
+ /// TANGO_SUCCESS if successful, else TANGO_INVALID or TANGO_ERROR.
+ /// Key to lookup.
+ /// On success, the value for that key.
+ /// Area description + metadata holder.
public static int AreaDescriptionMetaData_get(String key, ref String value, UUIDUnityHolder adfUnityHolder)
{
- if(string.IsNullOrEmpty(adfUnityHolder.GetStringDataUUID()))
+ if (string.IsNullOrEmpty(adfUnityHolder.GetStringDataUUID()))
{
Debug.Log(CLASS_NAME + ".MetaData cannot be retrived for the area description as UUIDUnityHolder object was empty or null.");
return Common.ErrorType.TANGO_ERROR;
}
uint valuesize = 0;
IntPtr valuePointer = IntPtr.Zero;
- int returnValue = PoseProviderAPI.TangoAreaDescriptionMetadata_get(adfUnityHolder.uuidMetaData.meta_data_pointer, key, ref valuesize,ref valuePointer);
- if(returnValue != Tango.Common.ErrorType.TANGO_SUCCESS)
+ int returnValue = PoseProviderAPI.TangoAreaDescriptionMetadata_get(adfUnityHolder.uuidMetaData.meta_data_pointer, key, ref valuesize, ref valuePointer);
+ if (returnValue != Tango.Common.ErrorType.TANGO_SUCCESS)
{
Debug.Log("Could not read metadata key, Error return value is: " + returnValue);
return returnValue;
@@ -459,63 +504,152 @@ public static int AreaDescriptionMetaData_get(String key, ref String value, UUID
else
{
byte[] valueByteArray = new byte[valuesize];
- Marshal.Copy(valuePointer,valueByteArray,0,(int)valuesize);
+ Marshal.Copy(valuePointer, valueByteArray, 0, (int)valuesize);
value = System.Text.Encoding.UTF8.GetString(valueByteArray);
return returnValue;
}
}
///
- /// Sets the AreaDescription MetaData to the UUID in the adfUnityHolder Object.Make sure adfUnityHolder already has
- /// a pointer to the Metadata of the specified UUID by calling GetAreaDescriptionMetaData().
+ /// Set the value of a key in a metadata.
///
- /// Returns Tango Success on successful set, else Returns Invalid or TangoError
- /// Key.
- /// Value.
- /// Adf unity holder in which the metadata is cointained.
+ /// TANGO_SUCCESS if successful, else TANGO_INVALID or TANGO_ERROR.
+ /// Key to set the value of.
+ /// Value to set.
+ /// Area description + metadata holder.
public static int AreaDescriptionMetaData_set(String key, String value, UUIDUnityHolder adfUnityHolder)
{
- if(string.IsNullOrEmpty(adfUnityHolder.GetStringDataUUID()))
+ if (string.IsNullOrEmpty(adfUnityHolder.GetStringDataUUID()))
{
Debug.Log(CLASS_NAME + ".MetaData cannot be retrived for the area description as UUIDUnityHolder object was empty or null.");
return Common.ErrorType.TANGO_ERROR;
}
- int returnValue = PoseProviderAPI.TangoAreaDescriptionMetadata_set(adfUnityHolder.uuidMetaData.meta_data_pointer, key, (uint) value.Length, value);
- if(returnValue != Tango.Common.ErrorType.TANGO_SUCCESS)
+ int returnValue = PoseProviderAPI.TangoAreaDescriptionMetadata_set(adfUnityHolder.uuidMetaData.meta_data_pointer, key, (uint)value.Length, value);
+ if (returnValue != Tango.Common.ErrorType.TANGO_SUCCESS)
{
Debug.Log("Could not set Metadata Key, Error return value is: " + returnValue);
return returnValue;
}
else
- {
- Debug.Log("Metadata Set succesful, Key set is: "+ key+" Value set is: " + value);
+ {
+ Debug.Log("Metadata Set succesful, Key set is: " + key + " Value set is: " + value);
return returnValue;
}
}
-
#endregion // ADF Metadata Functionality
- #region API_Functions
+ ///
+ /// Set the C callback for the Tango pose interface.
+ ///
+ /// Passed in to the C API.
+ /// Callback.
+ internal static void SetCallback(TangoCoordinateFramePair[] framePairs, TangoService_onPoseAvailable callback)
+ {
+ int returnValue = PoseProviderAPI.TangoService_connectOnPoseAvailable(framePairs.Length, framePairs, callback);
+ if (returnValue != Common.ErrorType.TANGO_SUCCESS)
+ {
+ Debug.Log(CLASS_NAME + ".SetCallback() Callback was not set!");
+ }
+ else
+ {
+ Debug.Log(CLASS_NAME + ".SetCallback() OnPose callback was set!");
+ }
+ }
+
+#if UNITY_EDITOR
+ ///
+ /// INTERNAL USE: Update the Tango emulation state for pose data.
+ ///
+ /// Make this this is only called once per frame.
+ ///
+ internal static void UpdateTangoEmulation()
+ {
+ // Update the emulated rotation (do this first to make sure the position is rotated)
+ //
+ // Note: We need to use Input.GetAxis here because Unity3D does not provide a way to get the underlying
+ // mouse delta.
+ if (!Input.GetKey(KeyCode.LeftShift))
+ {
+ m_emulatedPoseAnglesFromForward.y -= Input.GetAxis("Mouse X") * MOUSE_LOOK_SENSITIVITY * Time.deltaTime;
+ m_emulatedPoseAnglesFromForward.x += Input.GetAxis("Mouse Y") * MOUSE_LOOK_SENSITIVITY * Time.deltaTime;
+ }
+ else
+ {
+ m_emulatedPoseAnglesFromForward.z -= Input.GetAxis("Mouse X") * MOUSE_LOOK_SENSITIVITY * Time.deltaTime;
+ }
+
+ // Update the emulated position
+ Quaternion emulatedPoseRotation = Quaternion.Euler(90, 0, 0) * Quaternion.Euler(m_emulatedPoseAnglesFromForward);
+ Vector3 directionRight = emulatedPoseRotation * new Vector3(1, 0, 0);
+ Vector3 directionForward = emulatedPoseRotation * new Vector3(0, 0, -1);
+ Vector3 directionUp = emulatedPoseRotation * new Vector3(0, 1, 0);
+
+ if (Input.GetKey(KeyCode.W))
+ {
+ // Forward
+ m_emulatedPosePosition += directionForward * TRANSLATION_SPEED * Time.deltaTime;
+ }
+ if (Input.GetKey(KeyCode.S))
+ {
+ // Backward
+ m_emulatedPosePosition -= directionForward * TRANSLATION_SPEED * Time.deltaTime;
+ }
+ if (Input.GetKey(KeyCode.A))
+ {
+ // Left
+ m_emulatedPosePosition -= directionRight * TRANSLATION_SPEED * Time.deltaTime;
+ }
+ if (Input.GetKey(KeyCode.D))
+ {
+ // Right
+ m_emulatedPosePosition += directionRight * TRANSLATION_SPEED * Time.deltaTime;
+ }
+ if (Input.GetKey(KeyCode.R))
+ {
+ // Up
+ m_emulatedPosePosition += directionUp * TRANSLATION_SPEED * Time.deltaTime;
+ }
+ if (Input.GetKey(KeyCode.F))
+ {
+ // Down
+ m_emulatedPosePosition -= directionUp * TRANSLATION_SPEED * Time.deltaTime;
+ }
+ }
+
+ ///
+ /// INTERNAL USE: Get the most recent values for Tango emulation.
+ ///
+ /// The new Tango emulation position.
+ /// The new Tango emulation rotation.
+ internal static void GetTangoEmulation(out Vector3 posePosition, out Quaternion poseRotation)
+ {
+ posePosition = m_emulatedPosePosition;
+ poseRotation = Quaternion.Euler(90, 0, 0) * Quaternion.Euler(m_emulatedPoseAnglesFromForward);
+ }
+#endif
+
+ #region API_Functions
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.DocumentationRules",
+ "SA1600:ElementsMustBeDocumented",
+ Justification = "C API Wrapper.")]
private struct PoseProviderAPI
{
- #if UNITY_ANDROID && !UNITY_EDITOR
-
+#if UNITY_ANDROID && !UNITY_EDITOR
[DllImport(Common.TANGO_UNITY_DLL)]
public static extern int TangoService_connectOnPoseAvailable(int count,
TangoCoordinateFramePair[] framePairs,
TangoService_onPoseAvailable onPoseAvailable);
-
-
+
[DllImport(Common.TANGO_UNITY_DLL)]
- public static extern int TangoService_getPoseAtTime (double timestamp,
- TangoCoordinateFramePair framePair,
- [In, Out] TangoPoseData pose);
+ public static extern int TangoService_getPoseAtTime(double timestamp,
+ TangoCoordinateFramePair framePair,
+ [In, Out] TangoPoseData pose);
[DllImport(Common.TANGO_UNITY_DLL)]
public static extern int TangoService_setPoseListenerFrames(int count,
ref TangoCoordinateFramePair frames);
-
+
[DllImport(Common.TANGO_UNITY_DLL)]
public static extern void TangoService_resetMotionTracking();
@@ -555,7 +689,7 @@ public static extern int TangoAreaDescriptionMetadata_set(IntPtr metadata, [Mars
[DllImport(Common.TANGO_UNITY_DLL)]
public static extern int TangoAreaDescriptionMetadata_listKeys(IntPtr metadata, ref IntPtr key_list);
- #else
+#else
public static int TangoService_connectOnPoseAvailable(int count,
TangoCoordinateFramePair[] framePairs,
TangoService_onPoseAvailable onPoseAvailable)
@@ -563,9 +697,9 @@ public static int TangoService_connectOnPoseAvailable(int count,
return Common.ErrorType.TANGO_SUCCESS;
}
- public static int TangoService_getPoseAtTime (double timestamp,
- TangoCoordinateFramePair framePair,
- [In, Out] TangoPoseData pose)
+ public static int TangoService_getPoseAtTime(double timestamp,
+ TangoCoordinateFramePair framePair,
+ [In, Out] TangoPoseData pose)
{
return Common.ErrorType.TANGO_SUCCESS;
}
@@ -602,18 +736,18 @@ public static int TangoService_saveAreaDescriptionMetadata([MarshalAs(UnmanagedT
return Common.ErrorType.TANGO_SUCCESS;
}
- public static int TangoService_importAreaDescription([MarshalAs(UnmanagedType.LPStr)] string source_file_path, IntPtr UUID)
+ public static int TangoService_importAreaDescription([MarshalAs(UnmanagedType.LPStr)] string source_file_path, IntPtr uuid)
{
return Common.ErrorType.TANGO_SUCCESS;
}
- public static int TangoService_exportAreaDescription([MarshalAs(UnmanagedType.LPStr)] string UUID,
+ public static int TangoService_exportAreaDescription([MarshalAs(UnmanagedType.LPStr)] string uuid,
[MarshalAs(UnmanagedType.LPStr)] string dst_file_path)
{
return Common.ErrorType.TANGO_SUCCESS;
}
- public static int TangoService_deleteAreaDescription([MarshalAs(UnmanagedType.LPStr)] string UUID)
+ public static int TangoService_deleteAreaDescription([MarshalAs(UnmanagedType.LPStr)] string uuid)
{
return Common.ErrorType.TANGO_SUCCESS;
}
@@ -639,7 +773,7 @@ public static int TangoAreaDescriptionMetadata_listKeys(IntPtr metadata, ref Int
{
return Common.ErrorType.TANGO_SUCCESS;
}
- #endif
+#endif
}
#endregion
}
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/TangoApplication.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/TangoApplication.cs
index e9205325..7965d18c 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/TangoApplication.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/TangoApplication.cs
@@ -1,38 +1,63 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System;
using System.Collections;
using System.Runtime.InteropServices;
using System.IO;
using System.Linq;
using UnityEngine;
-using System.Reflection;
namespace Tango
{
- public delegate void PermissionsEvent(bool permissionsGranted);
+ ///
+ /// Delegate for permission callbacks.
+ ///
+ /// true if permissions were granted, otherwise false.
+ public delegate void PermissionsEvent(bool permissionsGranted);
+
+ ///
+ /// Delegate for service connection.
+ ///
public delegate void OnTangoConnectEventHandler();
+
+ ///
+ /// Delegate for service disconnection.
+ ///
public delegate void OnTangoDisconnectEventHandler();
///
- /// Entry point of Tango applications, maintain the application handler.
+ /// Main entry point for the Tango Service.
+ ///
+ /// This component handles nearly all communication with the underlying TangoService. You must have one of these
+ /// in your scene for Tango to work. Customization of the Tango connection can be done in the Unity editor or by
+ /// programatically setting the member flags.
+ ///
+ /// This sends out events to Components that derive from the ITangoPose, ITangoDepth, etc. interfaces and
+ /// register themselves via Register. This also sends out events to callbacks passed in through
+ /// RegisterOnTangoConnect, RegisterOnTangoDisconnect, and RegisterPermissionsCallback.
+ ///
+ /// Note: To connect to the Tango Service, you should call InitApplication after properly registering everything.
///
public class TangoApplication : MonoBehaviour
{
- ///
+ ///
/// Permission types used by Tango applications.
///
[Flags]
@@ -52,7 +77,9 @@ private enum PermissionsTypes
public bool m_enableAreaLearning = false;
public bool m_useExperimentalVideoOverlay = true;
public bool m_useExperimentalADF = false;
- private static string m_tangoServiceVersion = string.Empty;
+#if UNITY_EDITOR
+ public static bool m_mouseEmulationViaPoseUpdates = false;
+#endif
private const string CLASS_NAME = "TangoApplication";
private const string ANDROID_PRO_LABEL_TEXT = "Tango plugin requires Unity Android Pro!";
private const float ANDROID_PRO_LABEL_PERCENT_X = 0.5f;
@@ -62,10 +89,22 @@ private enum PermissionsTypes
private const string DEFAULT_AREA_DESCRIPTION = "/sdcard/defaultArea";
private const string MOTION_TRACKING_LOG_PREFIX = "Motion tracking mode : ";
private const int MINIMUM_API_VERSION = 1978;
+ private static string m_tangoServiceVersion = string.Empty;
+
+ ///
+ /// Occurs when permission event.
+ ///
+ private event PermissionsEvent PermissionEvent;
+
+ ///
+ /// Occurs when on tango connect.
+ ///
+ private event OnTangoConnectEventHandler OnTangoConnect;
- private event PermissionsEvent m_permissionEvent;
- private event OnTangoConnectEventHandler m_onTangoConnect;
- private event OnTangoDisconnectEventHandler m_onTangoDisconnect;
+ ///
+ /// Occurs when on tango disconnect.
+ ///
+ private event OnTangoDisconnectEventHandler OnTangoDisconnect;
private PermissionsTypes m_requiredPermissions = 0;
private static bool m_isValidTangoAPIVersion = false;
@@ -83,37 +122,40 @@ private enum PermissionsTypes
private YUVTexture m_yuvTexture;
///
- /// Gets the video overlay texture.
- ///
- /// The video overlay texture.
- public YUVTexture GetVideoOverlayTextureYUV()
- {
- return m_yuvTexture;
- }
-
- ///
- /// Gets the tango service version.
+ /// Get the Tango service version name.
///
- /// The tango service version.
+ /// String for the version name.
public static string GetTangoServiceVersion()
{
if (m_tangoServiceVersion == string.Empty)
{
m_tangoServiceVersion = AndroidHelper.GetVersionName("com.projecttango.tango");
}
-
+
return m_tangoServiceVersion;
}
///
- /// Register the specified tangoObject.
+ /// Get the video overlay texture.
+ ///
+ /// The video overlay texture.
+ public YUVTexture GetVideoOverlayTextureYUV()
+ {
+ return m_yuvTexture;
+ }
+
+ ///
+ /// Register to get Tango callbacks.
+ ///
+ /// The object should derive from one of ITangoDepth, ITangoEvent, ITangoPos, ITangoVideoOverlay, or
+ /// ITangoExperimentalTangoVideoOverlay. You will get callback during Update until you unregister.
///
- /// Tango object.
+ /// Object to get Tango callbacks from.
public void Register(System.Object tangoObject)
{
ITangoEvent tangoEvent = tangoObject as ITangoEvent;
- if(tangoEvent != null)
+ if (tangoEvent != null)
{
RegisterOnTangoEvent(tangoEvent.OnTangoEventAvailableEventHandler);
}
@@ -149,7 +191,7 @@ public void Register(System.Object tangoObject)
RegisterOnExperimentalTangoVideoOverlay(videoOverlayHandler.OnExperimentalTangoImageAvailable);
}
}
- else
+ else
{
ITangoVideoOverlay videoOverlayHandler = tangoObject as ITangoVideoOverlay;
@@ -162,14 +204,16 @@ public void Register(System.Object tangoObject)
}
///
- /// Unregister the specified tangoObject.
+ /// Unregister from Tango callbacks.
+ ///
+ /// See TangoApplication.Register for more details.
///
- /// Tango object.
+ /// Object to stop getting Tango callbacks from.
public void Unregister(System.Object tangoObject)
{
ITangoEvent tangoEvent = tangoObject as ITangoEvent;
- if(tangoEvent != null)
+ if (tangoEvent != null)
{
UnregisterOnTangoEvent(tangoEvent.OnTangoEventAvailableEventHandler);
}
@@ -204,7 +248,8 @@ public void Unregister(System.Object tangoObject)
{
UnregisterOnExperimentalTangoVideoOverlay(videoOverlayHandler.OnExperimentalTangoImageAvailable);
}
- } else
+ }
+ else
{
ITangoVideoOverlay videoOverlayHandler = tangoObject as ITangoVideoOverlay;
@@ -215,284 +260,356 @@ public void Unregister(System.Object tangoObject)
}
}
}
-
+
///
- /// Registers the on tango pose event.
+ /// Check if all requested permissions have been granted.
///
- /// Handler.
- public void RegisterOnTangoPoseEvent(OnTangoPoseAvailableEventHandler handler)
+ /// true if all requested permissions were granted; otherwise, false.
+ public bool HasRequestedPermissions()
{
- if (m_poseListener != null)
+ return m_requiredPermissions == PermissionsTypes.NONE;
+ }
+
+ ///
+ /// Register to get an event callback when all permissions are granted.
+ ///
+ /// The passed event will get called once all Tango permissions have been granted. Registering
+ /// after all permissions have already been granted will cause the event to never fire.
+ ///
+ /// Event to call.
+ public void RegisterPermissionsCallback(PermissionsEvent permissionsEventHandler)
+ {
+ if (permissionsEventHandler != null)
{
- m_poseListener.RegisterTangoPoseAvailable(handler);
+ PermissionEvent += permissionsEventHandler;
}
}
///
- /// Registers the on tango depth event.
+ /// Unregister from the permission callbacks.
+ ///
+ /// See TangoApplication.RegisterPermissionsCallback for more details.
///
- /// Handler.
- public void RegisterOnTangoDepthEvent(OnTangoDepthAvailableEventHandler handler)
+ /// Event to remove.
+ public void UnregisterPermissionsCallback(PermissionsEvent permissionsEventHandler)
{
- if (m_depthListener != null)
+ if (permissionsEventHandler != null)
{
- m_depthListener.RegisterOnTangoDepthAvailable(handler);
+ PermissionEvent -= permissionsEventHandler;
}
}
///
- /// Registers the on tango event.
+ /// DEPRECATED: Unregister from the permission callbacks.
+ ///
+ /// See TangoApplication.RegisterPermissionsCallback for more details.
///
- /// Handler.
- public void RegisterOnTangoEvent(OnTangoEventAvailableEventHandler handler)
+ /// Event to remove.
+ public void RemovePermissionsCallback(PermissionsEvent permissionsEventHandler)
{
- if (m_tangoEventListener != null)
+ if (permissionsEventHandler != null)
{
- m_tangoEventListener.RegisterOnTangoEventAvailable(handler);
+ PermissionEvent -= permissionsEventHandler;
}
}
///
- /// Registers the on tango video overlay.
+ /// Register to get an event callback when connected to the Tango service.
+ ///
+ /// The passed event will get called once connected to the Tango service. Registering
+ /// after already connected will cause the event to not fire until disconnected and then
+ /// connecting again.
///
- /// Handler.
- public void RegisterOnTangoVideoOverlay(OnTangoImageAvailableEventHandler handler)
+ /// Event to call.
+ public void RegisterOnTangoConnect(OnTangoConnectEventHandler handler)
{
- if (m_videoOverlayListener != null)
+ if (handler != null)
{
- m_videoOverlayListener.RegisterOnTangoImageAvailable(handler);
+ OnTangoConnect += handler;
}
}
///
- /// Registers the on experimental tango video overlay.
+ /// Unregister from the callback when connected to the Tango service.
+ ///
+ /// See TangoApplication.RegisterOnTangoConnect for more details.
///
- /// Handler.
- public void RegisterOnExperimentalTangoVideoOverlay(OnExperimentalTangoImageAvailableEventHandler handler)
+ /// Event to remove.
+ public void UnregisterOnTangoConnect(OnTangoConnectEventHandler handler)
{
- if (m_videoOverlayListener != null)
+ if (handler != null)
{
- m_videoOverlayListener.RegisterOnExperimentalTangoImageAvailable(handler);
+ OnTangoConnect -= handler;
}
}
///
- /// Determines if has requested permissions.
+ /// Register to get an event callback when disconnected from the Tango service.
+ ///
+ /// The passed event will get called when disconnected from the Tango service.
///
- /// true if has requested permissions; otherwise, false.
- public bool HasRequestedPermissions()
+ /// Event to remove.
+ public void RegisterOnTangoDisconnect(OnTangoDisconnectEventHandler handler)
{
- return (m_requiredPermissions == PermissionsTypes.NONE);
+ if (handler != null)
+ {
+ OnTangoDisconnect += handler;
+ }
}
///
- /// Registers the permissions callback.
+ /// Unregister from the callback when disconnected from the Tango service.
+ ///
+ /// See TangoApplication.RegisterOnTangoDisconnect for more details.
///
- /// Permissions event handler.
- public void RegisterPermissionsCallback(PermissionsEvent permissionsEventHandler)
+ /// Event to remove.
+ public void UnregisterOnTangoDisconnect(OnTangoDisconnectEventHandler handler)
{
- if (permissionsEventHandler != null)
+ if (handler != null)
{
- m_permissionEvent += permissionsEventHandler;
- }
- }
-
- ///
- /// Unregisters the permissions callback.
- ///
- /// Permissions event handler.
- public void UnregisterPermissionsCallback(PermissionsEvent permissionsEventHandler)
- {
- if (permissionsEventHandler != null)
- {
- m_permissionEvent -= permissionsEventHandler;
- }
- }
+ OnTangoDisconnect -= handler;
+ }
+ }
+
+ ///
+ /// Init step 1. Call this to request Tango permissions.
+ ///
+ /// After setting up the necessary permissions and callbacks, call this to request each of
+ /// the permissions in order. Once all the permissions are granted, the permission callback
+ /// will get called to do the next step.
+ ///
+ /// Also see TangoApplication.InitApplication, TangoApplication.InitProviders, and
+ /// TangoApplication.ConnectToService.
+ ///
+ public void RequestNecessaryPermissionsAndConnect()
+ {
+ _ResetPermissionsFlags();
+ _RequestNextPermission();
+ }
- ///
- /// Registers the on tango connect.
- ///
- /// Handler.
- public void RegisterOnTangoConnect(OnTangoConnectEventHandler handler)
+ ///
+ /// Init step 2. Call this to initialize interal state on TangoApplication.
+ ///
+ /// Call this in the permissions callback if all permissions have been granted.
+ ///
+ /// Also see TangoApplication.RequestNecessaryPermissionsandConnect, TangoApplication.InitProviders, and
+ /// TangoApplication.ConnectToService.
+ ///
+ public void InitApplication()
{
- if(handler != null)
+ Debug.Log("-----------------------------------Initializing Tango");
+ _TangoInitialize();
+ TangoConfig.InitConfig(TangoEnums.TangoConfigType.TANGO_CONFIG_DEFAULT);
+
+ if (m_enableVideoOverlay && m_useExperimentalVideoOverlay)
{
- m_onTangoConnect += handler;
+ int yTextureWidth = 0;
+ int yTextureHeight = 0;
+ int uvTextureWidth = 0;
+ int uvTextureHeight = 0;
+
+ TangoConfig.GetInt32(TangoConfig.Keys.EXPERIMENTAL_Y_TEXTURE_WIDTH, ref yTextureWidth);
+ TangoConfig.GetInt32(TangoConfig.Keys.EXPERIMENTAL_Y_TEXTURE_HEIGHT, ref yTextureHeight);
+ TangoConfig.GetInt32(TangoConfig.Keys.EXPERIMENTAL_UV_TEXTURE_WIDTH, ref uvTextureWidth);
+ TangoConfig.GetInt32(TangoConfig.Keys.EXPERIMENTAL_UV_TEXTURE_HEIGHT, ref uvTextureHeight);
+
+ if (yTextureWidth == 0 || yTextureHeight == 0 || uvTextureWidth == 0 || uvTextureHeight == 0)
+ {
+ Debug.Log("Video overlay texture sizes were not set properly");
+ }
+
+ m_yuvTexture.ResizeAll(yTextureWidth, yTextureHeight, uvTextureWidth, uvTextureHeight);
}
}
- ///
- /// Registers the on tango disconnect.
- ///
- /// Handler.
- public void RegisterOnTangoDisconnect(OnTangoDisconnectEventHandler handler)
+ ///
+ /// Init step 3. Call this to choose what area description ID to use, if any.
+ ///
+ /// Call this in the permissions callback after calling TangoApplication.InitApplication.
+ ///
+ /// Also see TangoApplication.RequestNecessaryPermissionsAndConnect, TangoApplication.InitApplication, and
+ /// TangoApplication.ConnectToService.
+ ///
+ /// Area description ID to load, or string.Empty to not use any.
+ public void InitProviders(string uuid)
{
- if(handler != null)
- {
- m_onTangoDisconnect += handler;
- }
+ _InitializeMotionTracking(uuid);
+ _InitializeDepth();
+ _InitializeOverlay();
+ _SetEventCallbacks();
}
-
+
///
- /// Unregisters the on tango pose event.
+ /// Init step 4. Call this to connect to the Tango service.
+ ///
+ /// Also see TangoApplication.RequestNecessaryPermissionsAndConnect, TangoApplication.InitApplication,
+ /// and TangoApplication.InitProviders.
///
- /// Handler.
- public void UnregisterOnTangoPoseEvent(OnTangoPoseAvailableEventHandler handler)
+ public void ConnectToService()
{
- if (m_poseListener != null)
- {
- m_poseListener.UnregisterTangoPoseAvailable(handler);
- }
+ Debug.Log("TangoApplication.ConnectToService()");
+ _TangoConnect();
}
///
- /// Unregisters the on tango depth event.
+ /// Disconnect from the Tango service.
+ ///
+ /// This is called automatically when the TangoApplication goes away. You only need
+ /// to call this to disconnect from the Tango service before the TangoApplication goes
+ /// away.
///
- /// Handler.
- public void UnregisterOnTangoDepthEvent(OnTangoDepthAvailableEventHandler handler)
+ public void Shutdown()
{
- if (m_depthListener != null)
- {
- m_depthListener.UnregisterOnTangoDepthAvailable(handler);
- }
+ Debug.Log("Tango Shutdown");
+ TangoConfig.Free();
+ _TangoDisconnect();
}
-
+
///
- /// Unregisters the on tango event.
+ /// Register to get Tango pose callbacks.
+ ///
+ /// See TangoApplication.Register for more details.
///
/// Handler.
- public void UnregisterOnTangoEvent(OnTangoEventAvailableEventHandler handler)
+ internal void RegisterOnTangoPoseEvent(OnTangoPoseAvailableEventHandler handler)
{
- if (m_tangoEventListener != null)
+ if (m_poseListener != null)
{
- m_tangoEventListener.UnregisterOnTangoEventAvailable(handler);
+ m_poseListener.RegisterTangoPoseAvailable(handler);
}
}
- public void UnregisterOnTangoConnect(OnTangoConnectEventHandler handler)
+ ///
+ /// Unregister from the Tango pose callbacks.
+ ///
+ /// See TangoApplication.Register for more details.
+ ///
+ /// Event to remove.
+ internal void UnregisterOnTangoPoseEvent(OnTangoPoseAvailableEventHandler handler)
{
- if(handler != null)
+ if (m_poseListener != null)
{
- m_onTangoConnect -= handler;
+ m_poseListener.UnregisterTangoPoseAvailable(handler);
}
}
-
- public void UnregisterOnTangoDisconnect(OnTangoDisconnectEventHandler handler)
+
+ ///
+ /// Register to get Tango depth callbacks.
+ ///
+ /// See TangoApplication.Register for more details.
+ ///
+ /// Object to stop getting Tango callbacks from.
+ internal void RegisterOnTangoDepthEvent(OnTangoDepthAvailableEventHandler handler)
{
- if(handler != null)
+ if (m_depthListener != null)
{
- m_onTangoDisconnect -= handler;
+ m_depthListener.RegisterOnTangoDepthAvailable(handler);
}
}
///
- /// Unregisters the on tango video overlay.
+ /// Unregister from the Tango depth callbacks.
+ ///
+ /// See TangoApplication.Register for more details.
///
- /// Handler.
- public void UnregisterOnTangoVideoOverlay(OnTangoImageAvailableEventHandler handler)
+ /// Event to remove.
+ internal void UnregisterOnTangoDepthEvent(OnTangoDepthAvailableEventHandler handler)
{
- if (m_videoOverlayListener != null)
+ if (m_depthListener != null)
{
- m_videoOverlayListener.UnregisterOnTangoImageAvailable(handler);
+ m_depthListener.UnregisterOnTangoDepthAvailable(handler);
}
}
-
+
///
- /// Unregisters the on experimental tango video overlay.
+ /// Register to get Tango event callbacks.
+ ///
+ /// See TangoApplication.Register for details.
///
- /// Handler.
- public void UnregisterOnExperimentalTangoVideoOverlay(OnExperimentalTangoImageAvailableEventHandler handler)
+ /// Object to stop getting Tango callbacks from.
+ internal void RegisterOnTangoEvent(OnTangoEventAvailableEventHandler handler)
{
- if (m_videoOverlayListener != null)
+ if (m_tangoEventListener != null)
{
- m_videoOverlayListener.UnregisterOnExperimentalTangoImageAvailable(handler);
+ m_tangoEventListener.RegisterOnTangoEventAvailable(handler);
}
}
///
- /// Removes the permissions callback.
+ /// Unregister from the Tango event callbacks.
+ ///
+ /// See TangoApplication.Register for more details.
///
- /// Permissions event handler.
- public void RemovePermissionsCallback(PermissionsEvent permissionsEventHandler)
+ /// Event to remove.
+ internal void UnregisterOnTangoEvent(OnTangoEventAvailableEventHandler handler)
{
- if (permissionsEventHandler != null)
+ if (m_tangoEventListener != null)
{
- m_permissionEvent -= permissionsEventHandler;
+ m_tangoEventListener.UnregisterOnTangoEventAvailable(handler);
}
}
-
///
- /// Requests the necessary permissions for Tango functionality.
+ /// Register to get Tango video overlay callbacks.
+ ///
+ /// See TangoApplication.Register for details.
///
- public void RequestNecessaryPermissionsAndConnect()
+ /// Object to stop getting Tango callbacks from.
+ internal void RegisterOnTangoVideoOverlay(OnTangoImageAvailableEventHandler handler)
{
- _ResetPermissionsFlags();
- _RequestNextPermission();
+ if (m_videoOverlayListener != null)
+ {
+ m_videoOverlayListener.RegisterOnTangoImageAvailable(handler);
+ }
}
-
+
///
- /// Initialize Tango Service and Config.
+ /// Unregister from the Tango video overlay callbacks.
+ ///
+ /// See TangoApplication.Register for more details.
///
- public void InitApplication()
+ /// Event to remove.
+ internal void UnregisterOnTangoVideoOverlay(OnTangoImageAvailableEventHandler handler)
{
- Debug.Log("-----------------------------------Initializing Tango");
- _TangoInitialize();
- TangoConfig.InitConfig(TangoEnums.TangoConfigType.TANGO_CONFIG_DEFAULT);
-
- if(m_enableVideoOverlay && m_useExperimentalVideoOverlay)
+ if (m_videoOverlayListener != null)
{
- int yTextureWidth = 0;
- int yTextureHeight = 0;
- int uvTextureWidth = 0;
- int uvTextureHeight = 0;
-
- TangoConfig.GetInt32(TangoConfig.Keys.EXPERIMENTAL_Y_TEXTURE_WIDTH, ref yTextureWidth);
- TangoConfig.GetInt32(TangoConfig.Keys.EXPERIMENTAL_Y_TEXTURE_HEIGHT, ref yTextureHeight);
- TangoConfig.GetInt32(TangoConfig.Keys.EXPERIMENTAL_UV_TEXTURE_WIDTH, ref uvTextureWidth);
- TangoConfig.GetInt32(TangoConfig.Keys.EXPERIMENTAL_UV_TEXTURE_HEIGHT, ref uvTextureHeight);
-
- if(yTextureWidth == 0 ||
- yTextureHeight == 0 ||
- uvTextureWidth == 0 ||
- uvTextureHeight == 0)
- {
- Debug.Log("Video overlay texture sizes were not set properly");
- }
-
- m_yuvTexture.ResizeAll(yTextureWidth, yTextureHeight, uvTextureWidth, uvTextureHeight);
+ m_videoOverlayListener.UnregisterOnTangoImageAvailable(handler);
}
}
-
+
///
- /// Initialize the providers.
+ /// Experimental API only, subject to change. Register to get Tango video overlay callbacks.
///
- /// UUID to be loaded, if any.
- public void InitProviders(string UUID)
+ /// Object to stop getting Tango callbacks from.
+ internal void RegisterOnExperimentalTangoVideoOverlay(OnExperimentalTangoImageAvailableEventHandler handler)
{
- _InitializeMotionTracking(UUID);
- _InitializeDepth();
- _InitializeOverlay();
- _SetEventCallbacks();
+ if (m_videoOverlayListener != null)
+ {
+ m_videoOverlayListener.RegisterOnExperimentalTangoImageAvailable(handler);
+ }
}
-
+
///
- /// Connects to Tango Service.
+ /// Experimental API only, subject to change. Unregister from the Tango video overlay callbacks.
+ ///
+ /// See TangoApplication.Register for more details.
///
- public void ConnectToService()
+ /// Event to remove.
+ internal void UnregisterOnExperimentalTangoVideoOverlay(OnExperimentalTangoImageAvailableEventHandler handler)
{
- Debug.Log("TangoApplication.ConnectToService()");
- _TangoConnect();
+ if (m_videoOverlayListener != null)
+ {
+ m_videoOverlayListener.UnregisterOnExperimentalTangoImageAvailable(handler);
+ }
}
///
- /// Shutdown this instance.
+ /// Gets the get tango API version code.
///
- public void Shutdown()
+ /// The get tango API version code.
+ private static int _GetTangoAPIVersion()
{
- Debug.Log("Tango Shutdown");
- TangoConfig.Free();
- _TangoDisconnect();
+ return AndroidHelper.GetVersionCode("com.projecttango.tango");
}
///
@@ -563,7 +680,8 @@ private void _SetVideoOverlayCallbacks()
///
/// Initialize motion tracking.
///
- private void _InitializeMotionTracking(string UUID)
+ /// ADF UUID to load.
+ private void _InitializeMotionTracking(string uuid)
{
System.Collections.Generic.List framePairs = new System.Collections.Generic.List();
@@ -577,10 +695,10 @@ private void _InitializeMotionTracking(string UUID)
if (TangoConfig.SetBool(TangoConfig.Keys.ENABLE_AREA_LEARNING_BOOL, m_enableAreaLearning) && m_enableAreaLearning)
{
Debug.Log("Area Learning is enabled.");
- if (!string.IsNullOrEmpty(UUID))
+ if (!string.IsNullOrEmpty(uuid))
{
TangoConfig.SetBool("config_experimental_high_accuracy_small_scale_adf", m_useExperimentalADF);
- TangoConfig.SetString(TangoConfig.Keys.LOAD_AREA_DESCRIPTION_UUID_STRING, UUID);
+ TangoConfig.SetString(TangoConfig.Keys.LOAD_AREA_DESCRIPTION_UUID_STRING, uuid);
}
TangoCoordinateFramePair areaDescription;
@@ -638,11 +756,13 @@ private void _TangoInitialize()
{
Debug.Log("-------------------Tango initialize status : " + status);
Debug.Log(CLASS_NAME + ".Initialize() The service has not been initialized!");
- } else
+ }
+ else
{
Debug.Log(CLASS_NAME + ".Initialize() Tango was initialized!");
}
- } else
+ }
+ else
{
Debug.Log(CLASS_NAME + ".Initialize() Invalid API version. please update to minimul API version.");
}
@@ -660,14 +780,15 @@ private void _TangoConnect()
if (TangoServiceAPI.TangoService_connect(m_callbackContext, TangoConfig.GetConfig()) != Common.ErrorType.TANGO_SUCCESS)
{
Debug.Log(CLASS_NAME + ".Connect() Could not connect to the Tango Service!");
- } else
+ }
+ else
{
AndroidHelper.PerformanceLog("Unity _TangoConnect end");
Debug.Log(CLASS_NAME + ".Connect() Tango client connected to service!");
- if (m_onTangoConnect != null)
+ if (OnTangoConnect != null)
{
- m_onTangoConnect();
+ OnTangoConnect();
}
}
}
@@ -683,13 +804,14 @@ private void _TangoDisconnect()
if (TangoServiceAPI.TangoService_disconnect() != Common.ErrorType.TANGO_SUCCESS)
{
Debug.Log(CLASS_NAME + ".Disconnect() Could not disconnect from the Tango Service!");
- } else
+ }
+ else
{
Debug.Log(CLASS_NAME + ".Disconnect() Tango client disconnected from service!");
- if (m_onTangoDisconnect != null)
+ if (OnTangoDisconnect != null)
{
- m_onTangoDisconnect();
+ OnTangoDisconnect();
}
}
}
@@ -707,9 +829,10 @@ private bool _IsValidTangoAPIVersion()
if (versionCode < 0)
{
m_isValidTangoAPIVersion = false;
- } else
+ }
+ else
{
- m_isValidTangoAPIVersion = (versionCode >= MINIMUM_API_VERSION);
+ m_isValidTangoAPIVersion = versionCode >= MINIMUM_API_VERSION;
}
m_hasVersionBeenChecked = true;
@@ -718,15 +841,6 @@ private bool _IsValidTangoAPIVersion()
return m_isValidTangoAPIVersion;
}
- ///
- /// Gets the get tango API version code.
- ///
- /// The get tango API version code.
- private static int _GetTangoAPIVersion()
- {
- return AndroidHelper.GetVersionCode("com.projecttango.tango");
- }
-
///
/// Android on pause.
///
@@ -768,31 +882,33 @@ private void _androidOnActivityResult(int requestCode, int resultCode, AndroidJa
switch (requestCode)
{
case Common.TANGO_MOTION_TRACKING_PERMISSIONS_REQUEST_CODE:
+ {
+ if (resultCode == (int)Common.AndroidResult.SUCCESS)
+ {
+ _FlipBitAndCheckPermissions(PermissionsTypes.MOTION_TRACKING);
+ }
+ else
{
- if (resultCode == (int)Common.AndroidResult.SUCCESS)
- {
- _FlipBitAndCheckPermissions(PermissionsTypes.MOTION_TRACKING);
- } else
- {
- _PermissionWasDenied();
- }
- break;
+ _PermissionWasDenied();
}
+ break;
+ }
case Common.TANGO_ADF_LOAD_SAVE_PERMISSIONS_REQUEST_CODE:
+ {
+ if (resultCode == (int)Common.AndroidResult.SUCCESS)
{
- if (resultCode == (int)Common.AndroidResult.SUCCESS)
- {
- _FlipBitAndCheckPermissions(PermissionsTypes.AREA_LEARNING);
- } else
- {
- _PermissionWasDenied();
- }
- break;
+ _FlipBitAndCheckPermissions(PermissionsTypes.AREA_LEARNING);
}
- default:
+ else
{
- break;
+ _PermissionWasDenied();
}
+ break;
+ }
+ default:
+ {
+ break;
+ }
}
Debug.Log("Activity returned result end");
}
@@ -850,11 +966,13 @@ private void _FlipBitAndCheckPermissions(PermissionsTypes permission)
{
m_requiredPermissions ^= permission;
- if (m_requiredPermissions == 0) // all permissions are good!
+ if (m_requiredPermissions == 0)
{
+ // all permissions are good!
Debug.Log("All permissions have been accepted!");
_SendPermissionEvent(true);
- } else
+ }
+ else
{
_RequestNextPermission();
}
@@ -866,7 +984,7 @@ private void _FlipBitAndCheckPermissions(PermissionsTypes permission)
private void _PermissionWasDenied()
{
m_requiredPermissions = PermissionsTypes.NONE;
- if (m_permissionEvent != null)
+ if (PermissionEvent != null)
{
_SendPermissionEvent(false);
}
@@ -890,16 +1008,19 @@ private void _RequestNextPermission()
if (AndroidHelper.ApplicationHasTangoPermissions(Common.TANGO_MOTION_TRACKING_PERMISSIONS))
{
_androidOnActivityResult(Common.TANGO_MOTION_TRACKING_PERMISSIONS_REQUEST_CODE, -1, null);
- } else
+ }
+ else
{
AndroidHelper.StartTangoPermissionsActivity(Common.TANGO_MOTION_TRACKING_PERMISSIONS);
}
- } else if ((m_requiredPermissions & PermissionsTypes.AREA_LEARNING) == PermissionsTypes.AREA_LEARNING)
+ }
+ else if ((m_requiredPermissions & PermissionsTypes.AREA_LEARNING) == PermissionsTypes.AREA_LEARNING)
{
if (AndroidHelper.ApplicationHasTangoPermissions(Common.TANGO_ADF_LOAD_SAVE_PERMISSIONS))
{
_androidOnActivityResult(Common.TANGO_ADF_LOAD_SAVE_PERMISSIONS_REQUEST_CODE, -1, null);
- } else
+ }
+ else
{
AndroidHelper.StartTangoPermissionsActivity(Common.TANGO_ADF_LOAD_SAVE_PERMISSIONS);
}
@@ -923,9 +1044,9 @@ private void Update()
{
if (m_sendPermissions)
{
- if (m_permissionEvent != null)
+ if (PermissionEvent != null)
{
- m_permissionEvent(m_permissionsSuccessful);
+ PermissionEvent(m_permissionsSuccessful);
}
m_sendPermissions = false;
}
@@ -963,24 +1084,27 @@ private void OnDestroy()
///
/// Interface for native function calls to Tango Service.
///
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.DocumentationRules",
+ "SA1600:ElementsMustBeDocumented",
+ Justification = "C API Wrapper.")]
private struct TangoServiceAPI
{
#if UNITY_ANDROID && !UNITY_EDITOR
[DllImport(Common.TANGO_UNITY_DLL)]
- public static extern int TangoService_initialize (IntPtr JNIEnv, IntPtr appContext);
+ public static extern int TangoService_initialize(IntPtr jniEnv, IntPtr appContext);
[DllImport(Common.TANGO_UNITY_DLL)]
- public static extern int TangoService_connect (IntPtr callbackContext, IntPtr config);
+ public static extern int TangoService_connect(IntPtr callbackContext, IntPtr config);
[DllImport(Common.TANGO_UNITY_DLL)]
- public static extern int TangoService_disconnect ();
+ public static extern int TangoService_disconnect();
#else
- public static int TangoService_initialize(IntPtr JNIEnv, IntPtr appContext)
+ public static int TangoService_initialize(IntPtr jniEnv, IntPtr appContext)
{
return Common.ErrorType.TANGO_SUCCESS;
}
- public static int TangoService_connect(IntPtr callbackContext, IntPtr config)
+ public static int TangoService_connect(IntPtr callbackContext, IntPtr config)
{
return Common.ErrorType.TANGO_SUCCESS;
}
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/TangoConfig.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/TangoConfig.cs
index b2c0bb3a..e50ae856 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/TangoConfig.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/TangoConfig.cs
@@ -1,18 +1,22 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System;
using System.Collections;
using System.Text;
@@ -23,16 +27,15 @@
namespace Tango
{
///
- /// Functionality for interacting with the Tango Service
- /// configuration.
+ /// C API wrapper for Tango Configuration Parameters.
///
- public class TangoConfig
+ internal class TangoConfig
{
-#region Attributes
+ #region Attributes
///
/// Key/Value pairs supported by the Tango Service.
- ///
- public struct Keys
+ ///
+ internal struct Keys
{
// Motion Tracking
public static readonly string ENABLE_MOTION_TRACKING_BOOL = "config_enable_motion_tracking";
@@ -65,29 +68,45 @@ public struct Keys
private static IntPtr m_tangoConfig = IntPtr.Zero;
///
- /// Delegate definition for setting API callbacks when setting values in the Tango Config.
+ /// Delegate for internal API call that sets a config option.
+ ///
+ /// This matches the signature of TangoConfig_setBool, TangoConfig_Double, etc.
///
- /// The IntPtr object, usually the tango config reference.
- /// Usually the key that we want to modify in the tango config file.
- /// Usually the value that we want to modify for the key in the tango config file.
- /// Common.ErrorType.TANGO_SUCCESS if API call was successfull,
- /// Common.ErrorType.TANGO_ERROR otherwise.
- public delegate int ConfigAPIDelegate(IntPtr obj1,string obj2,T obj3);
-#endregion
+ /// C pointer to a TangoConfig.
+ /// Key we want to modify.
+ /// Value to set, of the correct type.
+ ///
+ /// Returns TANGO_SUCCESS on success or TANGO_INVALID if config or key is NULL, or key is not found or could
+ /// not be set.
+ ///
+ private delegate int ConfigAPIDelegate(IntPtr obj1, string obj2, T obj3);
+ #endregion
///
- /// Gets the handle to the current Tango configuration.
+ /// Gets the cached C pointer to a TangoConfig.
+ ///
+ /// This pointer is updated by calling InitConfig.
///
- /// Handle to the Tango configuration.
- public static IntPtr GetConfig()
+ /// C pointer to a Tango config.
+ internal static IntPtr GetConfig()
{
return m_tangoConfig;
}
///
- /// Fills out a given Tango configuration with the currently set configuration settings.
+ /// Update the cached C pointer to a TangoConfig.
+ ///
+ /// This should be used to initialize a Config object for setting the configuration that TangoService should
+ /// be run in. The Config handle is passed to TangoService_connect() which starts the service running with
+ /// the parameters set at that time in that TangoConfig handle. This function can be used to find the current
+ /// configuration of the service (i.e. what would be run if no config is specified on TangoService_connect()),
+ /// or to create one of a few "template" TangoConfigs. The returned TangoConfig can be further modified by
+ /// TangoConfig_set function calls. The handle should be freed with Free(). The handle is needed
+ /// only at the time of TangoService_connect() where it is used to configure the service, and can safely be
+ /// freed after it has been used in TangoService_connect().
///
- public static void InitConfig(TangoEnums.TangoConfigType configType)
+ /// The requested configuration type.
+ internal static void InitConfig(TangoEnums.TangoConfigType configType)
{
m_tangoConfig = TangoConfigAPI.TangoService_getConfig(configType);
@@ -95,9 +114,11 @@ public static void InitConfig(TangoEnums.TangoConfigType configType)
}
///
- /// Deallocate a Tango configuration object.
+ /// Free a TangoConfig object.
+ ///
+ /// Frees the TangoConfig object for the cached handle.
///
- public static void Free()
+ internal static void Free()
{
if (m_tangoConfig != IntPtr.Zero)
{
@@ -110,12 +131,13 @@ public static void Free()
}
///
- /// Gets a string representing the current settings
- /// of the Tango configuration.
+ /// Gets a string of key-value pairs of all the configuration values of TangoService.
+ ///
+ /// The string is separated into lines such that each line is one key-value pair, with format "key=value\n".
+ /// Note that many of these config values are read-only, unless otherwise documented.
///
- /// String representing the current settings.
- /// Null if no configuration is found.
- public static string GetSettings()
+ /// String representation of the cached configuration.
+ internal static string GetSettings()
{
if (m_tangoConfig != IntPtr.Zero)
{
@@ -128,67 +150,67 @@ public static string GetSettings()
}
///
- /// Sets the value of a boolean key/value pair.
+ /// Set a boolean configuration parameter.
///
- /// true, if bool was set, false otherwise.
- /// Key.
- /// If set to true value.
- public static bool SetBool(string key, bool value)
+ /// true on success, false otherwise.
+ /// The string key value of the configuration parameter to set.
+ /// The value to set the configuration key to.
+ internal static bool SetBool(string key, bool value)
{
return _ConfigHelperSet(new ConfigAPIDelegate(TangoConfigAPI.TangoConfig_setBool), m_tangoConfig, key, value, "SetBool");
}
///
- /// Sets the value of an int32 key/value pair.
+ /// Set an Int32 configuration parameter.
///
- /// true, if int32 was set, false otherwise.
- /// Key.
- /// Value.
- public static bool SetInt32(string key, Int32 value)
+ /// true on success, false otherwise.
+ /// The string key value of the configuration parameter to set.
+ /// The value to set the configuration key to.
+ internal static bool SetInt32(string key, Int32 value)
{
return _ConfigHelperSet(new ConfigAPIDelegate(TangoConfigAPI.TangoConfig_setInt32), m_tangoConfig, key, value, "SetInt32");
}
///
- /// Sets the value of an int64 key/value pair.
+ /// Set an Int64 configuration parameter.
///
- /// true, if int64 was set, false otherwise.
- /// Key.
- /// Value.
- public static bool SetInt64(string key, Int64 value)
+ /// true on success, false otherwise.
+ /// The string key value of the configuration parameter to set.
+ /// The value to set the configuration key to.
+ internal static bool SetInt64(string key, Int64 value)
{
return _ConfigHelperSet(new ConfigAPIDelegate(TangoConfigAPI.TangoConfig_setInt64), m_tangoConfig, key, value, "SetInt64");
}
-
+
///
- /// Sets the value of a double key/value pair.
+ /// Set a double configuration parameter.
///
- /// true, if double was set, false otherwise.
- /// Key.
- /// Value.
- public static bool SetDouble(string key, double value)
+ /// true on success, false otherwise.
+ /// The string key value of the configuration parameter to set.
+ /// The value to set the configuration key to.
+ internal static bool SetDouble(string key, double value)
{
return _ConfigHelperSet(new ConfigAPIDelegate(TangoConfigAPI.TangoConfig_setDouble), m_tangoConfig, key, value, "SetDouble");
}
-
+
///
- /// Sets the value of a string key/value pair.
+ /// Set a string configuration parameter.
///
- /// true, if string was set, false otherwise.
- /// Key.
- /// Value.
- public static bool SetString(string key, string value)
+ /// true on success, false otherwise.
+ /// The string key value of the configuration parameter to set.
+ /// The value to set the configuration key to.
+ internal static bool SetString(string key, string value)
{
return _ConfigHelperSet(new ConfigAPIDelegate(TangoConfigAPI.TangoConfig_setString), m_tangoConfig, key, value, "SetString");
}
///
- /// Gets the value of a bool key/value pair.
+ /// Get a boolean configuration parameter.
///
- /// true, if bool was gotten, false otherwise.
- /// Key.
- /// Value.
- public static bool GetBool(string key, ref bool value)
+ /// true, if the value was retrieved, false otherwise.
+ /// The string key value of the configuration parameter to get.
+ /// On successful return, the value of the configuration key.
+ internal static bool GetBool(string key, ref bool value)
{
bool wasSuccess = false;
if (m_tangoConfig != IntPtr.Zero)
@@ -198,19 +220,19 @@ public static bool GetBool(string key, ref bool value)
if (!wasSuccess)
{
#if UNITY_ANDROID && !UNITY_EDITOR
- Debug.LogWarning(string.Format(m_ErrorLogFormat, "GetBool", key, false));
+ Debug.LogWarning(string.Format(m_ErrorLogFormat, "GetBool", key, false));
#endif
}
return wasSuccess;
}
-
+
///
- /// Gets the value of an int32 kay/value pair.
+ /// Get an Int32 configuration parameter.
///
- /// true, if int32 was gotten, false otherwise.
- /// Key.
- /// Value.
- public static bool GetInt32(string key, ref Int32 value)
+ /// true, if the value was retrieved, false otherwise.
+ /// The string key value of the configuration parameter to get.
+ /// On successful return, the value of the configuration key.
+ internal static bool GetInt32(string key, ref Int32 value)
{
bool wasSuccess = false;
if (m_tangoConfig != IntPtr.Zero)
@@ -223,14 +245,14 @@ public static bool GetInt32(string key, ref Int32 value)
}
return wasSuccess;
}
-
+
///
- /// Gets the value of an int64 key/value pair.
+ /// Get an Int64 configuration parameter.
///
- /// true, if int64 was gotten, false otherwise.
- /// Key.
- /// Value.
- public static bool GetInt64(string key, ref Int64 value)
+ /// true, if the value was retrieved, false otherwise.
+ /// The string key value of the configuration parameter to get.
+ /// On successful return, the value of the configuration key.
+ internal static bool GetInt64(string key, ref Int64 value)
{
bool wasSuccess = false;
if (m_tangoConfig != IntPtr.Zero)
@@ -243,14 +265,14 @@ public static bool GetInt64(string key, ref Int64 value)
}
return wasSuccess;
}
-
+
///
- /// Gets the value of a double key/value pair.
+ /// Get a double configuration parameter.
///
- /// true, if double was gotten, false otherwise.
- /// Key.
- /// Value.
- public static bool GetDouble(string key, ref double value)
+ /// true, if the value was retrieved, false otherwise.
+ /// The string key value of the configuration parameter to get.
+ /// On successful return, the value of the configuration key.
+ internal static bool GetDouble(string key, ref double value)
{
bool wasSuccess = false;
if (m_tangoConfig != IntPtr.Zero)
@@ -263,14 +285,14 @@ public static bool GetDouble(string key, ref double value)
}
return wasSuccess;
}
-
+
///
- /// Gets the value of a string key/value pair.
+ /// Get a string configuration parameter.
///
- /// true, if string was gotten, false otherwise.
- /// Key.
- /// Value.
- public static bool GetString(string key, ref string value)
+ /// true, if the value was retrieved, false otherwise.
+ /// The string key value of the configuration parameter to get.
+ /// On successful return, the value of the configuration key.
+ internal static bool GetString(string key, ref string value)
{
bool wasSuccess = false;
if (m_tangoConfig != IntPtr.Zero)
@@ -292,17 +314,17 @@ public static bool GetString(string key, ref string value)
}
///
- /// Helper method for setting values in the Tango Config file.
+ /// Helper method for setting a configuration parameter.
///
/// true if the API call returned success, false otherwise.
/// The API call we want to perform.
- /// Ptr to the current active Tango Config.
- /// The key of the config file we want to modify the value of.
- /// The new value we want to set.
- /// String representing the name of the method we are trying to call. Used for logging purposes.
+ /// Handle to a Tango Config.
+ /// The string key value of the configuration parameter to set.
+ /// The value to set the configuration key to.
+ /// Name of the method we are calling. Used for logging purposes.
/// The type of object we are trying to set.
- internal static bool _ConfigHelperSet(ConfigAPIDelegate apiCall, IntPtr tangoConfig, string configKey, object configValue,
- string tangoMethodName)
+ private static bool _ConfigHelperSet(ConfigAPIDelegate apiCall, IntPtr tangoConfig, string configKey, object configValue,
+ string tangoMethodName)
{
if (tangoConfig == IntPtr.Zero)
{
@@ -329,137 +351,150 @@ internal static bool _ConfigHelperSet(ConfigAPIDelegate apiCall, IntPtr ta
}
///
- /// Interface for the Tango Service API.
+ /// DEPRECATED: Internal API, should be private.
///
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.DocumentationRules",
+ "SA1600:ElementsMustBeDocumented",
+ Justification = "C API Wrapper.")]
internal struct TangoConfigAPI
{
#if UNITY_ANDROID && !UNITY_EDITOR
- [DllImport(Common.TANGO_UNITY_DLL)]
- public static extern void TangoConfig_free(IntPtr tangoConfig);
-
- [DllImport(Common.TANGO_UNITY_DLL)]
- public static extern string TangoConfig_toString(IntPtr TangoConfig);
-
- [DllImport(Common.TANGO_UNITY_DLL)]
- public static extern int TangoConfig_setBool(IntPtr tangoConfig,
- [MarshalAs(UnmanagedType.LPStr)] string key,
- bool value);
- [DllImport(Common.TANGO_UNITY_DLL)]
- public static extern IntPtr TangoService_getConfig(TangoEnums.TangoConfigType config_type);
-
- [DllImport(Common.TANGO_UNITY_DLL)]
- public static extern int TangoConfig_setInt32(IntPtr tangoConfig,
- [MarshalAs(UnmanagedType.LPStr)] string key,
- Int32 value);
-
- [DllImport(Common.TANGO_UNITY_DLL)]
- public static extern int TangoConfig_setInt64(IntPtr tangoConfig,
- [MarshalAs(UnmanagedType.LPStr)] string key,
- Int64 value);
-
- [DllImport(Common.TANGO_UNITY_DLL)]
- public static extern int TangoConfig_setDouble(IntPtr tangoConfig,
- [MarshalAs(UnmanagedType.LPStr)] string key,
- double value);
-
- [DllImport(Common.TANGO_UNITY_DLL)]
- public static extern int TangoConfig_setString(IntPtr tangoConfig,
- [MarshalAs(UnmanagedType.LPStr)] string key,
- [MarshalAs(UnmanagedType.LPStr)] string value);
-
- [DllImport(Common.TANGO_UNITY_DLL)]
- public static extern int TangoConfig_getBool(IntPtr tangoConfig,
- [MarshalAs(UnmanagedType.LPStr)] string key,
- ref bool value);
-
- [DllImport(Common.TANGO_UNITY_DLL)]
- public static extern int TangoConfig_getInt32(IntPtr tangoConfig,
- [MarshalAs(UnmanagedType.LPStr)] string key,
- ref Int32 value);
-
- [DllImport(Common.TANGO_UNITY_DLL)]
- public static extern int TangoConfig_getInt64(IntPtr tangoConfig,
- [MarshalAs(UnmanagedType.LPStr)] string key,
- ref Int64 value);
-
- [DllImport(Common.TANGO_UNITY_DLL)]
- public static extern int TangoConfig_getDouble(IntPtr tangoConfig,
- [MarshalAs(UnmanagedType.LPStr)] string key,
- ref double value);
-
- [DllImport(Common.TANGO_UNITY_DLL)]
- public static extern int TangoConfig_getString(IntPtr tangoConfig,
- [MarshalAs(UnmanagedType.LPStr)] string key,
- [In, Out] StringBuilder value,
- UInt32 size);
+ [DllImport(Common.TANGO_UNITY_DLL)]
+ public static extern void TangoConfig_free(IntPtr tangoConfig);
+
+ [DllImport(Common.TANGO_UNITY_DLL)]
+ public static extern string TangoConfig_toString(IntPtr tangoConfig);
+
+ [DllImport(Common.TANGO_UNITY_DLL)]
+ public static extern int TangoConfig_setBool(IntPtr tangoConfig,
+ [MarshalAs(UnmanagedType.LPStr)] string key,
+ bool value);
+ [DllImport(Common.TANGO_UNITY_DLL)]
+ public static extern IntPtr TangoService_getConfig(TangoEnums.TangoConfigType config_type);
+
+ [DllImport(Common.TANGO_UNITY_DLL)]
+ public static extern int TangoConfig_setInt32(IntPtr tangoConfig,
+ [MarshalAs(UnmanagedType.LPStr)] string key,
+ Int32 value);
+
+ [DllImport(Common.TANGO_UNITY_DLL)]
+ public static extern int TangoConfig_setInt64(IntPtr tangoConfig,
+ [MarshalAs(UnmanagedType.LPStr)] string key,
+ Int64 value);
+
+ [DllImport(Common.TANGO_UNITY_DLL)]
+ public static extern int TangoConfig_setDouble(IntPtr tangoConfig,
+ [MarshalAs(UnmanagedType.LPStr)] string key,
+ double value);
+
+ [DllImport(Common.TANGO_UNITY_DLL)]
+ public static extern int TangoConfig_setString(IntPtr tangoConfig,
+ [MarshalAs(UnmanagedType.LPStr)] string key,
+ [MarshalAs(UnmanagedType.LPStr)] string value);
+
+ [DllImport(Common.TANGO_UNITY_DLL)]
+ public static extern int TangoConfig_getBool(IntPtr tangoConfig,
+ [MarshalAs(UnmanagedType.LPStr)] string key,
+ ref bool value);
+
+ [DllImport(Common.TANGO_UNITY_DLL)]
+ public static extern int TangoConfig_getInt32(IntPtr tangoConfig,
+ [MarshalAs(UnmanagedType.LPStr)] string key,
+ ref Int32 value);
+
+ [DllImport(Common.TANGO_UNITY_DLL)]
+ public static extern int TangoConfig_getInt64(IntPtr tangoConfig,
+ [MarshalAs(UnmanagedType.LPStr)] string key,
+ ref Int64 value);
+
+ [DllImport(Common.TANGO_UNITY_DLL)]
+ public static extern int TangoConfig_getDouble(IntPtr tangoConfig,
+ [MarshalAs(UnmanagedType.LPStr)] string key,
+ ref double value);
+
+ [DllImport(Common.TANGO_UNITY_DLL)]
+ public static extern int TangoConfig_getString(IntPtr tangoConfig,
+ [MarshalAs(UnmanagedType.LPStr)] string key,
+ [In, Out] StringBuilder value,
+ UInt32 size);
#else
public static void TangoConfig_free(IntPtr tangoConfig)
{
-
}
public static IntPtr TangoService_getConfig(TangoEnums.TangoConfigType config_type)
{
return IntPtr.Zero;
}
- public static string TangoConfig_toString(IntPtr TangoConfig)
+
+ public static string TangoConfig_toString(IntPtr tangoConfig)
{
return "Editor Mode";
}
+
public static int TangoConfig_setBool(IntPtr tangoConfig,
- [MarshalAs(UnmanagedType.LPStr)] string key,
- bool value)
+ [MarshalAs(UnmanagedType.LPStr)] string key,
+ bool value)
{
return Common.ErrorType.TANGO_SUCCESS;
}
+
public static int TangoConfig_setInt32(IntPtr tangoConfig,
- [MarshalAs(UnmanagedType.LPStr)] string key,
- Int32 value)
+ [MarshalAs(UnmanagedType.LPStr)] string key,
+ Int32 value)
{
return Common.ErrorType.TANGO_SUCCESS;
}
+
public static int TangoConfig_setInt64(IntPtr tangoConfig,
- [MarshalAs(UnmanagedType.LPStr)] string key,
- Int64 value)
+ [MarshalAs(UnmanagedType.LPStr)] string key,
+ Int64 value)
{
return Common.ErrorType.TANGO_SUCCESS;
}
+
public static int TangoConfig_setDouble(IntPtr tangoConfig,
- [MarshalAs(UnmanagedType.LPStr)] string key,
- double value)
+ [MarshalAs(UnmanagedType.LPStr)] string key,
+ double value)
{
return Common.ErrorType.TANGO_SUCCESS;
}
+
public static int TangoConfig_setString(IntPtr tangoConfig,
- [MarshalAs(UnmanagedType.LPStr)] string key,
- string value)
+ [MarshalAs(UnmanagedType.LPStr)] string key,
+ string value)
{
return Common.ErrorType.TANGO_SUCCESS;
}
+
public static int TangoConfig_getBool(IntPtr tangoConfig,
- [MarshalAs(UnmanagedType.LPStr)] string key,
- ref bool value)
+ [MarshalAs(UnmanagedType.LPStr)] string key,
+ ref bool value)
{
return Common.ErrorType.TANGO_SUCCESS;
}
+
public static int TangoConfig_getInt32(IntPtr tangoConfig,
- [MarshalAs(UnmanagedType.LPStr)] string key,
- ref Int32 value)
+ [MarshalAs(UnmanagedType.LPStr)] string key,
+ ref Int32 value)
{
return Common.ErrorType.TANGO_SUCCESS;
}
+
public static int TangoConfig_getInt64(IntPtr tangoConfig,
- [MarshalAs(UnmanagedType.LPStr)] string key,
- ref Int64 value)
+ [MarshalAs(UnmanagedType.LPStr)] string key,
+ ref Int64 value)
{
return Common.ErrorType.TANGO_SUCCESS;
}
+
public static int TangoConfig_getDouble(IntPtr tangoConfig,
- [MarshalAs(UnmanagedType.LPStr)] string key,
- ref double value)
+ [MarshalAs(UnmanagedType.LPStr)] string key,
+ ref double value)
{
return Common.ErrorType.TANGO_SUCCESS;
}
+
public static int TangoConfig_getString(IntPtr tangoConfig,
[MarshalAs(UnmanagedType.LPStr)] string key,
[In, Out] StringBuilder value,
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/TangoEvents.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/TangoEvents.cs
index 7c295be9..3af6fc60 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/TangoEvents.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/TangoEvents.cs
@@ -1,18 +1,22 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System;
using System.Runtime.InteropServices;
using UnityEngine;
@@ -20,33 +24,38 @@
namespace Tango
{
///
- /// Wraps the interface from Tango Service to register
- /// for callbacks that are fired on new events.
+ /// C API wrapper for the Tango events interface.
///
- public class TangoEvents
+ internal class TangoEvents
{
- // Signature used by the onTangoEvent callback.
+ ///
+ /// Tango video overlay C callback function signature.
+ ///
+ /// The callback context.
+ /// Tango event.
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- public delegate void TangoService_onEventAvailable(IntPtr callbackContext, [In,Out] TangoEvent tangoEvent);
+ internal delegate void TangoService_onEventAvailable(IntPtr callbackContext, [In, Out] TangoEvent tangoEvent);
///
- /// Sets the callback that is called when a new tango
- /// event has been issued by the Tango Service.
+ /// Attach an onTangoEvent callback. The callback is called each time a Tango event happens.
///
/// Callback.
- public static void SetCallback(TangoService_onEventAvailable callback)
+ internal static void SetCallback(TangoService_onEventAvailable callback)
{
int returnValue = EventsAPI.TangoService_connectOnTangoEvent(callback);
if (returnValue != Common.ErrorType.TANGO_SUCCESS)
{
- Debug.Log("TangoEvents.SetCallback() Callback was not set!");
+ Debug.Log("TangoEvents.SetCallback() Callback was not set!");
}
else
{
- Debug.Log("TangoEvents.SetCallback() Callback was set!");
+ Debug.Log("TangoEvents.SetCallback() Callback was set!");
}
}
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.DocumentationRules",
+ "SA1600:ElementsMustBeDocumented",
+ Justification = "C API Wrapper.")]
private struct EventsAPI
{
#if UNITY_ANDROID && !UNITY_EDITOR
diff --git a/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/VideoOverlayProvider.cs b/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/VideoOverlayProvider.cs
index 1de7dbd3..3d3ecfb2 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/VideoOverlayProvider.cs
+++ b/UnityExamples/Assets/TangoSDK/Core/Scripts/TangoWrappers/VideoOverlayProvider.cs
@@ -1,18 +1,22 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
@@ -22,90 +26,46 @@
namespace Tango
{
-
///
- /// Wraps separate textures for Y, U, and V planes.
+ /// C API wrapper for the Tango video overlay interface.
///
- public class YUVTexture
+ public class VideoOverlayProvider
{
///
- /// The m_video overlay texture y.
- /// Columns 1280/4 [bytes packed in RGBA channels]
- /// Rows 720
- ///
- public Texture2D m_videoOverlayTextureY;
-
- ///
- /// The m_video overlay texture cb.
- /// Columns 640/4 [bytes packed in RGBA channels]
- /// Rows 360
- ///
- public Texture2D m_videoOverlayTextureCb;
-
- ///
- /// The m_video overlay texture cr.
- /// Columns 640 * 2 / 4 [bytes packed in RGBA channels]
- /// Rows 360
- ///
- public Texture2D m_videoOverlayTextureCr;
-
- ///
- /// Initializes a new instance of the class.
- /// NOTE : Texture resolutions will be reset by the API. The sizes passed
- /// into the constructor are not guaranteed to persist when running on device.
+ /// Tango video overlay C callback function signature.
///
- /// Width.
- /// Height.
- /// Format.
- /// If set to true mipmap.
- public YUVTexture(int yPlaneWidth, int yPlaneHeight,
- int uvPlaneWidth, int uvPlaneHeight,
- TextureFormat format, bool mipmap)
- {
- m_videoOverlayTextureY = new Texture2D(yPlaneWidth, yPlaneHeight, format, mipmap);
- m_videoOverlayTextureY.filterMode = FilterMode.Point;
- m_videoOverlayTextureCb = new Texture2D(uvPlaneWidth, uvPlaneHeight, format, mipmap);
- m_videoOverlayTextureCb.filterMode = FilterMode.Point;
- m_videoOverlayTextureCr = new Texture2D(uvPlaneWidth, uvPlaneHeight, format, mipmap);
- m_videoOverlayTextureCr.filterMode = FilterMode.Point;
- }
+ /// Callback context.
+ /// Camera ID.
+ /// Image.
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void TangoService_onImageAvailable(IntPtr callbackContext, Tango.TangoEnums.TangoCameraId cameraId, [In, Out] TangoImageBuffer image);
///
- /// Resizes all yuv texture planes.
+ /// Experimental API only, subject to change. Tango depth C callback function signature.
///
- /// Y plane width.
- /// Y plane height.
- /// Uv plane width.
- /// Uv plane height.
- public void ResizeAll(int yPlaneWidth, int yPlaneHeight,
- int uvPlaneWidth, int uvPlaneHeight)
- {
- m_videoOverlayTextureY.Resize(yPlaneWidth, yPlaneHeight);
- m_videoOverlayTextureCb.Resize(uvPlaneWidth, uvPlaneHeight);
- m_videoOverlayTextureCr.Resize(uvPlaneWidth, uvPlaneHeight);
- }
- }
-
- ///
- /// Video Overlay Provider class provide video functions
- /// to get frame textures.
- ///
- public class VideoOverlayProvider
- {
+ /// Callback context.
+ /// Camera ID.
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- public delegate void TangoService_onImageAvailable(IntPtr callbackContext, Tango.TangoEnums.TangoCameraId cameraId, [In,Out] TangoImageBuffer image);
-
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- public delegate void TangoService_onUnityFrameAvailable(IntPtr callbackContext, Tango.TangoEnums.TangoCameraId cameraId);
+ internal delegate void TangoService_onUnityFrameAvailable(IntPtr callbackContext, Tango.TangoEnums.TangoCameraId cameraId);
private static readonly string CLASS_NAME = "VideoOverlayProvider";
private static IntPtr callbackContext = IntPtr.Zero;
///
- /// Connects the texture.
+ /// Connect a Texture ID to a camera; the camera is selected by specifying a TangoCameraId.
+ ///
+ /// Currently only TANGO_CAMERA_COLOR and TANGO_CAMERA_FISHEYE are supported. The texture must be the ID of a
+ /// texture that has been allocated and initialized by the calling application.
+ ///
+ /// The first scan-line of the color image is reserved for metadata instead of image pixels.
///
- /// Camera identifier.
- /// Texture identifier.
+ ///
+ /// The ID of the camera to connect this texture to. Only TANGO_CAMERA_COLOR and TANGO_CAMERA_FISHEYE are
+ /// supported.
+ ///
+ ///
+ /// The texture ID of the texture to connect the camera to. Must be a valid texture in the applicaton.
+ ///
public static void ConnectTexture(TangoEnums.TangoCameraId cameraId, int textureId)
{
int returnValue = VideoOverlayAPI.TangoService_connectTextureId(cameraId, textureId);
@@ -115,8 +75,29 @@ public static void ConnectTexture(TangoEnums.TangoCameraId cameraId, int texture
Debug.Log("VideoOverlayProvider.ConnectTexture() Texture was not connected to camera!");
}
}
-
- public static void ExperimentalConnectTexture(TangoEnums.TangoCameraId cameraId, YUVTexture textures, TangoService_onUnityFrameAvailable onUnityFrameAvailable)
+
+ ///
+ /// Experimental API only, subject to change. Connect a Texture IDs to a camera.
+ ///
+ /// The camera is selected via TangoCameraId. Currently only TANGO_CAMERA_COLOR is supported. The texture
+ /// handles will be regenerated by the API on startup after which the application can use them, and will be
+ /// packed RGBA8888 data containing bytes of the image (so a single RGBA8888 will pack 4 neighbouring pixels).
+ /// If the config flag experimental_image_pixel_format is set to HAL_PIXEL_FORMAT_YCrCb_420_SP, texture_y will
+ /// pack 1280x720 pixels into a 320x720 RGBA8888 texture. texture_Cb and texture_Cr will contain copies of
+ /// the 2x2 downsampled interleaved UV planes packed similarly. If experimental_image_pixel_format is set to
+ /// HAL_PIXEL_FORMAT_YV12 then texture_y will have a stride of 1536 containing 1280 columns of data, packed
+ /// similarly in a RGBA8888 texture. texture_Cb and texture_Cr will be 2x2 downsampled versions of the same.
+ /// See YV12 and NV21 formats for details.
+ ///
+ /// Note: The first scan-line of the color image is reserved for metadata instead of image pixels.
+ ///
+ ///
+ /// The ID of the camera to connect this texture to. Only TANGO_CAMERA_COLOR and TANGO_CAMERA_FISHEYE are
+ /// supported.
+ ///
+ /// The texture IDs to use for the Y, Cb, and Cr planes.
+ /// Callback.
+ internal static void ExperimentalConnectTexture(TangoEnums.TangoCameraId cameraId, YUVTexture textures, TangoService_onUnityFrameAvailable onUnityFrameAvailable)
{
int returnValue = VideoOverlayAPI.TangoService_Experimental_connectTextureIdUnity(cameraId,
(uint)textures.m_videoOverlayTextureY.GetNativeTextureID(),
@@ -130,12 +111,16 @@ public static void ExperimentalConnectTexture(TangoEnums.TangoCameraId cameraId,
Debug.Log("VideoOverlayProvider.ConnectTexture() Texture was not connected to camera!");
}
}
-
+
///
- /// Renders the latest frame.
+ /// Update the texture that has been connected to camera referenced by TangoCameraId with the latest image
+ /// from the camera.
///
- /// The latest frame timestamp.
- /// Camera identifier.
+ /// The timestamp of the image that has been pushed to the connected texture.
+ ///
+ /// The ID of the camera to connect this texture to. Only TANGO_CAMERA_COLOR
and
+ /// TANGO_CAMERA_FISHEYE
are supported.
+ ///
public static double RenderLatestFrame(TangoEnums.TangoCameraId cameraId)
{
double timestamp = 0.0;
@@ -149,10 +134,15 @@ public static double RenderLatestFrame(TangoEnums.TangoCameraId cameraId)
}
///
- /// Get the camera/sensor intrinsics.
+ /// Get the intrinsic calibration parameters for a given camera.
+ ///
+ /// The intrinsics are as specified by the TangoCameraIntrinsics struct. Intrinsics are read from the
+ /// on-device intrinsics file (typically /sdcard/config/calibration.xml
, but to ensure
+ /// compatibility applications should only access these parameters via the API), or default internal model
+ /// parameters corresponding to the device are used if the calibration.xml file is not found.
///
- /// Camera identifier.
- /// Camera intrinsics data.
+ /// The camera ID to retrieve the calibration intrinsics for.
+ /// A TangoCameraIntrinsics filled with calibration intrinsics for the camera.
public static void GetIntrinsics(TangoEnums.TangoCameraId cameraId, [Out] TangoCameraIntrinsics intrinsics)
{
int returnValue = VideoOverlayAPI.TangoService_getCameraIntrinsics(cameraId, intrinsics);
@@ -162,16 +152,28 @@ public static void GetIntrinsics(TangoEnums.TangoCameraId cameraId, [Out] TangoC
Debug.Log("IntrinsicsProviderAPI.TangoService_getCameraIntrinsics() failed!");
}
}
-
+
///
- /// Sets the callback for notifications when image data is ready.
+ /// Connect a callback to a camera for access to the pixels.
+ ///
+ /// This is not recommended for display but for applications requiring access to the
+ /// HAL_PIXEL_FORMAT_YV12
pixel data. The camera is selected via TangoCameraId. Currently only
+ /// TANGO_CAMERA_COLOR
and TANGO_CAMERA_FISHEYE
are supported.
+ ///
+ /// The onImageAvailable callback will be called when a new frame is available from the camera. The
+ /// Enable Video Overlay option must be enabled for this to succeed.
+ ///
+ /// Note: The first scan-line of the color image is reserved for metadata instead of image pixels.
///
- /// Camera identifier.
- /// On image available callback handler.
- public static void SetCallback(TangoEnums.TangoCameraId cameraId, TangoService_onImageAvailable onImageAvailable)
+ ///
+ /// The ID of the camera to connect this texture to. Only TANGO_CAMERA_COLOR
and
+ /// TANGO_CAMERA_FISHEYE
are supported.
+ ///
+ /// Function called when a new frame is available from the camera.
+ internal static void SetCallback(TangoEnums.TangoCameraId cameraId, TangoService_onImageAvailable onImageAvailable)
{
int returnValue = VideoOverlayAPI.TangoService_connectOnFrameAvailable(cameraId, callbackContext, onImageAvailable);
- if(returnValue == Tango.Common.ErrorType.TANGO_SUCCESS)
+ if (returnValue == Tango.Common.ErrorType.TANGO_SUCCESS)
{
Debug.Log(CLASS_NAME + ".SetCallback() Callback was set.");
}
@@ -182,9 +184,9 @@ public static void SetCallback(TangoEnums.TangoCameraId cameraId, TangoService_o
}
#region NATIVE_FUNCTIONS
- ///
- /// Video overlay native function import.
- ///
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.DocumentationRules",
+ "SA1600:ElementsMustBeDocumented",
+ Justification = "C API Wrapper.")]
private struct VideoOverlayAPI
{
#if UNITY_ANDROID && !UNITY_EDITOR
@@ -195,7 +197,7 @@ private struct VideoOverlayAPI
[DllImport(Common.TANGO_UNITY_DLL)]
public static extern int TangoService_connectOnFrameAvailable(TangoEnums.TangoCameraId cameraId,
IntPtr context,
- [In,Out] TangoService_onImageAvailable onImageAvailable);
+ [In, Out] TangoService_onImageAvailable onImageAvailable);
[DllImport(Common.TANGO_UNITY_DLL)]
public static extern int TangoService_updateTexture(TangoEnums.TangoCameraId cameraId, ref double timestamp);
@@ -228,7 +230,7 @@ public static int TangoService_getCameraIntrinsics(TangoEnums.TangoCameraId came
public static int TangoService_connectOnFrameAvailable(TangoEnums.TangoCameraId cameraId,
IntPtr context,
- [In,Out] TangoService_onImageAvailable onImageAvailable)
+ [In, Out] TangoService_onImageAvailable onImageAvailable)
{
return Tango.Common.ErrorType.TANGO_SUCCESS;
}
@@ -246,4 +248,69 @@ public static int TangoService_Experimental_connectTextureIdUnity(TangoEnums.Tan
#endregion
}
}
+
+ ///
+ /// Wraps separate textures for Y, U, and V planes.
+ ///
+ public class YUVTexture
+ {
+ ///
+ /// The m_video overlay texture y.
+ /// Columns 1280/4 [bytes packed in RGBA channels]
+ /// Rows 720
+ /// This size is for a 1280x720 screen.
+ ///
+ public Texture2D m_videoOverlayTextureY;
+
+ ///
+ /// The m_video overlay texture cb.
+ /// Columns 640/4 [bytes packed in RGBA channels]
+ /// Rows 360
+ /// This size is for a 1280x720 screen.
+ ///
+ public Texture2D m_videoOverlayTextureCb;
+
+ ///
+ /// The m_video overlay texture cr.
+ /// Columns 640 * 2 / 4 [bytes packed in RGBA channels]
+ /// Rows 360
+ /// This size is for a 1280x720 screen.
+ ///
+ public Texture2D m_videoOverlayTextureCr;
+
+ ///
+ /// Initializes a new instance of the class.
+ /// NOTE : Texture resolutions will be reset by the API. The sizes passed
+ /// into the constructor are not guaranteed to persist when running on device.
+ ///
+ /// Y plane width.
+ /// Y plane height.
+ /// UV plane width.
+ /// UV plane height.
+ /// Format.
+ /// If set to true mipmap.
+ public YUVTexture(int yPlaneWidth, int yPlaneHeight,
+ int uvPlaneWidth, int uvPlaneHeight,
+ TextureFormat format, bool mipmap)
+ {
+ m_videoOverlayTextureY = new Texture2D(yPlaneWidth, yPlaneHeight, format, mipmap);
+ m_videoOverlayTextureCb = new Texture2D(uvPlaneWidth, uvPlaneHeight, format, mipmap);
+ m_videoOverlayTextureCr = new Texture2D(uvPlaneWidth, uvPlaneHeight, format, mipmap);
+ }
+
+ ///
+ /// Resizes all yuv texture planes.
+ ///
+ /// Y plane width.
+ /// Y plane height.
+ /// Uv plane width.
+ /// Uv plane height.
+ public void ResizeAll(int yPlaneWidth, int yPlaneHeight,
+ int uvPlaneWidth, int uvPlaneHeight)
+ {
+ m_videoOverlayTextureY.Resize(yPlaneWidth, yPlaneHeight);
+ m_videoOverlayTextureCb.Resize(uvPlaneWidth, uvPlaneHeight);
+ m_videoOverlayTextureCr.Resize(uvPlaneWidth, uvPlaneHeight);
+ }
+ }
}
\ No newline at end of file
diff --git a/UnityExamples/Assets/TangoSDK/Core/Tango.dat b/UnityExamples/Assets/TangoSDK/Core/Tango.dat
index e4cb58ad..80235af0 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Tango.dat
+++ b/UnityExamples/Assets/TangoSDK/Core/Tango.dat
@@ -1 +1 @@
- undefined7f7a462release-vonmises
\ No newline at end of file
+ undefined400af05release-weyl
\ No newline at end of file
diff --git a/UnityExamples/Assets/TangoSDK/Core/Tango.dat.meta b/UnityExamples/Assets/TangoSDK/Core/Tango.dat.meta
index 17288c6e..fddac95d 100644
--- a/UnityExamples/Assets/TangoSDK/Core/Tango.dat.meta
+++ b/UnityExamples/Assets/TangoSDK/Core/Tango.dat.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 4c32e35ac7ec74461a887d63a617d537
+guid: ea270c395b242406694304142de3d5a9
DefaultImporter:
userData:
assetBundleName:
diff --git a/UnityExamples/Assets/TangoSDK/Editor.meta b/UnityExamples/Assets/TangoSDK/Editor.meta
index c5ac9dc2..066a5fba 100644
--- a/UnityExamples/Assets/TangoSDK/Editor.meta
+++ b/UnityExamples/Assets/TangoSDK/Editor.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 78f7df302e5d14d179d4c2a81857cab4
folderAsset: yes
-timeCreated: 1440434026
+timeCreated: 1441729896
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/TangoSDK/Editor/TangoInspector.cs b/UnityExamples/Assets/TangoSDK/Editor/TangoInspector.cs
index 0730ca1b..ef88ba1d 100644
--- a/UnityExamples/Assets/TangoSDK/Editor/TangoInspector.cs
+++ b/UnityExamples/Assets/TangoSDK/Editor/TangoInspector.cs
@@ -1,35 +1,34 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System.Collections;
using UnityEditor;
using UnityEngine;
using Tango;
+///
+/// Custom editor for the TangoApplication.
+///
[CustomEditor(typeof(TangoApplication))]
public class TangoInspector : Editor
{
- TangoApplication m_tangoApplication;
-
- ///
- /// Raises the enable event.
- ///
- private void OnEnable()
- {
- m_tangoApplication = (TangoApplication)target;
- }
+ private TangoApplication m_tangoApplication;
///
/// Raises the inspector GUI event.
@@ -46,6 +45,14 @@ public override void OnInspectorGUI()
}
}
+ ///
+ /// Raises the enable event.
+ ///
+ private void OnEnable()
+ {
+ m_tangoApplication = (TangoApplication)target;
+ }
+
///
/// Draw motion tracking options.
///
@@ -59,7 +66,7 @@ private void _DrawMotionTrackingOptions(TangoApplication tangoApplication)
EditorGUI.indentLevel++;
tangoApplication.m_motionTrackingAutoReset = EditorGUILayout.Toggle("Auto Reset",
tangoApplication.m_motionTrackingAutoReset);
-
+
tangoApplication.m_enableAreaLearning = EditorGUILayout.Toggle("Area Learning",
tangoApplication.m_enableAreaLearning);
if (tangoApplication.m_enableAreaLearning)
diff --git a/UnityExamples/Assets/TangoSDK/Editor/TangoMenu.cs b/UnityExamples/Assets/TangoSDK/Editor/TangoMenu.cs
index e97da219..145827a4 100644
--- a/UnityExamples/Assets/TangoSDK/Editor/TangoMenu.cs
+++ b/UnityExamples/Assets/TangoSDK/Editor/TangoMenu.cs
@@ -1,34 +1,38 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
+using System.Collections;
using UnityEngine;
using UnityEditor;
-using System.Collections;
///
/// Tango developer tools menu.
///
public class TangoMenu
{
- ///
- /// Opens the default web browser and navigates to the
- /// Tango developer page.
- ///
- [MenuItem("Tango/Documentation")]
- public static void ShowDocumentation()
- {
- Application.OpenURL("https://developers.google.com/project-tango/developer-overview");
- }
+ ///
+ /// Opens the default web browser and navigates to the
+ /// Tango developer page.
+ ///
+ [MenuItem("Tango/Documentation")]
+ public static void ShowDocumentation()
+ {
+ Application.OpenURL("https://developers.google.com/project-tango/developer-overview");
+ }
}
diff --git a/UnityExamples/Assets/TangoSDK/Editor/TangoSDKAbout.cs b/UnityExamples/Assets/TangoSDK/Editor/TangoSDKAbout.cs
index c3819c81..bed0d45e 100644
--- a/UnityExamples/Assets/TangoSDK/Editor/TangoSDKAbout.cs
+++ b/UnityExamples/Assets/TangoSDK/Editor/TangoSDKAbout.cs
@@ -1,74 +1,78 @@
-/*
- * Copyright 2014 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+//-----------------------------------------------------------------------
+//
+//
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//-----------------------------------------------------------------------
using System.Collections;
+using System.IO;
using UnityEditor;
using UnityEngine;
-using System.IO;
///
/// Tango SDK about window.
///
public class TangoSDKAbout : EditorWindow
{
- public static readonly string TANGO_VERSION_DATA_PATH = "/TangoSDK/Core/Tango.dat";
- public string m_branch = string.Empty;
- public string m_versionTag = string.Empty;
- public string m_gitHash = string.Empty;
- public bool m_validData = false;
+ public static readonly string TANGO_VERSION_DATA_PATH = "/TangoSDK/Core/Tango.dat";
+ public string m_branch = string.Empty;
+ public string m_versionTag = string.Empty;
+ public string m_gitHash = string.Empty;
+ public bool m_validData = false;
- ///
- /// Show the About Tango Window
- ///
- [MenuItem("Tango/About SDK")]
- public static void GetSDKVersion()
- {
- EditorWindow thisWindow = EditorWindow.GetWindow(typeof(TangoSDKAbout));
+ ///
+ /// Show the About Tango Window.
+ ///
+ [MenuItem("Tango/About SDK")]
+ public static void GetSDKVersion()
+ {
+ EditorWindow thisWindow = EditorWindow.GetWindow(typeof(TangoSDKAbout));
- ((TangoSDKAbout)thisWindow).ReadVersionFile();
- }
+ ((TangoSDKAbout)thisWindow).ReadVersionFile();
+ }
- ///
- /// Reads the version file.
- ///
- public void ReadVersionFile()
- {
- if(File.Exists(Application.dataPath + TANGO_VERSION_DATA_PATH))
- {
- BinaryReader binaryReader = new BinaryReader(File.Open(Application.dataPath + TANGO_VERSION_DATA_PATH, FileMode.Open));
- m_versionTag = binaryReader.ReadString();
- m_gitHash = binaryReader.ReadString();
- m_branch = binaryReader.ReadString();
- m_validData = true;
+ ///
+ /// Reads the version file.
+ ///
+ public void ReadVersionFile()
+ {
+ if (File.Exists(Application.dataPath + TANGO_VERSION_DATA_PATH))
+ {
+ BinaryReader binaryReader = new BinaryReader(File.Open(Application.dataPath + TANGO_VERSION_DATA_PATH, FileMode.Open));
+ m_versionTag = binaryReader.ReadString();
+ m_gitHash = binaryReader.ReadString();
+ m_branch = binaryReader.ReadString();
+ m_validData = true;
}
}
- ///
- /// Raises the GU event.
- ///
- void OnGUI()
- {
- if(m_validData)
- {
- EditorGUILayout.LabelField("Version: ", m_versionTag);
- EditorGUILayout.LabelField("Branch: ", m_branch);
- EditorGUILayout.LabelField("Hash: ", m_gitHash);
- }
- else
- {
- EditorGUILayout.LabelField("Version data not found");
- }
- }
+ ///
+ /// Raises the GU event.
+ ///
+ public void OnGUI()
+ {
+ if (m_validData)
+ {
+ EditorGUILayout.LabelField("Version: ", m_versionTag);
+ EditorGUILayout.LabelField("Branch: ", m_branch);
+ EditorGUILayout.LabelField("Hash: ", m_gitHash);
+ }
+ else
+ {
+ EditorGUILayout.LabelField("Version data not found");
+ }
+ }
}
diff --git a/UnityExamples/Assets/TangoSDK/TangoUX.meta b/UnityExamples/Assets/TangoSDK/TangoUX.meta
index 1099a9f4..4204139c 100644
--- a/UnityExamples/Assets/TangoSDK/TangoUX.meta
+++ b/UnityExamples/Assets/TangoSDK/TangoUX.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: ab41d32a0a64440748e605a044b13387
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/TangoSDK/TangoUX/Scripts.meta b/UnityExamples/Assets/TangoSDK/TangoUX/Scripts.meta
index b2e9da75..36d5e584 100644
--- a/UnityExamples/Assets/TangoSDK/TangoUX/Scripts.meta
+++ b/UnityExamples/Assets/TangoSDK/TangoUX/Scripts.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: dd9505c88c48745c8bc7a16f712938f5
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/TangoSDK/TangoUX/Scripts/Common.meta b/UnityExamples/Assets/TangoSDK/TangoUX/Scripts/Common.meta
index 49267f5f..7378c305 100644
--- a/UnityExamples/Assets/TangoSDK/TangoUX/Scripts/Common.meta
+++ b/UnityExamples/Assets/TangoSDK/TangoUX/Scripts/Common.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: e29d70e17a9154895b257ee30b296791
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/TangoSDK/TangoUX/Scripts/Interfaces.meta b/UnityExamples/Assets/TangoSDK/TangoUX/Scripts/Interfaces.meta
index d18ee6fe..91c58181 100644
--- a/UnityExamples/Assets/TangoSDK/TangoUX/Scripts/Interfaces.meta
+++ b/UnityExamples/Assets/TangoSDK/TangoUX/Scripts/Interfaces.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 8c7c0ebacfab24a0cbe5503a4bc5fa07
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/Assets/TangoSDK/TangoUX/Scripts/Listeners.meta b/UnityExamples/Assets/TangoSDK/TangoUX/Scripts/Listeners.meta
index 42701a6c..e063e8f4 100644
--- a/UnityExamples/Assets/TangoSDK/TangoUX/Scripts/Listeners.meta
+++ b/UnityExamples/Assets/TangoSDK/TangoUX/Scripts/Listeners.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: acb9e1dbfe50d40808cb4061f03790d9
folderAsset: yes
-timeCreated: 1440434055
+timeCreated: 1442017923
licenseType: Pro
DefaultImporter:
userData:
diff --git a/UnityExamples/ProjectSettings/ProjectSettings.asset b/UnityExamples/ProjectSettings/ProjectSettings.asset
index 6c3613c5..444914a0 100644
--- a/UnityExamples/ProjectSettings/ProjectSettings.asset
+++ b/UnityExamples/ProjectSettings/ProjectSettings.asset
@@ -72,14 +72,14 @@ PlayerSettings:
16:9: 1
Others: 1
bundleIdentifier: com.projecttango.unityexamples
- bundleVersion: 1.21
+ bundleVersion: 1.22
preloadedAssets: []
metroEnableIndependentInputSource: 0
metroEnableLowLatencyPresentationAPI: 0
xboxOneDisableKinectGpuReservation: 0
virtualRealitySupported: 0
productGUID: c6391136f507d40acbbba7382166aeb8
- AndroidBundleVersionCode: 21
+ AndroidBundleVersionCode: 22
AndroidMinSdkVersion: 17
AndroidPreferredInstallLocation: 1
aotOptions:
@@ -151,7 +151,10 @@ PlayerSettings:
m_Size: 48
- m_Icon: {fileID: 2800000, guid: 87944d11c2cdb43679e685502eff846c, type: 3}
m_Size: 36
- m_BuildTargetBatching: []
+ m_BuildTargetBatching:
+ - m_BuildTarget: Android
+ m_StaticBatching: 1
+ m_DynamicBatching: 0
m_BuildTargetGraphicsAPIs:
- m_BuildTarget: AndroidPlayer
m_APIs: 08000000