diff --git a/AR/Assets/Editor.meta b/AR/Assets/Editor.meta new file mode 100644 index 0000000..7eb57b9 --- /dev/null +++ b/AR/Assets/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 833e12f1d550f2c4b96eb6fa3a5ea199 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AR/Assets/Editor/Migration.meta b/AR/Assets/Editor/Migration.meta new file mode 100644 index 0000000..a7face0 --- /dev/null +++ b/AR/Assets/Editor/Migration.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 784c1ed2aa16453488a41efb0eeae8ce +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AR/Assets/Editor/Migration/AddVuforiaEnginePackage.cs b/AR/Assets/Editor/Migration/AddVuforiaEnginePackage.cs new file mode 100644 index 0000000..d86c9c7 --- /dev/null +++ b/AR/Assets/Editor/Migration/AddVuforiaEnginePackage.cs @@ -0,0 +1,477 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEngine; + +[InitializeOnLoad] +public class AddVuforiaEnginePackage +{ + static readonly string sPackagesPath = Path.Combine(Application.dataPath, "..", "Packages"); + static readonly string sManifestJsonPath = Path.Combine(sPackagesPath, "manifest.json"); + const string VUFORIA_VERSION = "10.14.4"; + const string VUFORIA_TAR_FILE_DIR = "Assets/Editor/Migration/"; + const string DEPENDENCIES_DIR = "Assets/Resources/VuforiaDependencies"; + const string PACKAGES_RELATIVE_PATH = "Packages"; + const string MRTK_PACKAGE = "com.microsoft.mixedreality.toolkit.foundation"; + + static readonly ScopedRegistry sVuforiaRegistry = new ScopedRegistry + { + name = "Vuforia", + url = "https://registry.packages.developer.vuforia.com/", + scopes = new[] { "com.ptc.vuforia" } + }; + + static AddVuforiaEnginePackage() + { + if (Application.isBatchMode) + return; + + var manifest = Manifest.JsonDeserialize(sManifestJsonPath); + + var packages = GetPackageDescriptions(); + + if (!packages.All(p => IsVuforiaUpToDate(manifest, p.BundleId))) + DisplayAddPackageDialog(manifest, packages); + + ResolveDependencies(manifest); + } + + public static void ResolveDependenciesSilent() + { + var manifest = Manifest.JsonDeserialize(sManifestJsonPath); + + var packages = GetDependencyDescriptions(); + if (packages != null && packages.Count > 0) + MoveDependencies(manifest, packages); + + CleanupDependenciesFolder(); + } + + static void ResolveDependencies(Manifest manifest) + { + var packages = GetDependencyDescriptions(); + if (packages != null && packages.Count > 0) + DisplayDependenciesDialog(manifest, packages); + } + + static bool IsVuforiaUpToDate(Manifest manifest, string bundleId) + { + var dependencies = manifest.Dependencies.Split(',').ToList(); + var upToDate = false; + + if(dependencies.Any(d => d.Contains(bundleId) && d.Contains("file:"))) + upToDate = IsUsingRightFileVersion(manifest, bundleId); + + return upToDate; + } + + static bool IsUsingRightFileVersion(Manifest manifest, string bundleId) + { + var dependencies = manifest.Dependencies.Split(',').ToList(); + return dependencies.Any(d => d.Contains(bundleId) && d.Contains("file:") && VersionNumberIsTheLatestTarball(d)); + } + + static bool VersionNumberIsTheLatestTarball(string package) + { + var version = package.Split('-'); + if (version.Length >= 2) + { + version[1] = version[1].TrimEnd(".tgz\"".ToCharArray()); + return IsCurrentVersionHigher(version[1]); + } + + return false; + } + + static bool IsCurrentVersionHigher(string currentVersionString) + { + if (string.IsNullOrEmpty(currentVersionString) || string.IsNullOrEmpty(VUFORIA_VERSION)) + return false; + + var currentVersion = TryConvertStringToVersion(currentVersionString); + var updatingVersion = TryConvertStringToVersion(VUFORIA_VERSION); + + if (currentVersion >= updatingVersion) + return true; + + return false; + } + + static Version TryConvertStringToVersion(string versionString) + { + Version res; + try + { + res = new Version(versionString); + } + catch (Exception) + { + return new Version(); + } + + return new Version(res.Major, res.Minor, res.Build); + } + + static void DisplayAddPackageDialog(Manifest manifest, IEnumerable packages) + { + if (EditorUtility.DisplayDialog("Add Vuforia Engine Package", + $"Would you like to update your project to include the Vuforia Engine {VUFORIA_VERSION} package from the unitypackage?\n" + + $"If an older Vuforia Engine package is already present in your project it will be upgraded to version {VUFORIA_VERSION}\n\n", + "Update", "Cancel")) + { + foreach (var package in packages) + { + MovePackageFile(VUFORIA_TAR_FILE_DIR, package.FileName); + UpdateManifest(manifest, package.BundleId, package.FileName); + } + } + } + + static void DisplayDependenciesDialog(Manifest manifest, IEnumerable packages) + { + if (EditorUtility.DisplayDialog("Add Sample Dependencies", + "Would you like to update your project to include all of its dependencies?\n" + + "If a different version of the package is already present, it will be deleted.\n\n", + "Update", "Cancel")) + { + MoveDependencies(manifest, packages); + CleanupDependenciesFolder(); + if (ShouldProjectRestart(packages)) + DisplayRestartDialog(); + } + } + + static void DisplayRestartDialog() + { + if (EditorUtility.DisplayDialog("Restart Unity Editor", + "Due to a Unity lifecycle issue, this project needs to be closed and re-opened " + + "after importing this Vuforia Engine sample.\n\n", + "Restart", "Cancel")) + { + RestartEditor(); + } + } + + static List GetPackageDescriptions() + { + var tarFilePaths = Directory.GetFiles(Path.Combine(Directory.GetCurrentDirectory(), VUFORIA_TAR_FILE_DIR)).Where(f => f.EndsWith(".tgz")); + + // Define a regular expression for repeated words. + var rx = new Regex(@"(([a-z]+)(\.[a-z]+)*)\-((\d+)\.(\d+)\.(\d+))", RegexOptions.Compiled | RegexOptions.IgnoreCase); + + var packageDescriptions = new List(); + + foreach (var filePath in tarFilePaths) + { + var fileName = Path.GetFileName(filePath); + // Find matches. + var matches = rx.Matches(fileName); + + // Report on each match. + foreach (Match match in matches) + { + var groups = match.Groups; + var bundleId = groups[1].Value; + var versionString = groups[4].Value; + + if (string.Equals(versionString, VUFORIA_VERSION)) + { + packageDescriptions.Add(new PackageDescription() + { + BundleId = bundleId, + FileName = fileName + }); + } + } + } + + return packageDescriptions; + } + + static List GetDependencyDescriptions() + { + var dependencyDirectory = Path.Combine(Directory.GetCurrentDirectory(), DEPENDENCIES_DIR); + if (!Directory.Exists(dependencyDirectory)) + return null; + var tarFilePaths = Directory.GetFiles(dependencyDirectory).Where(f => f.EndsWith(".tgz")); + + // Define a regular expression for repeated words. + var rx = new Regex(@"(([a-z]+)(\.[a-z]+)+)(\-((\d+)\.(\d+)\.(\d+)))*", RegexOptions.Compiled | RegexOptions.IgnoreCase); + + var packageDescriptions = new List(); + + foreach (var filePath in tarFilePaths) + { + var fileName = Path.GetFileName(filePath); + // Find matches. + var matches = rx.Matches(fileName); + + // Report on each match. + foreach (Match match in matches) + { + var groups = match.Groups; + var bundleId = groups[1].Value; + bundleId = bundleId.Replace(".tgz", ""); + + packageDescriptions.Add(new PackageDescription + { + BundleId = bundleId, + FileName = fileName + }); + } + } + + return packageDescriptions; + } + + static void MoveDependencies(Manifest manifest, IEnumerable packages) + { + foreach (var package in packages) + { + RemoveDependency(manifest, package.BundleId, package.FileName); + MovePackageFile(DEPENDENCIES_DIR, package.FileName); + UpdateManifest(manifest, package.BundleId, package.FileName); + } + } + + static void MovePackageFile(string folder, string fileName) + { + var sourceFile = Path.Combine(Directory.GetCurrentDirectory(), folder, fileName); + var destFile = Path.Combine(Directory.GetCurrentDirectory(), PACKAGES_RELATIVE_PATH, fileName); + File.Copy(sourceFile, destFile, true); + File.Delete(sourceFile); + File.Delete(sourceFile + ".meta"); + } + + static void UpdateManifest(Manifest manifest, string bundleId, string fileName) + { + //remove existing, outdated NPM scoped registry if present + var registries = manifest.ScopedRegistries.ToList(); + if (registries.Contains(sVuforiaRegistry)) + { + registries.Remove(sVuforiaRegistry); + manifest.ScopedRegistries = registries.ToArray(); + } + + //add specified vuforia version via Git URL + SetVuforiaVersion(manifest, bundleId, fileName); + + manifest.JsonSerialize(sManifestJsonPath); + + AssetDatabase.Refresh(); + } + + static void RemoveDependency(Manifest manifest, string bundleId, string fileName) + { + var destFile = Path.Combine(Directory.GetCurrentDirectory(), PACKAGES_RELATIVE_PATH, fileName); + if (File.Exists(destFile)) + File.Delete(destFile); + + // remove existing + var dependencies = manifest.Dependencies.Split(',').ToList(); + for (var i = 0; i < dependencies.Count; i++) + { + if (dependencies[i].Contains(bundleId)) + { + dependencies.RemoveAt(i); + break; + } + } + + manifest.Dependencies = string.Join(",", dependencies); + + manifest.JsonSerialize(sManifestJsonPath); + + AssetDatabase.Refresh(); + } + + static void CleanupDependenciesFolder() + { + if (!Directory.Exists(DEPENDENCIES_DIR)) + return; + + Directory.Delete(DEPENDENCIES_DIR); + File.Delete(DEPENDENCIES_DIR + ".meta"); + AssetDatabase.Refresh(); + } + + static bool ShouldProjectRestart(IEnumerable packages) + { + return packages.Any(p => p.BundleId == MRTK_PACKAGE); + } + + static void RestartEditor() + { + EditorApplication.OpenProject(Directory.GetCurrentDirectory()); + } + + static void SetVuforiaVersion(Manifest manifest, string bundleId, string fileName) + { + var dependencies = manifest.Dependencies.Split(',').ToList(); + + var versionEntry = $"\"file:{fileName}\""; + var versionSet = false; + for (var i = 0; i < dependencies.Count; i++) + { + if (!dependencies[i].Contains(bundleId)) + continue; + + var kvp = dependencies[i].Split(':'); + dependencies[i] = kvp[0] + ": " + versionEntry; + versionSet = true; + } + + if (!versionSet) + dependencies.Insert(0, $"\n \"{bundleId}\": {versionEntry}"); + + manifest.Dependencies = string.Join(",", dependencies); + } + + class Manifest + { + const int INDEX_NOT_FOUND = -1; + const string DEPENDENCIES_KEY = "\"dependencies\""; + + public ScopedRegistry[] ScopedRegistries; + public string Dependencies; + + public void JsonSerialize(string path) + { + var jsonString = GetJsonString(); + + var startIndex = GetDependenciesStart(jsonString); + var endIndex = GetDependenciesEnd(jsonString, startIndex); + + var stringBuilder = new StringBuilder(); + + stringBuilder.Append(jsonString.Substring(0, startIndex)); + stringBuilder.Append(Dependencies); + stringBuilder.Append(jsonString.Substring(endIndex, jsonString.Length - endIndex)); + + File.WriteAllText(path, stringBuilder.ToString()); + } + + string GetJsonString() + { + if (ScopedRegistries.Length > 0) + return JsonUtility.ToJson( + new UnitySerializableManifest { scopedRegistries = ScopedRegistries, dependencies = new DependencyPlaceholder() }, + true); + + return JsonUtility.ToJson( + new UnitySerializableManifestDependenciesOnly() { dependencies = new DependencyPlaceholder() }, + true); + } + + + public static Manifest JsonDeserialize(string path) + { + var jsonString = File.ReadAllText(path); + + var registries = JsonUtility.FromJson(jsonString).scopedRegistries ?? new ScopedRegistry[0]; + var dependencies = DeserializeDependencies(jsonString); + + return new Manifest { ScopedRegistries = registries, Dependencies = dependencies }; + } + + static string DeserializeDependencies(string json) + { + var startIndex = GetDependenciesStart(json); + var endIndex = GetDependenciesEnd(json, startIndex); + + if (startIndex == INDEX_NOT_FOUND || endIndex == INDEX_NOT_FOUND) + return null; + + var dependencies = json.Substring(startIndex, endIndex - startIndex); + return dependencies; + } + + static int GetDependenciesStart(string json) + { + var dependenciesIndex = json.IndexOf(DEPENDENCIES_KEY, StringComparison.InvariantCulture); + if (dependenciesIndex == INDEX_NOT_FOUND) + return INDEX_NOT_FOUND; + + var dependenciesStartIndex = json.IndexOf('{', dependenciesIndex + DEPENDENCIES_KEY.Length); + + if (dependenciesStartIndex == INDEX_NOT_FOUND) + return INDEX_NOT_FOUND; + + dependenciesStartIndex++; //add length of '{' to starting point + + return dependenciesStartIndex; + } + + static int GetDependenciesEnd(string jsonString, int dependenciesStartIndex) + { + return jsonString.IndexOf('}', dependenciesStartIndex); + } + } + + class UnitySerializableManifestDependenciesOnly + { + public DependencyPlaceholder dependencies; + } + + class UnitySerializableManifest + { + public ScopedRegistry[] scopedRegistries; + public DependencyPlaceholder dependencies; + } + + [Serializable] + struct ScopedRegistry + { + public string name; + public string url; + public string[] scopes; + + public override bool Equals(object obj) + { + if (!(obj is ScopedRegistry)) + return false; + + var other = (ScopedRegistry)obj; + + return name == other.name && + url == other.url && + scopes.SequenceEqual(other.scopes); + } + + public static bool operator ==(ScopedRegistry a, ScopedRegistry b) + { + return a.Equals(b); + } + + public static bool operator !=(ScopedRegistry a, ScopedRegistry b) + { + return !a.Equals(b); + } + + public override int GetHashCode() + { + var hash = 17; + + foreach (var scope in scopes) + hash = hash * 23 + (scope == null ? 0 : scope.GetHashCode()); + + hash = hash * 23 + (name == null ? 0 : name.GetHashCode()); + hash = hash * 23 + (url == null ? 0 : url.GetHashCode()); + + return hash; + } + } + + [Serializable] + struct DependencyPlaceholder { } + + struct PackageDescription + { + public string BundleId; + public string FileName; + } +} \ No newline at end of file diff --git a/AR/Assets/Editor/Migration/AddVuforiaEnginePackage.cs.meta b/AR/Assets/Editor/Migration/AddVuforiaEnginePackage.cs.meta new file mode 100644 index 0000000..d617f0d --- /dev/null +++ b/AR/Assets/Editor/Migration/AddVuforiaEnginePackage.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3bbef22eb814a9647b6c1f03e99d95da +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AR/Assets/Editor/Vuforia.meta b/AR/Assets/Editor/Vuforia.meta new file mode 100644 index 0000000..5db7e8c --- /dev/null +++ b/AR/Assets/Editor/Vuforia.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 830a6bd5feeeb9c4ea096ee3bdc366a9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AR/Assets/Editor/Vuforia/ImageTargetTextures.meta b/AR/Assets/Editor/Vuforia/ImageTargetTextures.meta new file mode 100644 index 0000000..942524b --- /dev/null +++ b/AR/Assets/Editor/Vuforia/ImageTargetTextures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ed76deef4aaffc74590d653945149045 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AR/Assets/Editor/Vuforia/ImageTargetTextures/test.meta b/AR/Assets/Editor/Vuforia/ImageTargetTextures/test.meta new file mode 100644 index 0000000..969d9d1 --- /dev/null +++ b/AR/Assets/Editor/Vuforia/ImageTargetTextures/test.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 05c55ebf740335542bc44bb9da461dbe +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/06_scaled.jpg b/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/06_scaled.jpg new file mode 100644 index 0000000..68ba394 --- /dev/null +++ b/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/06_scaled.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9c6dd7d259b3738805048b0228f2adf48396e4dd989ebd06fd0d22349e2bc58 +size 2903 diff --git a/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/06_scaled.jpg.meta b/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/06_scaled.jpg.meta new file mode 100644 index 0000000..9719d4a --- /dev/null +++ b/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/06_scaled.jpg.meta @@ -0,0 +1,183 @@ +fileFormatVersion: 2 +guid: af78b85e48844ee69e6e4d53778d6d87 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + cookieLightType: 2 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Lumin + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/Lhotse_Mountain_8-Bit_Grayscale_scaled.jpg b/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/Lhotse_Mountain_8-Bit_Grayscale_scaled.jpg new file mode 100644 index 0000000..c7890da --- /dev/null +++ b/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/Lhotse_Mountain_8-Bit_Grayscale_scaled.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc5ef04b2cb1a58078f3e0b3cf3184be35ebd5a2a9be157c7f87a5c9c72e516a +size 28896 diff --git a/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/Lhotse_Mountain_8-Bit_Grayscale_scaled.jpg.meta b/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/Lhotse_Mountain_8-Bit_Grayscale_scaled.jpg.meta new file mode 100644 index 0000000..4294f94 --- /dev/null +++ b/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/Lhotse_Mountain_8-Bit_Grayscale_scaled.jpg.meta @@ -0,0 +1,183 @@ +fileFormatVersion: 2 +guid: ca6a6582f69f4168b8b55930aabf4f66 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + cookieLightType: 2 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Lumin + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/trash_1_scaled.jpg b/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/trash_1_scaled.jpg new file mode 100644 index 0000000..1824385 --- /dev/null +++ b/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/trash_1_scaled.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ef725f01a3027d3f8bc64422a65036fbbb083b78cc26c3066f86fd261196669 +size 34858 diff --git a/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/trash_1_scaled.jpg.meta b/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/trash_1_scaled.jpg.meta new file mode 100644 index 0000000..28fc278 --- /dev/null +++ b/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/trash_1_scaled.jpg.meta @@ -0,0 +1,183 @@ +fileFormatVersion: 2 +guid: eec26345541b4109a38391fcfee93c51 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + cookieLightType: 2 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Lumin + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/trash_2_scaled.jpg b/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/trash_2_scaled.jpg new file mode 100644 index 0000000..90ad6c5 --- /dev/null +++ b/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/trash_2_scaled.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc9d0a05777982acda4feabf76387a78dd171b8147ac88e6121048b04e370216 +size 50066 diff --git a/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/trash_2_scaled.jpg.meta b/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/trash_2_scaled.jpg.meta new file mode 100644 index 0000000..501a394 --- /dev/null +++ b/AR/Assets/Editor/Vuforia/ImageTargetTextures/test/trash_2_scaled.jpg.meta @@ -0,0 +1,183 @@ +fileFormatVersion: 2 +guid: b16e7c066cdc45f19652f8dd5164ff94 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + cookieLightType: 2 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Lumin + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/AR/Assets/MarkerTracker.cs b/AR/Assets/MarkerTracker.cs index f1bb878..ade4c30 100644 --- a/AR/Assets/MarkerTracker.cs +++ b/AR/Assets/MarkerTracker.cs @@ -40,6 +40,21 @@ public class MarkerTracker : MonoBehaviour } private void OnTrackedImagesChanged(ARTrackedImagesChangedEventArgs eventArgs) { + + foreach (var trackedImage in eventArgs.added) + { + foreach (var arPrefab in ArPrefabs) + { + if (arPrefab.name == trackedImage.referenceImage.name && !_instantiatedPrefabs.ContainsKey(ArPrefabs[0].name)) + { + Debug.Log("New" + ArPrefabs[0].name); + var newPrefab = Instantiate(ArPrefabs[0], trackedImage.transform); + _instantiatedPrefabs.Add(ArPrefabs[0].name, newPrefab); + return; + } + } + } + foreach (var trackedImage in eventArgs.updated) { // var imageName = trackedImage.referenceImage.name; @@ -53,19 +68,33 @@ public class MarkerTracker : MonoBehaviour // } // } // } - Debug.Log(_instantiatedPrefabs.Keys); - if (_instantiatedPrefabs.ContainsKey(trackedImage.referenceImage.name)) + //Debug.Log("Updated : " + trackedImage.referenceImage.name); + //_instantiatedPrefabs[trackedImage.referenceImage.name].SetActive(trackedImage.trackingState == TrackingState.Tracking); + foreach (var existingPrefab in _instantiatedPrefabs) { - _instantiatedPrefabs[trackedImage.referenceImage.name].SetActive(trackedImage.trackingState == TrackingState.Tracking); + if (existingPrefab.Key == trackedImage.referenceImage.name) + { + _instantiatedPrefabs[trackedImage.referenceImage.name].SetActive(trackedImage.trackingState == TrackingState.Tracking); + } } } foreach (var trackedImage in eventArgs.removed) { - // Destroy its prefab - Destroy(_instantiatedPrefabs[trackedImage.referenceImage.name]); + // Destroy its prefabDestroy(_instantiatedPrefabs[trackedImage.referenceImage.name]); + + foreach (var existingPrefab in _instantiatedPrefabs) + { + if (existingPrefab.Key == trackedImage.referenceImage.name) + { + Debug.Log("Deleted : " + existingPrefab.Key); + _instantiatedPrefabs[trackedImage.referenceImage.name].SetActive(false); + } + } + // Also remove the instance from our array - _instantiatedPrefabs.Remove(trackedImage.referenceImage.name); + //Debug.Log("Deleted : " + trackedImage.referenceImage.name); + //_instantiatedPrefabs.Remove(trackedImage.referenceImage.name); // Or, simply set the prefab instance to inactive //_instantiatedPrefabs[trackedImage.referenceImage.name].SetActive(false); } diff --git a/AR/Assets/PocketBaseDataProvider.cs b/AR/Assets/PocketBaseDataProvider.cs new file mode 100644 index 0000000..6843f32 --- /dev/null +++ b/AR/Assets/PocketBaseDataProvider.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using models; +using UnityEngine; +using CandyCoded.env; +using services; + +public class PocketBaseDataProvider : MonoBehaviour +{ + + [SerializeField] public String userToken = null; + [SerializeField] public static List trashes = new List(); + [SerializeField] public float timeBetweenUpdate = 10f; + private float currentCountdown; + + private void Start() + { + this.currentCountdown = this.timeBetweenUpdate; + env.TryParseEnvironmentVariable("API_USER", out string user); + env.TryParseEnvironmentVariable("API_PASSWORD", out string password); + LoginResponse res = UserService.Login(new LoginRequest(user, password)); + userToken = res.token; + this.UpdateData(); + } + + void Update() + { + this.currentCountdown -= Time.deltaTime; + if (this.currentCountdown <= 0) + { + this.currentCountdown = this.timeBetweenUpdate; + this.UpdateData(); + } + } + + void UpdateData() + { + TrashList list = TrashService.ListTrash(userToken); + foreach (Trash trash in list.items) + { + DataList trashData = TrashService.ListTrashData(userToken, trash.id); + trash.data = trashData.items; + } + trashes = list.items.ToList(); + } +} \ No newline at end of file diff --git a/AR/Assets/PocketBaseDataProvider.cs.meta b/AR/Assets/PocketBaseDataProvider.cs.meta new file mode 100644 index 0000000..9d87c67 --- /dev/null +++ b/AR/Assets/PocketBaseDataProvider.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 5d109dd9f21341b3ad486eda9c3e70ff +timeCreated: 1681820450 \ No newline at end of file diff --git a/AR/Assets/PocketBaseDataRepository.cs b/AR/Assets/PocketBaseDataRepository.cs deleted file mode 100644 index 1f395d3..0000000 --- a/AR/Assets/PocketBaseDataRepository.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.IO; -using System.Net; -using CandyCoded.env; -using models; -using services; -using TMPro; -using UnityEngine; - -public enum TrashType -{ - Temperature, - Distance, - Gyro -} - -public class PocketBaseDataRepository : MonoBehaviour -{ - [SerializeField] public String userToken; - [SerializeField] public Trash[] trashes; - [SerializeField] public TrashType type = TrashType.Distance; - [SerializeField] public TextMeshPro textToUpdate; - [SerializeField] public float timeBetweenUpdate = 10f; - private float currentCountdown; - - void Start() - { - this.currentCountdown = this.timeBetweenUpdate; - env.TryParseEnvironmentVariable("API_USER", out string user); - env.TryParseEnvironmentVariable("API_PASSWORD", out string password); - LoginResponse res = UserService.Login(new LoginRequest(user, password)); - this.userToken = res.token; - this.UpdateData(); - } - - void UpdateData() - { - TrashList list = TrashService.ListTrash(this.userToken); - foreach (Trash trash in list.items) - { - DataList trashData = TrashService.ListTrashData(userToken, trash.id); - trash.data = trashData.items; - } - this.trashes = list.items; - this.UpdateText(); - } - - void UpdateText() - { - if (this.trashes.Length <= 0 || this.textToUpdate == null) - { - return; - } - this.textToUpdate.text = "" + this.trashes[0].data[0].value + " " + this.trashes[0].data[0].unit; - - } - - void Update() - { - this.currentCountdown -= Time.deltaTime; - if (this.currentCountdown <= 0) - { - this.currentCountdown = this.timeBetweenUpdate; - this.UpdateData(); - } - } - - private void LateUpdate() - { - this.textToUpdate.transform.LookAt(Camera.main.transform.position); - this.textToUpdate.transform.rotation = Quaternion.LookRotation(this.textToUpdate.transform.position - Camera.main.transform.position); - } -} diff --git a/AR/Assets/ReferenceImageLibrary.asset b/AR/Assets/ReferenceImageLibrary.asset index 87d95d5..ffa793c 100644 --- a/AR/Assets/ReferenceImageLibrary.asset +++ b/AR/Assets/ReferenceImageLibrary.asset @@ -17,7 +17,7 @@ MonoBehaviour: m_DataStore: m_Storage: - key: com.unity.xr.arcore - value: 0ab02b9d4efb42cbdaa24226a06443029001438bbc5e43f8559b422732634390a44d4312c0cc42c8b56c4309115743bf700d43452c66430ad6784363d48343b34d09428db11d43ece76c4386f07043280352434ee47d435e59034384e18e421c5a4e4393dc4843cf361b437f00ef427ee332435bef1c43092b0f4326f8cf421a557e42e807084383cb68422831ba427ae67643b7fc464361012643947cc5420fd50243f92413427f175242f0111943946f4f42af667643800a2e43dfc5874358688243f5bb6c436962274311e79b42c1564e4347fe9b42996b5d43e7a4424309abd7411bcdc6426e387e433b2d6f4332f3fb42851c7f43cb0e4d43320282433ffc4143276c7e43c276a94292a5ef42ba203c42b1d037434a24804225d23743cfe86d42df29fb42fe9d4b43cf4b1743c714c8420ba68143a7b81a43ba94bd427b2dc542291b39422da0dd4282ff5743c28f4c437660be425e5cda42b0d09942259f0243e7ee3f43b48e8443da020d42d1c75b43b46b3d435cb5a9415dbfc042b4026d4370782c43c1a8dc42f05e6a439ade474345188643f4122b4308c586423d214943e88f824222ee4843bd5b0b43d5710143780d0d431024f34239dd84429a2b4143a063b24230882943742554436486ab42da5c474309673343c85f01437a7bc9420eb35943b7166243c3d4e3425f350043bf531142137dae42b5e878437fdbce427bdf5543d2cf8442a711814353643b431e250a4298d842430ab1a642c3026743320b534218efa742e44f134312a99642f67e9b4263738543680d31430b626343bae42543ecc3244338501943ee903b43d2e550434a496a438a91814336c99942e2fdb04253a982429c6b3a43ac6b214372806c4310969c4261ee504260fc824369e29b425ca2624350e1b54270df26434ce3e742b73a1743dc108443ee24d74246b56043dc6d84434c42f2425bda1a430984a642e264024377627e43431f98428282d64244d67c43e8a36c43f03a77431b48074395420a43c4c882430612374328f70043aaa9c94141092b42d0a8e74205e55443132f5043b58b5743d1ddd6413cb04c433b0e7543d7ea064355f5724305a69542635539439ed4804231fe6942e1ee6c433a6ae44209c0074386d31d4369bd5b43acb6c84214074c42d285d3410da7b842294d1143dd24cd42585da8424a873743d4923f42d73c184354e7ff41e40c5443546834431bf3ce42643425433539564235cf5b430c647b429a1f5c436c630343e35ca6420832ae423d819a4246a015429652e042dbf0bc4209ec2c4347f8784380e69f42ce652742fdbc31437a009c42c6e94343df8f5e430260324335fe534253788d42a07255434972f04216c330438b488443251d17430256b0424a8a654365729242910f27439a0e9f42ee4f2343ce648842529588432697bf427b55624381f1754371a656438a86284322477e435a9ee04264006d434ad02f43b9b62f4249f12b43732d6b43a76763430eae8543e115004394b50f43a5dbfc418321aa428e57be42f18fa642502f58431aa6614341b93b43e0f2fb42c5f6d442ab3865431cb6054361d2614342672a43603876423ff353438df63a43fb51d34122f92a43d415034378420043e3956c4387038043bea62d428c0d27422a2a8f42eb4d6543c9c8b94221c29d426168a4424da683438349f74261473a43e57e8443fac28242e6f68d424c6419438d732d43677fe1420eda7f43f11aa142c0b98f425c97db42fbc6a8427a301043b6461e43af119342a63f0a4367dbed4282b42443e332804318700d42c5c8984201d09942e5bd37425f660843e5c71042d5d12c43b44ac2420febff42a33c0d435d060f43746c164349eed842cb184c42e4d20f42a009c7423bf23b4323e95e43615f2e43312a7b438bca1a425c2ef642e223de42e7c50443086cf942e0514e4343491243844b5043fde30e43165d3943b5ecb642be538d42f705f341030fbd426c5cb442452a644304e8704218d82e43d3458b423b7af7420cc9704392d121429a760543e8e2134305e56643fa2e1c43764559433b20ca421cd5c9421b1469431b0f69431c0eca425c28ce428eb59d428d22bf4217e22e42ea630e4321bc454354773d435dfc124339cef9422c061343b5fdf84272c52f43847325438ddcbf423a110e43f677b74237fc4043bbc44743ea1f534333a62e433376304350216943383188424d878842cea6054372f35743491f0143dcc582420b2b584338b43e430cd81742de146743f24229436630dd42feba74436a7275431fa73942682b1443bc58eb4278345543e4adf7412de08e42e6e55243b6fd70430136314322493543bd182a432feafa4206f7fb410e121543d13c73436e437f422d076342c6711543939b71433b1825435a949a42d5472642041d784270146143475c7b43ca2c0b42b8e6fb420a326443837f7a42c015f3429ed60a43bfe71c4383be3443d7d86843308a5d4340ae9c42e2f05042b0ab264314dcdd4205ba2a43ced6284379901943eba4a8423cb14d42eb08e542ead24c4296950543f6bc1e428732b942b1604d430e365143cc44014326df1543ab4ed442f25eff42f24a8c42c133d342556276426c624d43741b47432648e54257610d431e8c62436bdc46437a9fd242d709f14140cc12422ab40743584d8c4237e22a43cd70ab42472882434f841e42e05d5a4240b83143fe3988426573b142ac14074369d12942b58f0c422f90084343a8a642f7367a43d4ab4043a7c61443bb18434347c220431f6b1142561f8842ea8a9e42003d2143666d9e42028d0943e35f5b430258844307dc7a434a79be4208d3c642e1665b4308d0c642a5984b43dcff474337e88742af272043d06684435e41534263946443af5e06432ea9de425fb78742553b58438e7482423279da4216414043fc6546434b171143eadf7e42c0f89842e57e01430e60cf421433414347db1f4330553b429aab4542671a6c433302594342ef2143978f83433ccf32435b4e6943c92a2c43ea10c64215168243d86d5943fe7615434ccb114303e8de4287626843067072433ee50543ada8d04280503a43f0190442ba3b02436e75f7411aab944292d15f4322d01143f4d90943fc2e424369d7ac4263da7e4394795a4240f0504353f32f43cca0994267c70f430b837643356fc9415904814356ef7f43ebf794422cc34043f6afe5428a86da425fbb6e43bd10c242a9cc82423edccc4267a91043d9ae094319832d42ff007343e8b66d43284f4c439d3f0d4341c21943fe10e642bdcf7e42a1e39b42fb5f3e43d55d9942b2261b4334f08e4243623e43c2086f436d30db42ccfa3642202af3428c030d4343a7074349c8c942b8329042ef61be424827834239db2243d7bf6c4393035e4351a45c43230215436fba7042050c664347654343fa88774354960b43a7839542a94a584304986f43dc324e42afbf23436ddf7642f0a92543df2182428f042943803bc6423a79424367453a43abe722436c2ecd4290430d430aac2143de833a435bf26b43661d59433faa7643b45d3343ac106d431345f542e3bd6a43d0b13943986b7143529a0f4354312a43087715439619a942c0b8a642c3c00843aefa46437537b842d5cb05433cde0e425f5feb42f69d1f439e202343eabbb942e13ba742502b37437b88c84293c61f436a5a5b4334522b4337091a43170e964202e9eb42fc1371438f77c54286d46643730351435a7e59429a9c5c4309c47b439766c24209560c42297c7343ac628642d43da442d976214308b6a4420d13ad42ff83f0422052d542c8cb2d434372d04280033643723e67431b5bf74221e27c431e123d43c7062c42b01c324283cb08420fca8e42fa9e62431e758a4346c04d439e3b834300026242d73b5f432c9e26421743434352f16042b4973b436d1b2343fc1c7a43872e5743f59f1d43e8c3b041194a4843b3724d4265938143cfb50e431ff842437f318e4210708443b0a6a342a5331943077e6043a6da3a43bfb20d43b6887a43543c5d43e6c33b43b5ce1e436fda29432e503e42743c19435b03524303891943d4bc6a4321f12343f612514253d15043becb2743052b024318c6814292cf68438dae58432a8f2843861167436a705d4327002143701b2842c4b5a7421374a5425b545843dbd0a6420b474b421f72e9429fd00b43971c42438731594360fe7e425ccd7542c43a25436c8d4b43fce34b432abd1442cf5a3b4292698642b1b39442dc8b5043d4fdba42138e3d43ff2072432f792343e1837b4304c54642dacc41438e010e439309d842c2290f423ede6343ac1a3a4234b96b437310b94276ce81424d207943879df4420948374397565f43855ce742a34d1b43fbb5d6412d892843b7471243a2da2543e9fe1843b887f4428d7e6043459e77432bdcb342b0ce0d436957934242f74043a6edd5424112f142ed2e674258541e432dc69f4226ab0642491d824323a92843b834504306915e432dc953428c588542db5bb5423e42c24236d7d842858862433dc21843647a4a432f114d43a5e66642855122423ef75543335c8543d7b4d64245b4324311bd30434db47243288d7343bfe5a94291cc35430d1a144282665a43c0568d4250cf9c4243046f42f475ab42bdfcf142ea5a87422e683943c732694308a75243c1ec7a4350df5e4332d18e42e4ea434329c7d0428cae8143847c1043fa476c43b11fd542739f43435292964235ecca42c2aa394311320b4397fd854322ad7943ad2617430348cd423b6b294230663a424cb33d43c3baa042c56e1a43cc1ede420676c84202975b43ba0c8b42b453c1420139174292387f43e6ae50432d3dfb412032ac42cde67442656b3f43096d37439382a9424d89a4424c57f042e1bb00437ad55e433c6c43436ed2a542f75c664367aa3d433939ed41cd74c74296d1bf42521c6a434c97344347d34a43fbc9be4242697343cdb2b842a8020a42c9693943707b4e43982e8443dbb083431114f442f2eaae42a44f3743ba3f65426f908543eef0dc42ca20e4423c106a43989145433de74c4305688e42434c66430fc54a436528b342bc363f43c8afd94267696642d7c78e42b1715d4328cb2543b6a8314379f264439cc63543e2d46f43221fb4420f9948432af91a4331346743e1f30e4344f68043f83c7643d3ed2e43aa90b54223b1d642fce4da42bf015443b0769842362939426b59604318779342fab7b242a1eef242089881438165ea4276469a42a0eeee420597534328a5b242566e2243f267ef42977443437f8b654267b46c432877e342f8f81a42dd77f44284505643cc85f442ad854643899a5943c94a36433cec394388a84b4377c03f435901654340b335435d03504305991343a8d189423af1c5425190774312d5134377f00f42316f16437ff28f427bdc5943b167a742bd75a64268782743eecc24431194e74296da1e434eaa6643c005274305f1f142c85bcf42079b4643ef788542cf0a3043c4c15b432c5fee4283146b42dd3b4e422ca19542875fdb42b8da4942019f2e43dfbc64432c5463431a107e43fda5f34210758143712227430c0364432002694297952d4323e54f42bac7a642a01149431262ce42821f304220ee3643842346438cd3d2424f93f54250518342a36ea942131ec942fc5ce242df1d09432bfa9e42f0d37b42737239421f4ccf42476d6043f46fcf422eee504309375e43bc63d34248fa3443ddc31f436593834369062b4319472e43aab353437b22fc4203f300436348a7422da13043354d20434db872439bf07643b7197443d73c1543feb875434c242243e0ebdd4243e3504361033742feb42f43ca10e7422ac1c74287d94b43b9baf5424de8ea42f8ecb642b6fc1c43a8fe79435ac40b43a82ff7429d000643eac843438421144284b45943fcac054385a00a42abac4c43268b4e4214516743acb3f542ae28a9423935654313b6f142cabb2c43c42bc0427b6a41432b6d4243e47f6d432a8e184329fa6c43d3066d43030d65423f4574433f028443eb1c2c42f33e5943878d6c43c8e59b426be7524396ed1c43d9bd1943bce8874311687d434f6de04230850f43296acf42d2735643596d4a4338f49e42a5095e43bd627143ebca4743cae5264257cb8142eb146643eba15543e97d4c43a176f44202075143c55642439e3e304216ace44288a1ee426ac61343103427439c76f742ed574f42c45f3a4284654a43a879404392bc48434f3536430581b342c565814377416c4382353b4346c59a4209ce6e43951c5743ad84e442780950426c29ab429ac22d4272f85d43ef098242112d7642009662431a934c438e04674320204843cf3779422013514392c08942c0563f43c34818438db581437f4ef841137655431aa10543f5356143655148435104594326ff0a43b83d1d431fea6a438c6662437ccee04227680443951ffa42e5701e430b02d742bbb2b542386e23433dbb1f43bb109442b8cf9842398128438b161342a60c344388a9634377f06b4338013243c2440342bea3464339180b437f580f43b078a5427045cf4268aa4f42ae938143972a6343816a2f4245d27b43c937564398828043ac9c4e43314da542c0b01e434b413443c326fb42ec6a5b4304e0a5428fdb484346803c4333cb6043c35455432c7e26425868f5429cac214345742a428d2f6743dbfb564398b82f439580d842867c2f42e433cf42b94f3743108138421af3b4422471e041ca48844216c60c4316e9e94268636a4270b75043a1c37b42d41d6443367cfb427189e341bde2804365bd4843ed0840436b7f714378ba6443e7d8a742066426423af2644295056a4399528443362947435c94054320b42743fb259a428ab85342c0bd5d42af1d5a4302149042775f8842c061e542ac7044433cfc5b43ffa0814381b252436ba55743f2a510423762f7424203c142ea0ac242c5b2f0421151af42eb617f43d9b613435510d941bd599842a8098242b31a6343b5dac142bc571d431723074391db184310d9cd42def1d64227d91f43e7401943f9db0143004a1b4232126f436f00724375302243982eac4241f7584264d30d42f0f847432d8875424b155d43c097cd42098aa64293937842f9cb104224ebeb42179f7d43d792d842a0dc6e43da1f7642e2834443c07c6a438bb77c4375bdfb42a3213c43652cc642753b724303a53f43ca8f5643699950435eff1c42ac865c433b784843e0705c4364f93b43178a194340aa8a42f18b6842158882421387f4426d4641434f171b4383307943f937d442c006bd42ec4a3b43ece531432c501543dc5d1c4338fac442382d284212a2c542323a6542590d8843b29e0b421cc61743533c1f43e1fb664390252343b8d91e422b23d642b903f6425f56fa4233ee0643106a2743e4b42e424e9e26436ca7a042c986d1428f3c224387baa9424f0040437a552a430ffb7243fe86d642774a69432b7f5043c933d54186130042e5c019430b6814433a30ca42c756f542fbd23d435c4e93423ddd4f43429822437a015d43fb81154336bc5e4330a76543ef92d442bf68d741e11a8543bbe34642523eb041081cd74170748143fbadc342cb7d2243540f1f43a71a4f43286a3443445b5b438e1f1a437fdb3d43a88fb2424f8303431a78d74286720343a55c2442a9716243c3690b43dfde1e43db2bb042714af34273711743a2821f4385ca2843f1d2764385066143a7ce534303df2c43e178cb42f5d41a43907b0c43a740d942c702d642dd0f534376b9674338222142122d08ac0210ac021d9a99193f222036353637313034383664336334303862393937626465396130393933323633391ab6050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022ad010a280801122439363261663032312d363561362d323936362d616165662d35626166346232663162616512280806122431626333336263662d383633372d323732362d613835652d3234376433313866656634361a280806122436313631656365362d383961342d323732362d616164342d31643566356364366461376522280806122439343738356132372d386138322d323732362d613933372d3135383463366663396333365203312e32a2069d380ab02ba98c8d08ab6853c7634402cbf3ead726d1154be9201fdf7a6cd817ae00d6418401d93b225d9f54d4091029f29b24b68703d9863d43689fa9ebc49d2c2042a3adab28e3b08a38a525305d3ff97aa51eff9b1f4858a8b2062fd9554492f004887ee3d7a9b28991684c21d0196ca0b03fb49afd630c8acf0ff983d124c016c783fbb9592dad24fc4a04f332b90472f1b689411719352a1690e6686961a7e33ea216b921ce2acd72d8664624cbfc3f0f47fe6917efc47dcd14773883c9120b55329cb859546c709e8f41a95060f11f2775d423206ab119a387b703a8831b348da6674fd0608f420619460a06ed42cb8a2a6c835763492e5d20e0f0ba3389dadf9de338d05e7559f1205454460d4a79b94840b0b7405226042d7b84ffe69ea96de6dc767826722315c2f0b5fc9b9624a5daebb703a45023d422ecb3089b79c80fab37499822e53347d40228e1e82975cee4c471195435277b5909134e8173bc895daad78ef0c710af940d508da465de33ce25cf215f2acf3d42559e30a9f2c9fa592a50a12f9d547c0cf288da7048c1544293084b19bc1e3c9d1f0fe72661e9150b3ed93b39207233fdcf34e55132f100d6cfb8cf9e766276ad7e79a18c774bf1bfb74afe352d5b53b001df476317fa0cf022565aa7fe420b3abdbd11152329af5f459502fa81651543083abfb8d29539870e7206662c12a508fab32731d2b0cf86f572e4269386f25ca2c6668c3b5d91e9483f558497a95e0d8ade81353a0508d857824f186ea9384495816611581e79a380af5545c70aa4fe05335329affaeec3815c84843439345947aba4ab84a80e2081a8dd92aae991341b1c58d73e181de619a095e60845514d01b558476db69d04cfab16f9c41117b401c7c0585cc5983bc925cd608a80f00ec10d42902a09cd64dae18892c23af0819d5202dea660cb437f891b2389abed15068278e677fb8c28b7fc9bcf089dc9c8e09dc651e776bc9fab02befd4783c36bea2331dfd5d1839e0e445897f71a23601e7c40a2db6aca29966d30e77173bae8868477002f5306cb66940272eb94a5a5e1f38708fe0f94f8415f9d9582c0e749f0df47adb00c6df78adefab2a0d0832517803d3e69635de89f76398b72542c0a3a18756b423d866420359c49e454b424acde14240ef238df3e5ff86da97a057cc75b8e5515e0fe66c0d0fbfabfb67df417264296f35119da4f5868fce8768b1cfd2428f3b5edf939c6eece375e5fec7ae550516a89a25ba6f3fbd555dca8e9239d91351a9f675d15b9559e50b2cfbadd0bc8b625dbce5310c0f82826d185ae4e16241939843589f2f883b371053807b9701caa55c0e308582a6f5d72c3f4585975973d569383504db2e62bd5d5413f06af9b40617047aeda4846ddb9929212dc6e20764415f66980d7e208c973dee3e5108c230b8f1d1ed7cb802b19349304ba5958ef89d4946c069314b9fa20fb522211499ba25a19338f43b5ef31099d4cbf34bb0d877007f92c6e5989407a3a7c300dceef1940e806f6439ac855f5b83a7acd1e52b143619640330150b716096d7cce562bb177e2438e60a8b9840ff8567019c3549f60eb9be5ac37a424a4e965736a4890fca75309385a59ec83b3b6886439467373b0d9b04d8ccd15647c542ce84c506c4c7eaac57cfc9755a2452d899fe13b4afe453de24c296a06d13f8d68ab47458070dd82a69f2132828553878c451eb157ec3f084a4348b0b97fcaa10e3d2843fc7eb2440c7cc3b442695668d62c4c279990312e1f9af2db6d668c84ec35941805de090eb04bd445cd3105902eb1ad0bb9a5e94e834c6f298e64f349c8e379b930b05a682d5602cd26958ed8e64835310328858202f57326684e79160f439181b099b69338ffa3db709196479c463eceb0ee36d89279021ff9711416b1f2d4d7b60edf44faeddeaa758b0d4d3480064ced6a40cfd6dfd8d4e2058204b06472cd533c8df6f15cd30b7c25c0bde8d1475d49b5bfcb650fb7b14fc585cfb76ba34c254af41e99c0ba8f64e77a9649070419d4be147aefb51f1f21d922680ac77d8645e2991508f08f912081f1426c4b8f61aefe0a4d30710c319aced09f1122644e25b7e0182fe40ce0473a71ac18fb690e9229286c2a806b418614cd1696882e40b347cb368642829ddb626850d118ea803c8eddf2c70e49d783027b6ed0be1295d9fd63ef15d990bebdae0a8fb208564010b65a322d3c2440e5393c00df52410a656880024249b314c7c5f5305b0680698206697e76e9e39fea5571efd03cd39073a639f6e8021fef7f50b260463d6d0368cff41b0ecc125e48d9e6d3b403545e0222848fcac8c58551a563db03db893565b654fc5fab853ec6729dead000a01d2333f654642512d393041a851bdb8df4403356f89faa5e58052a8c02befea0efac2e21bff79e5d2789bb386ea559f6402f39ee568de8c2853263629af4b819b7b6893fccb760444301596eb76ab4275108c04730ff3b846b34e42fc9a6323c0049654a24e80f5dca3ce33340d9a86afb46941bfc8ba0ca89d7852fdfcd67945092fa75c8cf893c0466f6a9166ce9d7a03863a7f1a5d5616fffe705eb9395a18a5e73b98e950ecc450ce3aaabdb2b1a1738249aee926345c03efaffe1b6ee8e5fe20e808894c54e84bf8abac8bb9eb9e38f4b3663beb8defadfd95d12d60426b647450a39052500e0f5c777d0da5b7436e528634a2357fa22735bdf3c48ec4a2815dfa135b0af473b1a2d9dcfd4ce2579427234c9066a8475403a18275a6f81c75fa3386d49eb8059b2f58238de4ece30e53c50583f582d3bbde58afc3b0d5c336c9e2706ebcf82da1b85f2d498c85cc9223f4a967004d4cc6eacca48e49946d5557e2ac8cae0519a264b7752dcd214d81a259b69ffe7f36adae095742a4fa31c0f87460399674557584c897c71d9f997fd23cf24152a144cdc26970e31c2cc6e9adfab6f6e824f22270d4669a01fa388c7f8c26cfba4622812028beb5085559feec75fb89f20e7cf7dee99cd037b2a51e375cd2b2a5230ba898e37e0c7740f5f728f3e8cd76af09c57476be547caadb0830505ea59e4fb4b8627ed3a384210954010b8bb1ab3240e735f715e458f63f8a07caa2a3950f0b5d034b3c33b280f5dc7435ac348fb562f9c089994d31b252f0d89908f4fb0d1243bb9d36bda9663d281889deab6f97de43ed53c12dd95994a32bf73741929f9242ab9a37b36b5ecf995a6c0a05c56e5115da697173ca85a1729e4c5442e638a5f9d068275c83fe591d77c33458ee774d3dd74d833554e37880525f20bd8f7fe3541ae5da6a853842842e25c4f1d2141f8b1e5544f0260cf2545b803caa7323cc0c795b3d3d88789a021a37e165341478652306f99bc2c46f7d276681c2b4f6170f24731385f097e2087182f5b19f029dde05d52a0cba4f5777f14a51beca65f2aba20514bb2520374fa7297207c59632f5283502bca00e047ed8b8cfaeedbe41cf7882f834036e70a658086bd43933da39cf22e4428c50201123152dc37778ac2a94569b80ce793e9a77d3a684e6273c42d06fbc77652e0745d3e9e968ce92a8f3a5d69871484c031cefaaa7769f4edb8fe3aa752f0e8e2cfff30fba341fc9f44dee041eb0a3106e44e63aaef92d2e4a730cc03592606b02267c15c47a809e29f6a5cadb9023cb3e8d7606905802779029fa1f933f51ab09bb0ffa04f2d15a8427740f528b6160e476030e12995899fd7f083604357b03f796a8a023222109ea21515539f39562f356b7023086cde48cf6cc0ea2360f939abe3254217405f479de5e892222875f32c83866563409d4781a704af481a8095ae268732967ee3ba4b93419033c646a03f9233e5dec0d2cd1fe56b83281f7565b802806533b6de0378849454fe9b7220119e44031540779a8a2829233819b40bb21d9d8c638e3acca3671e685145253565283e42b64156850995cc1e3e56f9384b2c4e7401ce049c18ed625381634340b000d57a18654c01be9896a6540d7e6c1589d7935ed37353448833426d08b8455efd1b58d8d5a57df4d86090d92f841e9210a1a480ebc7e0ec6a212a23fe0525f27f3faa84643eb8f0d3cd1d95dc81d10f790fd063639f10b6eb9ee15797dbcff2d82281215c5f1fd4993871a0a485795e29b3b5746fde8ad743796a80f0faa312cb173324889bed8754f82ff731740b1c35be00484900977563fb540ed96cc49f265c1c2b1ab1de34405f6e302135c1c880c0958d89e3200274fe194ffed38f1c8cb0486900c19936099f2b35955c592186e9118701bd302d563d57eea8739b09699d5624cd7be5c769e2bcf5fd7423447df30793978c8e9103231c29d7e8f0c167b7a7bbbd9eb8e2d0c3acd104652f4f89c2cb056300be692998a67c66cb12b6b2282ef8592f6bb8277821c25a54d64a466549c5d75ff5e5513359c0a7750c7502e8bfa7f4ab25805976514d55589baaac380d64b3f26c67dc5a3c586b53cfb614250fd803d890f9ab23c278b853f589d6c4c70f93a19344db5ca846f97ce3f427ff21e34048f280f2244998bfd630951668be7441d36000795454d20fe021454d1a8d6ea986cfe995e9bab626559ed7ccdf43505ecd37418b89ef1274cef4c02f45dc345346a89178c817459da894978ab4389940a7d087c781b00ffd67d9b2e7e8a6d61b8a969e6b99d32a803dab302d142a1fe6c1f44a38bb49f062cad54bdf74b3291611582ca38c02fe23847ba2411f8f475d90dd263f114f6acef26322339879af47a5136e60e88f9b92a20c1bc4348743997641cf9132842b5c8ac314537a012e05013209232dc84c7d1c1fee8e8bd9436fbd95efe1d401b2809f278994d1a4009d3b077de3306368f2330d67d52610bedb84920744acb17852241774855b80edd3a9f0578ea5c1a963864453ebd56f4d23e29e885dcd7aa1f36dd4c1d60f66df2a57e3792e258458b0d668c6fd80107d56480d459557fc1c72347232ea3854f0b742cec02705a637d19b4b4e8049fd554ef4fabb959b546c82e8e70b2e46fcc8e0154810a5657a6a455cac2aaf818ef2b82f346925341242707676a0f33c4b7c27f5f2c30108ec847c5022e8a454efea4521bb74086fa50c8205d270f035fc0968061a5bd05d295b3d360a98efd64155589846ba84a0926c030915994c54dfeab28d10f64b484a4a60090ab8b23e46eff2df2682c911a74cbd8224c577be6d8e348d05f3010ac9de19594e92b62c5248c434375a17f92237cd7f930540a0cb2b97728c254c20c49b9d3ceccfbf178834a3f68078e7c0886eb4eca14bd576df33b425235b20d239bcf19434fe60a4024e79d976866eb0f3722639a3c997ca594c2eec35bf4c7430d8d9db07eae542507fb03a7660342c688c04264f794f7d06748e2af83018fff6ff3bb4960bb236d8363ebbd116f4241253d06f70fc2a8f69710244d55003963d40c45cd00b92462b54f2fc4b0e8f3b32653ac8c94021645475db74485ba811cc9cf983e596d9649803e224ef04045ca94f4d249282c09e4b7b92c434a70682362d3def278efa6d5c958432b207655408df02c02b14e63d49b4c0bb5e23092ddd53296f94177dfe419d13f32fb3d8a401385f1d8df184300c17bff061079cfec24aff3334c04fc26d09195f1ffb499f5ede5c311c329d0f41cf03abd3fe0e2384bebdc7ce588b5a21a116a710306d1a49b3870c05afef0d69dee62f65008d6c2b929ea8b44c07216a2e15cf4d0ad4df88bf84f3c3d4094181721b34991f71dffa2254580d5b05b7bf59c46b9fe83a075ca4a1973d8700b59a84813be25d71b5b0c19c40c4e90143efc7b3bc2b4205c80f292d90466265ff35f4375af562f1a9ec3cacc058278b64ef89a36b9b2b15a0dff48fd0ee442b41990a248ad580480caba3d95f9ab9bdb96fae02c783544f9d07001618b7d4c8a12a5deb9b3031832be08472e858427041718c0be0e85d965464fff738968e9f996bc22298b423daab9bcd3d30a8d29172a1c663e440209bd07951ac8957bd824e38087d9852a3095a8c20df31f381342abc931f2cc7a082c5a16feaaca8508bd04be1907b1a399f888cd3093f6cb3033a502c4c63f0dc0f2287749b620e9542fb4e2b001875bf63bc80d7e50ef1ecc83e3b254ed8f240b8ba195a64bddf580bef6ac90e843e54dbcf775527bf40ef8b5270b61162764fd60293cb127893f1dd400cd99baf0727c2b17624d9a3ecf6579f4e872ce64f3cab34e1f7c0252839e5f40b0deb2ed40723f9a90db4539531d95a9c0ff40c081c35de5000fe5145d49d245a8a4d566797b4de6d9e548a7483c20817f98e8888a450d002b948e8a7d1a6b3274d26038bfac6a41da9149c7c521a52fe07d49add7a8b8450980ae464593a349f7198aafa2508ae60856cdd74568a2d02e92874293a253b8754100001c6e028075fd5e05a850f4b9521642dcbf63315e17fae56fbd1971095fa778800d2546f9e20b7d7e3391b038b5344095a7b718c62111ee6e767e2e09b492b43aaf670efe625097e2676df5df66eca050fd3c9e88930df230d768d5866f09fc6cc0be6f23ec0cf0585eb825620fefa906f36099f7fee8c5cdcd323412e8a2c062d8285f1d064667f7f09942bdf92e786c54d5b40d20639ac62a53975a958aac717f13193bc85c4bd8a72c6929130999ed13bd8547b0c264ed292e7e5286232cc197a41ad93b89ee23474d0034dd81f110df60a9b37e77e1f4e28796b2910e7494c6fb7d890283b649d8402dfc8bf28d4e3d33b91bdfb24390678a07358f382c40598f52c74b1b6143df9ad9a9a9554e98283b2c95c0df448d55d4b760f7259222d59bcdd689dd0c46b175f7445bf59baab188322c8a92d802a075108b241914181524ae1e1b48a8ce5d72ad42f260533f82579d45bd595cca5d03c18b4002ed63e6743566bbc4be20b845b468948c25ee067fd752828f762e9de505841d9fae8c8008a2ee10a4b8910bf6452905e5f6d8f8d2fab5c86c92138aa8e90a7982e772428673e56e8e96e9ddc333b4f5099d42a883ed0977d6d01eb9c9a36cbcd42a0eb9c5a56571b373db4d5770a457683ad68d3834f518bfb095140c20535d8d68583ef46f2704c9586404645fbd2891dbcc5a2778784fde1896eab5316532efda66f2490df6fff32c7f35546c005c68b80615658cf3cb03f4c1ac1a67087641580e66be2286dba57faab438447609ab8d9190e27f9232e57ec4b24087db6634292e32865f266d996332372e8976db1547420d73ea71fd3d41735a23879e0f5e50519a3882fc3abe8965f5454092be4137480e3f72536f33c988ce48d9853405055a7e8eb2d9292324cf25b91abf7e323130234dcd98341842b23560b492e60e837cadb92dd959df14d9310f40de2d5b6f8d4def117a35d92bdf0b412f0537c9332e1743aac1639255dab721af2760e215bc9bd324abbb82d79b5b7085f18d3c15f0989fe2c4d16aff436b9e712fcd545134c30031795e0fd870e15ab6706ba30477084f7c7d97706e727209983886c3092e075a322d29fc96a9e0e973ed7912498ba399cca7122026706747eda8ebfa57a930b7438f8a9783e7aae84d88c3fc463bb75963ac4810e64f9035e4603da4a47ce0c2d9f93536db74743ba5253a23ac942b3867a726be4c658064921590c8733fa53b9df6c89431f2b925fb8a09f963332c0366a358706d6c4a5735f5f4e4d120478c38d05e5926e1969bffa7d0c1c6112abe35a70c22e22da085dd58082f24d65767c84e40bfe4276823f020356358f147e71262b74b78ea9d222be5bd34e452b4b797bb46523564a12e70c808004b605d809037603ca02035203860103200322036c030a03c40103700306037c037a0336038401030a033a032203480304037403920103280306039c01052003f00303fc0303ca0403a60203dc010382020306035e038a0303e00103d0040306031a0362034803b20103dc01034a03e002031c0342036e03bc0103ae010368037e034c039604032e0326033c03cc01031c034003820703260338038c090304037e03680310033c0352039002030a03a60103160312032e03c60303860103ca03037a03d20103ac01039401033c0316031803b601036403c20803d00303a00303f404032403c00103b201038c1103bc0a03bc01039204036203da03036c03ac0203a40b03ae0103560322033003d20403120370038e020390010303d40103ec07038c0403c60603d20305600330032203300358039a02034003da010364037a030e03ce010342038a0103da0c035803f401034403f8010366039c0403c20503ba03033a03fe0203fa01038407033803a80203ba01034203a403039a0303c202039e09036c0312031c03060310038401032203140346032603e401033a034e030603d40103fc07039c0903f402038c01034003d00103e801033e03035e039002034805120358039c04034c031803a201034a030603c601033e0314031c0310037a038401037c030403cc0203c401030603fa01032803860203a404032c03bc010322032c03aa01034a030e03a00503740314034c037e03ce05031403340328033603060312031c03b00103ac020324032c03a20203d201031e03580312030e0344034803f201033003e00703c603035c032803ec01039e0403de0103120362033c0334032c039e01031e03c80203860903b80103a203039401031e03d8010340039401035203be020356033a033e031a035e05ea020312034e034a035003ba01031803960203aa02031a0378039c030344038801030e030e030c0308033c03ae010332036803be04031e0320036c0354033e033a03a00603b803035603be03036c033603e2060304032c03ca01031a038e060320035c0330031403b4010310031e03a2020324030603fe02038c0303400322030a036c03ea04032a033a031203b2010324035a031603ca0203fe01030e035403d6070322038801032803b6020318034603e6120316031e031803280302032a0310030c03480302038803036603ac0103aa01034a038c01037a0310039e01031e03ba0103c80203a6010394040324038c010303cc0103560336039e02032203200303140314033c03cc0903ea0103bc0103de0305d80403200380010318039c02034e03f20403d20403c201039c01032603760308034a0306032e035803b00103e80303720344034a03100312033a030e03480328033c032a030a0382100372037c039e01030a034403ee01038002030e031a03d60203c401031e033203c201031a038602036e03960503360324033603a20103f804039e0203be0203860303300374034403560326033c038404038a0103ae0903080346031003640306038403032603a60403fe0203b20203e8010326034803e404032e058c010348035003960103800103920103ec010360037803880503a801033c038001034803f803037c038a010358031e0366034c033803f2010366038a0203f6030350038001039c01030c03100330035e03c00303a001031e03f4010376035a03d401030403280362038601037c0308033a030e03c60403800105aa0203ca010364039401033803560354039c010306036c03220304031803100308031c033803e002031a05e802036003880503b60103b6020318038a0903d604038c0205e00503dc01034403f2010356033203960103880303f40103dc01031e035a032a03de05036e03b404030803520352038a01034a035603ee01032c031a033c035003080380010324031e030e03cc0403ee010336033603aa01031e033e031e0344031c037e030a033a03e401039401031e035603640308031e033c032c0340030803030a0514056c031e03480338037203680346030a03b8010332038c010346038a01039a02039a0203ea0603aa01038401032a038e020362031c031403dc0303e001030e03440302032603fc08031e033a037003e001038a010378030a030c0342039a0103ac0903d801033403540330034e03d20103aa0103bc0103980903c6010316030603b402038801037803860103300316036803b4060312032c030803e80603a601033a03300368037a035c039c020334036c036e034e039201 + value: 0ac03d0df619434092e7429d4efb42cbdaa2421908fb42b7fe964226a064430290014347ccfd427e4797428bbc5e43f8559b422732634390a44d4312c0cc42c8b56c4309115743bf700d43452c66430ad678430c420843c59e254363d48343b34d09428db11d43ece76c4363f8c242d9f2384386f0704328035243bc002443790124434ee47d435e59034384e18e421c5a4e4393dc4843cf361b437f00ef427ee332435bef1c43092b0f4326f8cf421a557e42e807084383cb68422831ba427ae67643b7fc464361012643947cc5420fd50243f92413427f175242f0111943946f4f421be02d43eece2d43af667643800a2e43dfc5874358688243f5bb6c436962274311e79b42c1564e4347fe9b42996b5d43e7a4424309abd7411bcdc6426e387e433b2d6f4332f3fb42851c7f43cb0e4d43320282433ffc414304484a4310212e43276c7e43c276a94223fcaa427b35d74292a5ef42ba203c42b1d037434a24804225d23743cfe86d423d742b4375bb4a43df29fb42fe9d4b4364925b433dc1ac42cf4b1743c714c8420ba68143a7b81a43ba94bd427b2dc542291b39422da0dd4282ff5743c28f4c437660be425e5cda42b0d09942259f02437d139642ba8ef742e7ee3f43b48e8443055e2543408ebf42da020d42d1c75b43adb12d4331f5d342b46b3d435cb5a9415dbfc042b4026d4370782c43c1a8dc42f05e6a439ade474345188643f4122b4354c91c430f0fc24208c586423d214943e88f824222ee4843bd5b0b43d5710143780d0d431024f34239dd84429a2b414343b408439b164b43a063b24230882943742554436486ab42da5c474309673343227bd1426ca20843c85f01437a7bc9420eb35943b7166243c7be0843c1e04943c3d4e3425f3500437f353743c0284c43bf531142137dae42b5e878437fdbce427bdf5543d2cf8442a711814353643b431e250a4298d842430ab1a642c302674308e238432fbe0843e3bf0f43ef28f542320b534218efa742e44f134312a99642f67e9b42637385437340d44229363e43680d31430b626343bae42543ecc3244338501943ee903b43dddcbc42b34fd142d2e550434a496a438a91814336c99942e2fdb04253a982429c6b3a43ac6b214372806c4310969c4261ee504260fc824369e29b425ca2624350e1b54270df2643bb32da42b786c1424ce3e742b73a1743f4665443f81f3543dc108443ee24d742f74d1843306fbc42b81435431a30064346b56043dc6d84434c42f2425bda1a430984a642e264024377627e43431f98428020c242084d434324b45343faab07438282d64244d67c43e8a36c43f03a7743162e254370db40431b48074395420a43c4c882430612374328f70043aaa9c94141092b42d0a8e74205e55443132f50430f84564393fe4043b5b222430c5a1b43a0c948437d3dfa423e82e84258031a43b58b5743d1ddd6413cb04c433b0e75438f5f07435c4d5d43d7ea064355f572432e9f2d43b056ac4205a69542635539439ed4804231fe6942e1ee6c433a6ae44209c0074386d31d4369bd5b43acb6c84214074c42d285d3410da7b842294d1143a687e6422b359d42ac5c4a43cabb9e42dd24cd42585da842e0b64a430c4ed4424a873743d4923f4245085e43f8973943d73c184354e7ff41e40c5443546834431bf3ce426434254328035e432e7f48433539564235cf5b430c647b429a1f5c436c630343e35ca6429bc253434c32ed420832ae423d819a4246a015429652e042dbf0bc4209ec2c4347f8784380e69f42f9b0ad429fa1104372b25d43be863443afc1404366dd52438e60234304482c43f411eb42d0df06433a891243ad2d0f43ce652742fdbc31431733fb427bb523431216244314402c430ffe2343ac372d437a009c42c6e9434377fa4043fae253437ff641435ee95243df8f5e430260324335fe534253788d42a07255434972f04216c330438b488443251d17430256b0424a8a654365729242261e5543626b2f43910f27439a0e9f42ee4f2343ce648842645c3f4325980543529588432697bf420daa2d435bfee4427b55624381f175434267cd42e78ad3422ff75343f963fd4271a656438a86284322477e435a9ee04264006d434ad02f43b9b62f4249f12b43732d6b43a76763438188bf426762d3420eae8543e115004394b50f43a5dbfc41655a5f43cacffd428321aa428e57be42f18fa642502f58431aa6614341b93b43e0f2fb42c5f6d4420cfe5f4383c90e43ab3865431cb6054361d2614342672a439bbed7426b029642a5a39e42f95a3743603876423ff35343e26b244379bae4421a7c234307c2e4428df63a43fb51d34122f92a43d415034378420043e3956c431d962543e300b142d695bc4202f55b43fcb31243f9b6c44287038043bea62d42eb9dbc42110196428c0d27422a2a8f42ca15ab42b98a9942bef7f042a48a664301196843eca115433387ca42d3c28542b3691a43c21d3543eb4d6543c9c8b94221c29d426168a4428d9f524317c697424da683438349f74261473a43e57e8443fac28242e6f68d424c6419438d732d435bc8d74288f65b4373c3e6428b539d42677fe1420eda7f43f11aa142c0b98f4285603f4336d3e94278b2214308e5ab425c97db42fbc6a8427a301043b6461e43af119342a63f0a4367dbed4282b42443e332804318700d42c5c8984201d0994267d64043a73c1b43e5bd37425f660843e5c71042d5d12c43b44ac2420febff42a33c0d435d060f43746c164349eed842c9a1424333821b437eeee542da6a3743e82ae44236ec3743cb184c42e4d20f42a009c7423bf23b4323e95e43615f2e43312a7b438bca1a425c2ef642e223de42e7c50443086cf942e7cbfb4249dd3743e0514e4343491243844b5043fde30e43165d3943b5ecb642be538d42f705f341030fbd426c5cb4421f06b1428843e442452a644304e8704218d82e43d3458b423b7af7420cc9704392d121429a760543e8e2134305e56643fa2e1c43764559433b20ca421cd5c9421b1469431b0f69431c0eca425c28ce42c7fe404326b31043c80c374343bde4425e4713437f572343721909436df406438eb59d428d22bf4217e22e42ea630e43cb6b2f437b85494321bc454354773d435dfc124339cef9422c061343b5fdf84272c52f43847325438ddcbf423a110e43c5e42f43b2991343f677b74237fc4043bbc44743ea1f534333a62e433376304350216943383188424d878842cea6054372f35743491f0143dcc582420b2b584338b43e430cd817423c4f084352335c43c6089a42f7bceb42de146743f2422943cf99374366f3af426630dd42feba74436a7275431fa73942ce4ef842f29afa42682b1443bc58eb4278345543e4adf7412de08e42e6e55243b6fd70430136314322493543bd182a432feafa4206f7fb410e121543d13c73436e437f422d076342c6711543939b7143170faa42128552431e890643140b54433b1825435a949a42d5472642041d7842e0821c437cfc4043fb5bac42fdb8d14270146143475c7b43ca2c0b42b8e6fb420a326443837f7a42c015f3429ed60a4312851043fa35ff42bfe71c4383be3443d667b142e9149e42cb440543d8275343d60f4143603d4a43fefebc42606b3f43d7d86843308a5d43c0105443076f2f4340ae9c42e2f05042ba6405438580d042b0ab264314dcdd429777054344b33f4305ba2a43ced6284379901943eba4a8423cb14d42eb08e542ead24c4296950543f6bc1e428732b942b1604d430e365143cc44014326df1543ab4ed442f25eff42f24a8c42c133d342601311431eaa5d43556276426c624d43741b47432648e54257610d431e8c62436bdc46437a9fd242d709f14140cc12422ab40743584d8c429f922e43ee92234337e22a43cd70ab4219644c433d56f842472882434f841e4212044943a27b1843e05d5a4240b83143fe3988426573b142695a0a43f782bd420c0a374383e64243e03233435dad1543ac14074369d12942b58f0c422f90084343a8a642f7367a43d4ab4043a7c614434cc6c2421348e442bb18434347c22043201ce942319fe34215fc1b436567d7421f6b1142561f8842ea8a9e42003d2143666d9e42028d0943e35f5b43025884432b6b53431dd2d34207dc7a434a79be4208d3c642e1665b4308d0c642a5984b433d400543f2eb2e4303a752438329d642a5c2fa42622ec3422d75e3426f57eb42dcff474337e88742af272043d0668443d6435e43aafcc2425e41534263946443724006432a064143af5e06432ea9de425fb78742553b58432bfa5d43e11341438e7482423279da4216414043fc6546434b171143eadf7e42c0f89842e57e01437cb44043ba9ac0420e60cf421433414347db1f4330553b429aab4542671a6c43d3a3c1420ab636433302594342ef2143978f83433ccf32435b4e6943c92a2c4305bf0f436e8c1343ea10c64215168243d86d5943fe7615434ccb114303e8de4287626843067072433ee50543ada8d04280503a43f0190442ba3b02436e75f7411aab944292d15f4322d01143f4d90943fc2e424369d7ac4263da7e4394795a4240f0504353f32f43f5694a43ac06d4423429ab4264733f43cca0994267c70f430b837643356fc9415904814356ef7f43ebf794422cc34043d88bda4272e2fb42f6afe5428a86da425fbb6e43bd10c242a9cc82423edccc4267a91043d9ae094319832d42ff007343e8b66d43284f4c438602f74221fa1b439d3f0d4341c21943fe10e642bdcf7e42a1e39b42fb5f3e43dce8ea426f2bbe42d55d9942b2261b43d16b4943926cc14234f08e4243623e43c2086f436d30db42ccfa3642202af3422628d042786fbc428c030d4343a7074349c8c942b8329042ef61be4248278342e8585643dd77e34239db2243d7bf6c4393035e4351a45c43230215436fba7042050c664347654343d187af4211624c43fa88774354960b43a7839542a94a584304986f43dc324e42594b1a4312b699426104d4427f1b4343afbf23436ddf7642f0a92543df218242d324374307a1e8428f042943803bc642ed0dd842a1f32d438c75ad424ced05433a79424367453a43abe722436c2ecd423743a942a1b12f4390430d430aac2143de833a435bf26b43c86cc44299162243661d59433faa7643d56005437db6c342b45d3343ac106d43ac070943aa4c18431345f542e3bd6a43cffee34220933743d0b13943986b7143529a0f4354312a43087715439619a942c0b8a642c3c00843aefa46437537b842d5cb05433cde0e420325d2423d5b07435f5feb42f69d1f4318025443cf700743986cd74242010f436fb655439bb1d3429e202343eabbb942e13ba742502b37437b88c84293c61f436a5a5b4334522b43a65037435594c04237091a43170e964202e9eb42fc1371438f77c54286d46643730351435a7e59429a9c5c4309c47b4325904a43d41226439766c24209560c42297c7343ac628642d43da442d976214308b6a4420d13ad42ff83f0422052d5422ff3fa42f91dbf426313f7421a13c342c8cb2d434372d04280033643723e67431b5bf74221e27c43c481e84266fc2d431f74104343cb06431e123d43c7062c42b01c324283cb08420fca8e42fa9e62431e758a4346c04d4398c3fa42a3dcd4429e3b834300026242d73b5f432c9e26421743434352f160422cb3fa428d4a2d4315335c4363510843e88f9d42418b5543407d9b4273a05443120b2b43460955432c8e99425a86c34290159e42b392bc42f1271b4303fe544342a52d43e76a9e4296813743ec47ac42c8eead42aac8f842b4973b436d1b2343fc1c7a43872e5743f59f1d43e8c3b041194a4843b3724d4265938143cfb50e431ff842437f318e4210708443b0a6a342a5331943077e6043a6da3a43bfb20d43b6887a43543c5d43e6c33b43b5ce1e436fda29432e503e42743c19435b03524303891943d4bc6a43f7e04b434770124321f12343f612514253d15043becb2743e0f2e342a9b51143052b024318c68142666606439c381d4392cf68438dae58432a8f2843861167436a705d4327002143701b2842c4b5a7421374a5425b545843dbd0a6420b474b421f72e9429fd00b43971c42438731594360fe7e425ccd7542c43a25436c8d4b43fce34b432abd1442cf5a3b4292698642b1b39442dc8b5043d4fdba42138e3d43f6b723436977d34286acae4267083743ff2072432f79234356612c43b9092443e1837b4304c54642bc010543eac71243dacc41438e010e439309d842c2290f423ede6343ac1a3a4234b96b437310b94276ce81424d20794352545d4359610743879df44209483743e14e18439f50524397565f43855ce742a34d1b43fbb5d6412d892843b7471243a2da2543e9fe1843b887f4428d7e6043459e77432bdcb342b0ce0d4369579342e65a1b438d360f4342f74043a6edd5424112f142ed2e674258541e432dc69f4226ab0642491d8243082f4b4365a2544323a92843b834504306915e432dc953428c588542db5bb5423e42c24236d7d842858862433dc21843647a4a432f114d43a5e66642855122423ef75543335c8543d7b4d64245b4324311bd30434db47243af42b242eeb81a43288d7343bfe5a942eb830e43ef62374360830e433c9b4a4391cc35430d1a144232a32443f8ce344382665a43c0568d4250cf9c4243046f42f475ab42bdfcf142ea5a87422e683943c732694308a75243c1ec7a4350df5e4332d18e42e4ea434329c7d0428cae8143847c1043fa476c43b11fd542739f434392621943aec31b435292964235ecca42c2aa394311320b43b5f1e64270494343682fe54201c4d04202b41b43a320244328ab1b43bb502343091feb4248042f4397fd854322ad7943ad2617430348cd420d17eb42971219433b6b294230663a424cb33d43c3baa042c56e1a43cc1ede42517024434a6a1b430676c84202975b43541624435c871743ba0c8b42b453c1420139174292387f43e6ae50432d3dfb412032ac42cde67442656b3f43096d3743b0603743cfd2544393dbc042bc8152439382a9424d89a4424c57f042e1bb00437a845c43e65014437ad55e433c6c43436ed2a542f75c6643ffe7c0425df3eb4267aa3d433939ed4117991a43f2042443cd74c74296d1bf42521c6a434c97344307b2c442f3aec44247d34a43fbc9be4242697343cdb2b842a8020a42c9693943707b4e43982e8443dbb083431114f442f2eaae42a44f3743ba3f65426f908543eef0dc42ca20e4423c106a43989145433de74c4305688e42434c66430fc54a436528b342bc363f43c8afd94267696642d7c78e42b1715d4328cb2543b6a8314332f20043a7204c4379f264439cc63543005c56436fb1c442e2d46f43221fb442b1d62143da019a424703494316864c432548374345154b430f9948432af91a4331346743e1f30e4344f68043f83c7643d3ed2e43aa90b54223b1d642fce4da42bf015443b0769842697cfe4210a70e4386cc0743ce6d374367cd4843d7dc0843362939426b59604318779342fab7b24218ee494321192c43a1eef2420898814359d6074336b94a434cf3f942ec8852438165ea4276469a42e0b42d43b698c042a0eeee420597534328a5b242566e2243f267ef42977443437f8b654267b46c432877e342f8f81a42f4a90843f9963743c09a0843ecbf3743dd77f44284505643cc85f442ad854643899a5943c94a36433cec394388a84b43c5b94a439b182c4377c03f435901654340b335435d03504305991343a8d189423af1c5425190774383ea3f43ebda96428da70a43006dd64212d5134377f00f42316f16437ff28f427bdc5943b167a742bd75a64268782743eecc24431194e742b5ea3843f5f90e4396da1e434eaa6643c005274305f1f142c85bcf42079b4643ef788542cf0a3043c4c15b432c5fee4283146b42dd3b4e422ca19542875fdb42b8da4942019f2e43dfbc64432c5463431a107e43fda5f34210758143712227430c0364432002694297952d4323e54f42bac7a642a0114943983b424307c7b04212591a430b36f6421262ce42821f304220ee3643842346438cd3d2424f93f542b44af742a9f9554350518342a36ea942131ec942fc5ce242df1d09432bfa9e42f0d37b42737239421f4ccf42476d6043f46fcf422eee504309375e43bc63d34248fa3443ddc31f436593834369062b4319472e43aab35343a0a29742aa17f7427b22fc4203f3004304f8404340569e426348a7422da13043354d20434db872439bf07643b7197443d73c1543feb875434c242243e0ebdd4243e3504361033742feb42f43ca10e7422ac1c74287d94b43b9baf5424de8ea42f8ecb642b6fc1c43a8fe79435ac40b43a82ff7429d000643a5e9d3427cae4a43aeaa2d439b28f742eac8434384211442e9ff194373da2d4384b45943fcac0543beed04433acbfa4285a00a42abac4c4378d99c424e221b43268b4e421451674317ec42437f4a3943acb3f542ae28a9423935654313b6f142cabb2c43c42bc0427b6a41432b6d4243e47f6d432a8e184329fa6c43d3066d43030d65423f4574433f028443eb1c2c42f33e5943878d6c43c8e59b426be7524396ed1c43d9bd1943bce8874311687d434f6de04230850f43296acf42d2735643596d4a4338f49e42a5095e43bd627143ebca4743cae52642c4412443ec33e84257cb8142eb146643ca33ad42d1fc0643eba15543e97d4c43a176f44202075143c55642439e3e304216ace44288a1ee426ac61343103427439c76f742ed574f42c45f3a4284654a43a879404392bc4843b92de742f8ad9b424f3536430581b342c565814377416c4382353b4346c59a42a4863f43a298bf4209ce6e43951c5743ad84e442780950426c29ab429ac22d4272f85d43ef09824236151143f1915f43a0071043aba75f4355319d42275f5e43112d7642009662434abf9642cc285f4361d5964281dbab42ffcd9642e2a4ad4251709742f8a860431a934c438e0467434dc95343a1a1054320204843cf3779422013514392c08942c0563f43c34818438db581437f4ef841137655431aa10543f5356143655148432991204352aa0243f9915f4346d497429015ae4297c0fd428d0cac4203fcfd425104594326ff0a43b83d1d431fea6a43852a4143ca36e8428c6662437ccee04227680443951ffa42e5701e430b02d7429286e642caf12343bbb2b542386e23433dbb1f43bb109442b8cf9842398128438b161342a60c344388a9634377f06b4338013243c2440342bea3464339180b437f580f43b078a5427045cf4268aa4f425b8fa94271162243ae938143972a6343816a2f4245d27b43c937564398828043ac9c4e43314da542c0b01e434b413443c326fb42ec6a5b4304e0a5428fdb484383bd2b4339c90e4346803c4333cb6043c35455432c7e26425868f5429cac214345742a428d2f6743dbfb564398b82f439580d842867c2f42e433cf42b94f3743108138421af3b4422471e041ca48844216c60c4316e9e94268636a4270b75043a1c37b42d41d6443367cfb427189e341bde2804365bd4843ed0840436b7f714378ba6443e7d8a7421a05604397adbd42066426423af2644295056a4399528443362947435c94054320b42743fb259a428ab85342c0bd5d42af1d5a4302149042775f8842c061e542ac7044433cfc5b43ffa0814381b252436ba55743f2a510423762f7424203c142ea0ac242c5b2f0421151af42eb617f43d9b613435510d941bd599842a8098242b31a6343b5dac1429e142c43afe01b43bc571d43172307431e14fa42133c2c4391db184310d9cd42def1d64227d91f435a22b14220fd3543e7401943f9db01433528e4420ea70543004a1b4232126f436f00724375302243982eac4241f75842bf55fb4215859b42855ab142ecfc5f4364d30d42f0f84743405e2f43547752432d8875424b155d436d8c9a42aeb9ac42c097cd42098aa64293937842f9cb104224ebeb42179f7d43d792d842a0dc6e43226b23438ee4bf42ccba54431e4d2d43da1f7642e2834443c07c6a438bb77c4375bdfb42a3213c437b0f9942013bfc42a5fd5f43de351c436f7fe34267fb5f43652cc642753b7243a42d5f43aa22bd4203a53f43ca8f5643699950435eff1c42ac865c433b784843e0705c4364f93b43178a194340aa8a4200268b4278065e43916c6543aaf39942c19e4a4378c95b43f18b6842158882421387f4426d4641434f171b4383307943f937d442c006bd42ec4a3b43ece531438a523743e3f4d3422c501543dc5d1c4338fac442382d284212a2c542323a6542590d8843b29e0b421cc61743533c1f43e1fb664390252343b93897420e6d4c437af2fd4279685f43e80e9942c65948431bc43f43df513643cc773943e5c23543fe665e43b0edf542f11b5e43402a25430ff55b43fd102243b8d91e422b23d642b903f6425f56fa4233ee0643106a2743e4b42e424e9e26436ca7a042c986d1428f3c224387baa942ed781843c5bd08434f0040437a552a43d77b064320f82d430ffb7243fe86d642774a69432b7f5043c933d54186130042e5c019430b6814433a30ca42c756f542fbd23d435c4e93423ddd4f43429822437a015d43fb81154336bc5e4330a76543ef92d442bf68d741e11a8543bbe34642523eb041081cd741544c4c43a169054370748143fbadc342cb7d2243540f1f43a71a4f43286a3443445b5b438e1f1a437fdb3d43a88fb242fb5e374346ca5b43e7bba3427e7e66432d9610436e69654328235943d8748942b6fc4043dc268b42fec6fa42902c8b42b62d8b42d526ad42bb69654384fd4043ca6b1a4301348b424f8303431a78d74286720343a55c2442a9716243c3690b43dfde1e43db2bb042aa6c2243fde83f43714af342737117434c7aeb4209233f43a2821f4385ca2843f1d2764385066143688c4143cbdbd342a7ce534303df2c43e178cb42f5d41a43907b0c43a740d942c702d642dd0f534376b9674338222142122d08ac0210ac021d9a99193f22203635363731303438366433633430386239393762646539613039393332363339122d08ac0210ac021d9a99193f222034343236326530613235663234363364383139343865316630383236663064311ad80701000100010000000000010000010001000000000000000000000000010000000000000000000001000100000001000100000000000000010001000100000000000100000000000100000001000001000100000000000001010000000100000001000000000000000001000100010100000000010100000100000000000101010100000100010000000000000001010001000100000001000000010000000001010101010100010101000101000000000000010000010001000101000000000001000001000000000100000101000101000000010101000100010101010100000100000000010100000101000000000000010000000000010101000000000000010000000000010000000000000000000101010100000100000000000100000000000000000101000100000100000000000000000001010000010100000000010001010101000100010001000000000000000000010000000000000100010001000001010100000000010001010000000001000000010101010000010001000001000000000100000001000000010000000000000000000000000101000000000100000000000001000000010001000000010000000100000000010000000101000001000101000001000001000100010001000000000000010001010100000000010000000000010000000000010100000001010000000001000000010101010101010101010100000000000000000000000000000100000100010000000000000000000000000000010100010001000000000001000100000000000000010000000001000000000000000000000100010100010000000000000000000001000001010101010000010000000100010000000000010100000100000100010000010000000000000000000000000000000100010001010100000000000001010100000100010100010000000000010100000000010000000001010000000000010000000000000000000000000000010100000001000000000000000000000100010000000000000000000000000101000100010001000100000000000000000000000000000000000100010000000000000000010000000100000000010101000101010100010000000000000101010100000100000001000000000000000000010000000000000001000000000000000000000000000000000100000000000000000000000000000000010001000001000100000001010001000100000000010100000001010100010000000000010101000000000001000000000000010101010101010100000000000001000100000000000000000000000001000000000001010101010101010100000000010001000001000000000022ad010a280801122439363261663032312d363561362d323936362d616165662d35626166346232663162616512280806122431626333336263662d383633372d323732362d613835652d3234376433313866656634361a280806122436313631656365362d383961342d323732362d616164342d31643566356364366461376522280806122439343738356132372d386138322d323732362d613933372d3135383463366663396333365203312e32a206da4e0ac03d33573da87a4f7304a98c8d08ab6853c7f8213955f63e510c634402cbf3ead726f29d32b451e28f12d1154be9201fdf7a6cd817ae00d6418401d93b225d9f54d4091029f29b24b68703d9863d43689fa9a375dcff292ab2b4ebc49d2c2042a3adab28e3b08a38a5250518d8a3428c848d305d3ff97aa51eff7f25bb30a07a7c9b9b1f4858a8b2062fd9554492f004887ee3d7a9b28991684c21d0196ca0b03fb49afd630c8acf0ff983d124c016c783fbb9592dad24fc4a04f332b90472f1b689411719352a1690e6686961a7e33ea216b921ce2acd72d8664624cbfc3f0f47fe23d4e4fd9fe7c7176917efc47dcd14773883c9120b55329cb859546c709e8f41a95060f11f2775d423206ab119a387b703a8831b348da6674fd0608f420619460a06ed42cb8a2a6c835763492e5d20e0f0ba3389dadf9de3eea801c178a8a5c538d05e7559f12054fc4fb53246b6953254460d4a79b94840b0b7405226042d7b84ffe69ea96de6dc8182d13e3c392904767826722315c2f02ebf227d04ebf739b5fc9b9624a5daebb703a45023d422ecb3089b79c80fab37499822e53347d40228e1e82975cee4c471195435277b5909134e8173bc895daa4b5ddf25b8b0c3ced78ef0c710af940dddb2f1a73bd874b0508da465de33ce255ef4b7546f800a15cf215f2acf3d42559e30a9f2c9fa592a50a12f9d547c0cf288da7048c1544293084b19bc1e3c9d1f781e9acb359514d00fe72661e9150b3ed93b39207233fdcf34e55132f100d6cfb8cf9e766276ad7e79a18c774bf1bfb78e62fc94c788e78d4afe352d5b53b001df476317fa0cf022565aa7fe420b3abd46301283d43ee735bd11152329af5f459502fa81651543084eb83c9b431cc4b73abfb8d29539870eb09b24a8d35c50107206662c12a508fab32731d2b0cf86f572e4269386f25ca2c6668c3b5d91e9483f558497a95e0d8ade81353a0508d857f1e4347b06b03e4c02c7b67850818673824f186ea9384495816611581e79a380af5545c70aa4fe05a74f7ebd3d658daa335329affaeec3815c84843439345947aba4ab84a80e2081cc89723430b46e23a8dd92aae991341b1c58d73e181de619a095e60845514d01b558476db69d04cfab16f9c41117b401c7c0585cc5983bc925cd608a80f00ec10d42902a09cd64da913e5942994ee65be18892c23af0819dd3b7d706930da5965202dea660cb437fff81bd27eb74371befed3d93322c99ef891b2389abed15068278e677fb8c28b7fc9bcf089dc9c8e09dc651e776bc9fab0394238e10d23119da822939b9fa02b802befd4783c36bea2331dfd5d1839e0eb385fc6f55318827445897f71a23601e7c40a2db6aca29966d30e77173bae8868477002f5306cb66940272eb94a5a5e156f29f7008a773cb3cd86e78a7e8d9aa272ff6baa2b49dd64c62942e2c8464b0f38708fe0f94f8415f9d9582c0e749f041eb3b99e5430954df47adb00c6df78a975811a002e60cdadefab2a0d0832517803d3e69635de89f76398b72542c0a3a18756b423d866420359c49e454b424acde14240ef238df3e5ff86da97a057cc7048577a374c392c022470d636bfe3a345b8e5515e0fe66c0261dfb72e06d107ed0fbfabfb67df417e2536b6a975351e2264296f35119da4f5868fce8768b1cfd2428f3b5edf939c6aac992226e603a14eece375e5fec7ae550516a89a25ba6f3fbd555dca8e9239d1ba4b135f774587991351a9f675d15b9559e50b2cfbadd0bc8b625dbce5310c0f82826d185ae4e16698de93ff91820160daf623482d3ce7a625c7928c20812396107ae2c03d3646302b7ebcc7153f3a181ef8ee8dc5aeceb241939843589f2f8dc339a07803550fb614760bd042d0f4661ce6e7c5070697c83b371053807b970a80ef83467c8b1d8e90c26aa847260981caa55c0e308582a6f5d72c3f4585975973d569383504db2e62bd5d5413f06af9b40617047aeda4846ddb9929212dc6e2d7667b81af3324420764415f66980d7e208c973dee3e5100fc86b2f486432e98c230b8f1d1ed7cb68ef3a28a9679b8b802b19349304ba59bfe9f91cb7c238514d92242c0629d3e858ef89d4946c069314b9fa20fb522211499ba25a19338f43b5ef31099d4cbf34bb0d877007f92c6ebb5d19abf78999565989407a3a7c300dceef1940e806f64300e68c34abc67a959ac855f5b83a7acd1e52b143619640330150b716096d7cce562bb177e2438e60cb5c6776283ace58a8b9840ff8567019c3549f60eb9be5acb29e995469b96b248334c3e24b20b2f837a424a4e965736a530415e4ea42946c489be0698c95f3af4890fca75309385a59ec83b3b6886439467373b0d9b04d8c3e71b0f6e5c54f7e9a686787173b0b07536c64928d143953cd15647c542ce84c0a0541aa9cb93ba8506c4c7eaac57cfc450d909fc888913958bcc17067f7e79254fcd1792eedbddb39333304905a46222e43533ff378edf89755a2452d899fe13b4afe453de24c292d48f485676fa9656a06d13f8d68ab47458070dd82a69f2132828553878c451eb157ec3f084a4348e683488dfab523a8a687562e5334ca72b0b97fcaa10e3d2843fc7eb2440c7cc35a474014f5c980325cb254f8828e2d33b442695668d62c4c279990312e1f9af2db6d668c84ec35941805de090eb04bd445cd3105902eb1ad0bb9a5e94e834c6ff548ae92ddae9d65298e64f349c8e379b930b05a682d5602cd26958ed8e64835310328858202f57326684e79160f43914f98698db28d404ada199d1675b30019409dc9990223048481b099b69338ffa3db709196479c463eceb0ee36d89279021ff9711416b1f2d4d7b60edf44faeddeaa758b0d4d348006ded323d42dbd52874ced6a40cfd6dfd8d4e2058204b06472cd533c8df6f15cd30b7c25c0bde8d1475d49b5bfcb650fb7f13115f504b0e5afb14fc585cfb76ba34c254af41e99c0ba8f64e77a9649070419d4be147aefb51f1f21d922680ac77d8645e2991508f08f912081f1426c4b8f61aefe0a4d30710c319aced09f11226464354f75147a9dcf1d3489296472bfef98c405019fb5f48af895b6a2e1316cd74e25b7e0182fe40ce0473a71ac18fb69f5279070ebec35060e9229286c2a806b418614cd1696882e40b347cb368642829ddb626850d118ea803c8eddf2c70e499e2933ca54f1b650d783027b6ed0be1295d9fd63ef15d990bebdae0a8fb208564010b65a322d3c2440e5393c00df52410a656880024249b314c7c5f5305b0680698206697e76e9e38ed7ca3f0cf29380b65a98093eca24779fea5571efd03cd39d8a63b7e446af2a9073a639f6e8021fef7f50b260463d6d768946ce49159c270368cff41b0ecc125e48d9e6d3b403545e0222848fcac8c58551a563db03db893565b654fc5fab853ec6729dead000a01d2333f654642512d393041a851bdb8df4403356f89faa5e70b7f326ebee3a157588e766c13047b358052a8c02befea0efac2e21bff79e5d3375b22f2e7911772fff7fae2c98df7e2789bb386ea559f6402f39ee568de8c2853263629af4b819b7b6893fccb760441f0f6a80e62cd0124301596eb76ab427ecce2d8bd875fd417919259be2669a12c208364576b2e7410a3e7335111882a55108c04730ff3b84c25e58cc9a60e24d6b34e42fc9a6323cc8294925e4decdf30049654a24e80f5d763c542a838603ebca3ce33340d9a86afb46941bfc8ba0ca89d7852fdfcd67945092fa75c8cf893c0466f6a9166ce9d7a03863a7f1a5d5616fffe705eb9395a18a5e73b98e950ecc450ce3aaabdb2b1a508b6e95e40d72a81738249aee926345c03efaffe1b6ee8e5fe20e808894c54e84bf8abac8bb9eb9e38f4b3663beb8defadfd95d12d60426c6c8c96970df7859b647450a39052500a70499c5b43704a3e0f5c777d0da5b74be90e236aeb027b636e528634a2357fa22735bdf3c48ec4ac7fa024536c9508903ea013dd8814308819800b2a8b39d9a2815dfa135b0af473b1a2d9dcfd4ce2579427234c9066a8475403a18275a6f81aabed0e574b774e8c75fa3386d49eb80de543e41dcc85ecf163c0035f6b5897459b2f58238de4ece30e53c50583f582d3bbde58afc3b0d5c336c9e2706ebcf82cb66afeae41ca151da1b85f2d498c85cc9223f4a967004d4cc6eacca48e499469768b592ba7019ca3be014f23cd1d9be05dd4eff679aa65b93240ec99208d8b1d5557e2ac8cae0519a264b7752dcd214fba6e68559524934d81a259b69ffe7f3720d545cb2c0847a6adae095742a4fa31c0f8746039967452c0c53406e8f010e57584c897c71d9f997fd23cf24152a144cdc26970e31c2cc6e9adfab6f6e824fb243348b7949b59e22270d4669a01fa388c7f8c26cfba4622812028beb508555edbdb0c4f4319c6e9feec75fb89f20e7cf7dee99cd037b2a51e375cd2b2a52300ee2e43e36991af8ba898e37e0c7740f5f728f3e8cd76af09c57476be547caadb0830505ea59e4fb4b8627ed3a384210954010b8bb1ab3240e735f715e458f63f8a07caa2a3950f0b5d034b3c33b280f5dc7435ac348fb562f9c089994d31b252f0d89908f4fb0d12c9416052b6874082322831767dc497b243bb9d36bda9663d281889deab6f97de43ed53c12dd95994a32bf73741929f904242a8e27a6b432242ab9a37b36b5ecf995a6c0a05c56e5115da697173ca85a1729e4c5442e638a5f9d068275c83fe591d77c33458ee77482288cd2a42b654ad3dd74d833554e37880525f20bd8f7fe3541ae5da6a85384156c7f094187a0da2842e25c4f1d21413452c7fe743b90f1f8b1e5544f0260cf2545b803caa7323cc0c795b3d3d88789b44104771c7056f2a021a37e165341478652306f99bc2c46f7d276681c2b4f61c143c40274aeab2370f24731385f097e2087182f5b19f029dde05d52a0cba4f5777f14a51beca65f6980326eb03443792aba20514bb2520374fa7297207c59632f5283502bca00e01125915b5b48e13b09dc3420209a15f447ed8b8cfaeedbe41cf7882f834036e715344a233e838dc40a658086bd43933dce6d644d1b1363a0f30f44792b9717e2a39cf22e4428c50201123152dc37778a4dc589771dcb6be1c2a94569b80ce793e9a77d3a684e6273a3c2647b0bf8bd58c42d06fbc77652e079384f11f94707a4745d3e9e968ce92a73cd9b6a997d99938f3a5d69871484c05aad2b810225e45a31cefaaa7769f4edb8fe3aa752f0e8e2cfff30fba341fc9f44dee041eb0a3106e44e63aaef92d2e4a730cc03592606b023071d97405696582267c15c47a809e2d0a824e6a50e547fdeb847fe89056d4720e2ebb658c624e59f6a5cadb9023cb3e8d7606905802779029fa1f933f51ab09bb0ffa04f2d15a8d2e350333b04d39d427740f528b6160e476030e12995899fd7f083604357b03f796a8a023222109ea21515539f39562f3542a629e9cfb6c4356b7023086cde48cf6cc0ea2360f939abe3254217405f479de5e892222875f32c83866563409d47bd40bf50165ecfcadb3d2511f5f241c381a704af481a8095ae268732967ee3ba4b93419033c646a0a18c7cad3507993c66ec7f6cb333fa9d3f9233e5dec0d2cd1fe56b83281f7565b802806533b6de0378849454fe9b7220d454c981adc445a5119e44031540779a8a2829233819b40bb21d9d8c638e3acc229fe0a625aee225bdde8fa39b62a80b69b3ae45ebadec487f33633f55dba504074258d2c403539c5f3ef4a1bbde26957633781cd2a872190eb292298098c071ee1287ae0e9ab9058eaeae2048d3628971f3ce129a614c0aa3671e685145253565283e42b64156850995cc1e3e56f9384b2c4e7401ce049c18ed625381634340b000d57a18654c01be9896a6540d7e6c1589d7935ed37353448833426d08b8455efd1b58d8d5a57df4d86090d92f841e9210a1a480ebc7e0ec6a212a23fe0525f27f3faa84643eb816af1fc5cf2cd9f5f0d3cd1d95dc81d10f790fd063639f104bb119c7398c2017b6eb9ee15797dbcfb3b95b349953b6d6f2d82281215c5f1fd4993871a0a485795e29b3b5746fde8ad743796a80f0faa312cb173324889bed8754f82ff731740b1c35be00484900977563fb540ed96cc49f265c1c2b1ab1de34405f6e302135c1c880c0958d89e3200274fe194ffed38f1c8cb0486900c19936099f2b35955c5926902f8bedb945fc44992c51e22aaf602186e9118701bd304d5150a593f642892d563d57eea8739b2f896c875287283509699d5624cd7be5c769e2bcf5fd7423447df30793978c8e9103231c29d7e8f0c167b7a7bbbd9eb80ec74be6fbb26a5be2d0c3acd104652f59425a04d5c438734f89c2cb056300be692998a67c66cb12b6b2282ef8592f6bb8277821c25a54d64a466549c5d75ff5e5513359c0a7750c7502e8bfa7f4ab25672c436705431724805976514d55589baaac380d64b3f26c67dc5a3c586b53cfb614250fd803d890e00114f18d7e0045f9ab23c278b853f589d6c4c70f93a19344db5ca846f97ce3f427ff21e34048f280f2244998bfd630951668be7441d36000795454d20fe021454d1a8d6ea986cfe995e9bab626559ed7ccdf43505ecd372d7337a4059a557c418b89ef1274cef4e027fbbd59f98b71e87f2a509ce8282bc02f45dc345346a84706791e832390aa9178c817459da894978ab4389940a7d087c781b00ffd67d9b2e7e8a6d61b8a969e6b99d32a803dab302d142a1fe6c1f44a38bb49f062cad54bdf74b3291611582ca38c02fe23847ba2411f8f475d90dd39bf6f15ec151a46263f114f6acef26322339879af47a5132245e4984c43967142b598440ed75c452a50f58e905229734a5cfef2c0ea25e23433e8cdd09892336e60e88f9b92a20c1bc43487439976412bb55e44e1f2f4f0cf9132842b5c8ac314537a012e05013209232dc84c7d1c1fb62dc70256768e40ee8e8bd9436fbd95ac421cccdcc63ae7efe1d401b2809f278994d1a4009d3b077de3306368f2330d67d52610bedb84920744acb1785224171d27bec1a6d18a4012f6b8913833a3f574855b80edd3a9f0578ea5c1a9638644c0002558fe54c55853ebd56f4d23e29e885dcd7aa1f36dd4c9567400e4a6cab0c1d60f66df2a57e3fa6b869672e78a07792e258458b0d668c6fd80107d56480dc7d4cf4bf84bdfd6459557fc1c72347232ea3854f0b742cec02705a637d19b4b4e8049fd554ef4fabb959b546c82e8e70b2e46fcc8e0154810a5657a6a455cac2aaf818ef2b82f346925341242707676a0f33c4b7c27f5f2c30108ec847c5022e8a454efea4521bb74086fa50c8205d270f035fc0968061a5bd05d295b3d360a2035e8f89f4ac96298efd64155589846b070394a43097bcfba84a0926c030915e85cbb45c8958222e117b01111cd8403260648036e08b7d8994c54dfeab28d10f64b484a4a60090ab8b23e46eff2df2682c911a74cbd8224c577be6d8e348d05f3010ac9de19594ef724b60353e42d952106952358272a9a260a952fd0b354ae92b62c5248c434375a17f92237cd7f931b2b7c52a0b8cc320540a0cb2b97728c453a2d372eb29c8dc3e742355ff300bd254c20c49b9d3cecf04151c0ecca0c5acfbf178834a3f68078e7c0886eb4eca14bd576df33b425235b20d239bcf19434fe60a4024e79d9765d2ffa4d94599095bc2b5a4197549005866eb0f3722639a3c997ca594c2eec35bf4c7430d8d9db07eae542507fb03a76a888cb03d472741360342c688c04264f794f7d06748e2af83018fff6ff3bb4960bb236d8363ebbd13b84f6c26367859289485831e6781f0516f4241253d06f70fc2a8f69710244d55003963d40c45cd00b92462b54f2fc4b0e8f3b32653ac8c90f62e120c30028f54021645475db74485ba811cc9cf983e596d9649803e224ef04045ca94f4d249282c09e4b7b92c434a70682362d3def278efa6d5c958432b207655408df02c02b14e63d49b4c0bb5e23092ddd53296f94177dfe419d13f32fb3d8a401385f1d8df184300c17bff061079cfec24aff333403a3871faada9c499dd1618050ea77abc04fc26d09195f1ffb499f5ede5c311c329d0f41cf03abd36d40c669d6f96433fe0e2384bebdc7ce588b5a21a116a710306d1a49b3870c05afef0d69dee62f65008d6c2b929ea8b44c07216a2e15cf4d0ad4df88bf84f3c3d4094181721b34991f71dffa2254580d5b05b7bf59c46b9f5a0e3db24bf7c05fe83a075ca4a1973d50b132369e8e01928700b59a84813be25d71b5b0c19c40c4e90143efc7b3bc2b4205c80f292d90466265ff35f4375af562f1a9ec3cacc058278b64ef89a36b9b2b15a0dff48fd0ee442b41990a248ad580480caba3d95f9ab9bdb96fae02c783544f9d07001618b7220b1b43c41095e020c849045eb79831d4c8a12a5deb9b30f8088b82c244deb531832be08472e8585d3b5d778cebd82b427041718c0be0e8b9539ffe638f5ff25d965464fff73896d02fa9e646ae90218e9f996bc22298b423daab9bcd3d30a8d29172a1c663e440209bd07951ac8957bd824e38087d9852a3095a8c20df31f381342abc931f2cc7a082c5a16feaaca8508bd04be1907b1a399f888cd3093f6cb3033a502c4c63f0dc0f2287749b620e9542fb4e2b001875bf63bc80d7e50ef1ecc83e3b254ed8f240b8ba195a64bddf580bef6ac90e843e8062322b745d284054dbcf775527bf40dbe393dadb853c36ef8b5270b61162764fd60293cb127893f1dd400cd99baf0727c2b17624d9a3ecf6579f4e872ce64f3cab34e1f7c0252839e5f40b0deb2ed40723f9a90db45395ef1d6e9af5b6cc5231d95a9c0ff40c081c35de5000fe5145d49d245a8a4d5667a786820e2fe8ba9a97b4de6d9e548a7483c20817f98e8888a450d002b948e8a7d1a6b3274d26038b2fa2c3c554fed640f50e759628df4c8e635425ee873a0785fac6a41da9149c7c4c4f838f77484ef4c2d66208448f992afc6603cea67e593519ac4e468c37100f521a52fe07d49add535ddc43c4bcff177a8b8450980ae464593a349f7198aafa2508ae60856cdd74568a2d02e92874293a253b8754100001c6e028075fd5e05a38892241bbe5cb4919f36b83f378a52f69cc961f51fbeb42d622f81b0bf4e9d0850f4b9521642dcbf63315e17fae56fbe189c8ffb775fd1ed1971095fa778800d2546f9e20b7d7e3391b038b5344095ac089dc533822aca77b718c62111ee6e767e2e09b492b43aaf670efe625097e2676df5df66eca050fd3c9e88930df230d768d5866f09fc6cc0be6f23ec0cf0585eb825620fefa906f36099f7fee8c5cdcf28b87353c3db92cd323412e8a2c062d8285f1d064667f7f09942bdf92e786c54d5b40d20639ac62a53975a958aac717f13193bc85c4bd8a72c6929130999ed10d534208e59101033bd8547b0c264ed292e7e5286232cc197a41ad93b89ee23474d0034dd81f110df60a9b37e77e1f4e28796b2910e7494c6fb7d890283b649d8402dfc8bf28d4e3d33b91bdfb24390678a07358f382c40598f52c74b1b6143df9ad9a9a9554e98283b2c95c0df448d55d4b760f7259222d59bcdd689dd0c46b175f7445bf59baab0db03a2b46d7f233188322c8a92d802a075108b241914181524ae1e1b48a8ce5d72ad42f260533f82579d45bd595cca5d03c18b4002ed63e6743566bbc4be20b845b468948c25ee067fd752828f762e9de505841d9fae8c8008a2ee10a4b8910bf6452905e5f6d8f8d2fab5c86c92138aa8e90a7982e772428673e56e8e96e9ddc333b4f5099d42a9cf150240d037c81883ed0977d6d01eb75b24abac55473109c9a36cbcd42a0eb9c5a56571b373db49806076db1ca230fd5770a457683ad6843f07773e9450754d3834f518bfb095140c20535d8d68583ef46f2704c9586405146d2418222fddfda80e9c4693e343e4645fbd2891dbcc5de29ad11798144f2a2778784fde1896e5919d0c3c230a609ab5316532efda66f2490df6fff32c7f35546c005c68b80615658cf3cb03f4c1a604ef8c83a9bed910cfdbd68598198bec1a67087641580e66be2286dba57faab438447609ab8d91992434aed97b93f10bb4d19b820422fc789a9a9f81a3c78440e27f9232e57ec4b2fb826c8a6ba4c4924087db6634292e32865f266d996332372e8976db1547420d73ea71fd3d41735a23879e0f5e5051977660be108f84c7a76860ad101bd4073e335313364842844a3882fc3abe8965f5454092be4137480e3f72536f33c988ce48d9853405055a7e8eb2d9292324cf2803684b6405b01575b91abf7e323130234dcd98341842b23560b492e60e837cadb92dd959df14d9310f40de2d5b6f8d4def117a35d92bdf0db8408f85004f3783529168a45b022072ba48dce0b3eb4f1dbd162cd76f183e63da1286082cf81a2551696facda8006d8209bacd13bd080c110c98db3ea05f45b412f0537c9332e1743aac1639255dab721af2760e215bc9bd324abbb82d79b5b7085f18d3c15f0989fe2c4d16aff436a1ef5040413900b8b9e712fcd545134cc34951d5da063a9430031795e0fd870e15ab6706ba30477084f7c7d97706e727209983886c3092e075a322d29fc96a9e0e973ed7912498ba399cca7122026706747eda8ebfa57a930b7438f8a9783e7aae84d88c3fc463bb75963ac4810e64f9035e4603da4a47ce6e5cbb9c7763d9380c2d9f93536db74743ba5253a23ac942b3867a726be4c658064921590c8733fa53b9df6c89431f2b8aeeda67d53de8112c8ccf554a22e19175c79f823b3a5d8528902a430e43d18625377242f30b3b32ad2ad5a0e57a99f3c78186128d719de1368b0212814191b4870b1282a364e88f925fb8a09f963332c0366a358706d6c4a5735f5f4e4d120478c38d05e5926e19ae5b5809a9d224eb69bffa7d0c1c6112b3c303829e458f27abe35a70c22e22da085dd58082f24d659e621ad8e7c92236767c84e40bfe4276823f020356358f147e71262b74b78ea9d222be5bd34e452b4b797bb46523564a129411808004d807cc06038a03036e0306035e03ea01035203860103200322035e030c030a037a0348036603080306037c037a0336038401030a033a0322034803040374038e01030203280306039c01052003f00303fc0303ca0403a602030603d40103da0103260306035e03c80203400362037c03d0040306031a0362034803b2010398010342031c032c036a03f401031c0342036e03bc0103ac01030368037e034c039604032403080326033c037a0350031c031a032403cc0503b40103260338038c090304037e031c030c033c0310033c031e0332039002030a039e01030603160312032e03c60303860103ca03037a0372035e030c039e0105620330033c0316031803880103220308036403cc0103f40603d00303a00303f4040324031c034003160322032403b20103a80e03e20203f60803c40103bc01039204036203da03036c03ac0203ca0503ec0103ea03038e01031e032403300322033003a80203a8020312037003a40103680390010303d40103be03039a0103700370030e0340035a032203dc01058a0203800403ce01037403d203056003300322032803060358039802030314032a032603a00103100364037a030e03ce0103180328038a0103a00b03b801035803f4010344035203a4010366033e034a03900303c00103c003033e03ba03033a037205f601031203960103620394030394020370055a030a0338039801038e0103ba01034203a40303fc010322037803c2020390010388080302036c0312031c030603100356032c0322031403460326030c035c0578033a034e030603d40103fc0703c60403d40403f402038c01034003d001032e03b801033e03035e039002034805120358035203f001034803120378034c0310030603a201034a030603c6010312032a0314031c0310037a038401037c0304038a020330030e03ac010316030603a2010356032803860203a404032c03bc010322032c03aa01032803160308030e039c040344033c03740314034c032a035203d20303a40103080338031005140334050c031a033603060312031c03b00103ac020324032c032803f80103d201031e03580312030e0324031e03240322033803b801033003e80203a6030370035c03c603035c032803920103580320031603e40303de0103120362032803120334032c0316034c03100316030e031e03c20103840103ac0703d80103b80103c80103d801039401031e03d80103400594010352031603a6020356033a03280314031a035e05ea020312034e034a035003ba01031803960203a801037e03031a0378039c03033a0308038801030e030e030c03080328031203ae010332035a030c03fc0203c001031e0320030403660354033e0324031403a00603b803035603e40103d801036c033603cc01038a04038801030403180312030203ae010316031a03aa0503620320035803020312031c030c0306035a03580310031e03a2020324030603ac02035003d401037a0302033603400322030a031a035003ea04032a033a0312039201031e0324035a031603ca0203ce010322030a030e0354036603ea06030203220388010328030403b00203180346033c03ea01035203a201030c032e032a052c039802034c03c40a0316031e031803280302032a0310030c03480302038803036603ac01030e039a01034a0384010306033a033e0310039e01031e03ba0103c80203a6010394040324038c010303cc0103560336030e03e601032603180308030a03140303140314033c03880503c204031403d40103bc0103de0305d8040320038001031603039c02034e03f20403a204032e03c201039c01032603760308034a0306032e03580352035c03b002031203a201032803480344034a03100312033a030e03480328033c032803030a03e60d0318039201033c031a031203720330034a039e01030a0310033203be01032e038002030e031a03d602037e033c0306031e0310032003c20103140304031803ec01036e03b804035c03360324033603a20103f804039e0203be0203860303300374034403560326033c03fc030306033003580394020304038c0303840403080346031003640306034c051203a202032603f4030330035e03140388020326038a0203e8010326034803e40403052c058c01034803160338039601038001039201030a038e0103500360037803880503a80103280312038001034803f803037c038a010358031e0366034c033803f2010366038a02037a03860103f2010350038001039a0103030c03100330035e03c00303a001031e03f4010376034c030c036a0368030403280362038601037c0308033a030e03c604038001056a03480374031203b601031003520382010310033805560354039c010306036c03220304031803100308031c033803e002031a05e802030a035403840103820403b60103b6020318038a0903d604038c0205bc0203a20303dc010344038a01036603560332039601037003d201030e033203bc01093603da0103031e035a032a03de05036e033e03b00103800105c0010308034a03060352038a01033e030a035603ee01032c031a033c0350030803800103120310031e030e03cc0403ee01033603360398010310031e033e031e0344031c037e030a033a03e401039401031e035603640308031e030c032e032c0340030803030a0514056c031e0348033803720368034603040304031c039a0103320338035203120332038a01039a02031c033803c20103cc03039c03034c035c038401032a038e020348030e0308031c0314030c03be01032403e801031403ca01030e03440302032603ea05054603c802031e033a037003e001032403640378030a030c0342039a0103520538034003cc01032403ec0205fa0203d801033403540330034e034a0386010330037803bc0103980903c6010316030603b4020388010378038601033003160346032003b4060312032c030803d801050403a0010334036803740532039c0103a601033a033003120354031c035c035c034e03cc010334036c036e034e039201 m_Images: - m_SerializedGuid: m_GuidLow: 4650931146356887624 @@ -29,3 +29,13 @@ MonoBehaviour: m_SpecifySize: 1 m_Name: chart m_Texture: {fileID: 0} + - m_SerializedGuid: + m_GuidLow: 5061243278689971722 + m_GuidHigh: 15127632964668527745 + m_SerializedTextureGuid: + m_GuidLow: 3604110673907174122 + m_GuidHigh: 3015413705161884346 + m_Size: {x: 0.6, y: 0.6} + m_SpecifySize: 1 + m_Name: trash_1 + m_Texture: {fileID: 0} diff --git a/AR/Assets/Resources/VuforiaConfiguration.asset b/AR/Assets/Resources/VuforiaConfiguration.asset new file mode 100644 index 0000000..dbf12c2 --- /dev/null +++ b/AR/Assets/Resources/VuforiaConfiguration.asset @@ -0,0 +1,52 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2067402452, guid: 1e108ae5f2133934f948edded555f03e, type: 3} + m_Name: VuforiaConfiguration + m_EditorClassIdentifier: + vuforia: + vuforiaLicenseKey: AQxbUaT/////AAABmcZ6t7Ncj05anQJttObkLa4eD1cWPevqBDTvmDHnXpPaLKNegpLOtKxtNUApdlbhLVVg6wvI+udkzd/VrRZrReg69CRecVhQRIrli/m6b5WQl/gkN4tdaDWbvVxvjuI9oOe5nLCVIY9Oe3WtZfcdCr8Xuiu7U3qkSL19omHJvRUXSEpUU4OXVX4cbPdfUXNX05Eq5MFT4tpUhEMPJwaV/JcA3k5CkXHT51SsPqXt22XNqt55goOhkRO5wy1DEoXz3jWQibRY89u3zTgNbElKcKymOzrddWPwuGtOKOmPD2ItEssjajax1Pw2iAb2r4gUaVFvIXPOMXUqbkAMkD0WVsUXkK5d9TfglqeygPe7xswk + ufoLicenseKey: QVhmVG0yVC8vLy8vQUFBQUtPMGgyQ2V2ZlVaSXZtVHhTbng3elZVRkhISnZzYUhHSXREUEY5OGtLZTBlWW9pTTM3RUl1a0w5M09KcWM0OXVKVksxODRJM29hWkdTWmNXbmtkTVVEcXhkdjRKSHViUzdyaDZlS2ZZb0NwaWtsckZjQnRsWDlIRVM2RHYzVTdMNHA4S09kS3FUSFBYR3FHbHEyTStDVDNNTTdnYUVlajhFa0FnQUUxZkR6TDhXYnFsbE5BVFdIZFpGYWtOY2FXNis0eGNrTFJGUHBucDlDOEU5YUY5N1czRFZ2MmF2ZEtoWkxzMG5QeWdLMDYwQ1lQYVhMV0pZRjlBVG00WnlRcmY1WXRRNUdGUzArMVg3MWtjMGwvWjBDSDJ3N3ZRY3Jzdy96L3NBNmVBUW9LYUhpS3R2MzE1Q2ZMVlhEMjhzdk1ZTU5CTnZsZzBqU0RPcnkwYjlUSUNlWlZMNVBvZExFZjBxRnc1VzhXTFByOXU= + delayedInitialization: 0 + cameraFocusModeSetting: 2 + cameraDeviceModeSetting: -2 + maxSimultaneousImageTargets: 3 + virtualSceneScaleFactor: 1 + modelTargetRecoWhileExtendedTracked: 1 + shareRecordingsInITunes: 0 + logLevel: 0 + version: 10.14.4 + eulaAcceptedVersions: '{"Values":["10.14"]}' + database: + disableModelExtraction: 0 + shaders: + depthMaskShader: {fileID: 4800000, guid: 9894afa5f3a5e4bbca625981beb1b20e, type: 3} + outlineShader: {fileID: 4800000, guid: 88d3b6b5cf364476ca39fcec255331b1, type: 3} + unlitTransparentShader: {fileID: 10750, guid: 0000000000000000f000000000000000, + type: 0} + videoBackground: + numDivisions: 2 + videoBackgroundShader: {fileID: 4800000, guid: 144dfca22ac584ade9e538e24a5ddded, + type: 3} + unlitShader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0} + videoBackgroundEnabled: 1 + deviceTracker: + autoStartTracker: 1 + arcoreRequirement: 1 + autoImportArcore: 1 + thirdPartyARCoreClientDetected: 1 + playmode: + mSequencePath: + playModeType: 1 + webcam: + renderTextureLayer: 30 + packageInformation: + ARFoundationVersion: 4.2.7 diff --git a/AR/Assets/Resources/VuforiaConfiguration.asset.meta b/AR/Assets/Resources/VuforiaConfiguration.asset.meta new file mode 100644 index 0000000..fe87af1 --- /dev/null +++ b/AR/Assets/Resources/VuforiaConfiguration.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d7c0c52072a25164baf5aa63879fb81f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/AR/Assets/Resources/env.txt.meta b/AR/Assets/Resources/env.txt.meta index ef219e7..59a98ea 100644 --- a/AR/Assets/Resources/env.txt.meta +++ b/AR/Assets/Resources/env.txt.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4de63a3b6b3e51f4d89d0220718aeab2 +guid: c7776b6800f112741bb891f25f04ed28 TextScriptImporter: externalObjects: {} userData: diff --git a/AR/Assets/Scenes/AR Scene.unity b/AR/Assets/Scenes/AR Scene.unity new file mode 100644 index 0000000..0b39873 --- /dev/null +++ b/AR/Assets/Scenes/AR Scene.unity @@ -0,0 +1,488 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.44657874, g: 0.49641258, b: 0.574817, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &365779701 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 365779707} + - component: {fileID: 365779702} + - component: {fileID: 365779706} + - component: {fileID: 365779705} + - component: {fileID: 365779704} + - component: {fileID: 365779703} + m_Layer: 0 + m_Name: AR Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!20 &365779702 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 365779701} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.1 + far clip plane: 20 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!114 &365779703 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 365779701} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 816b289ef451e094f9ae174fb4cf8db0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UseCustomMaterial: 0 + m_CustomMaterial: {fileID: 0} +--- !u!114 &365779704 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 365779701} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4966719baa26e4b0e8231a24d9bd491a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FocusMode: -1 + m_LightEstimationMode: -1 + m_AutoFocus: 1 + m_LightEstimation: 0 + m_FacingDirection: 1 +--- !u!114 &365779705 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 365779701} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6e3c44306fb1e439a9f18b2212b8ab70, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!81 &365779706 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 365779701} + m_Enabled: 1 +--- !u!4 &365779707 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 365779701} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1925243077} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1649109357 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1649109360} + - component: {fileID: 1649109359} + - component: {fileID: 1649109358} + m_Layer: 0 + m_Name: AR Session + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1649109358 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1649109357} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fa850fbd5b8aded44846f96e35f1a9f5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1649109359 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1649109357} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3859a92a05d4f5d418cb6ca605290e74, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AttemptUpdate: 1 + m_MatchFrameRate: 1 + m_TrackingMode: 2 +--- !u!4 &1649109360 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1649109357} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1880509872 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1880509874} + - component: {fileID: 1880509873} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1880509873 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1880509872} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1880509874 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1880509872} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1925243075 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1925243077} + - component: {fileID: 1925243076} + - component: {fileID: 1925243079} + - component: {fileID: 1925243078} + m_Layer: 0 + m_Name: AR Session Origin + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1925243076 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1925243075} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 520bb47c46cf8624fafb307b7d1b862a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Camera: {fileID: 365779702} +--- !u!4 &1925243077 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1925243075} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 365779707} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1925243078 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1925243075} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 092788e83c82b9c4ebc2934e32540ef7, type: 3} + m_Name: + m_EditorClassIdentifier: + ArPrefabs: + - {fileID: 5129063431480463809, guid: 677b677f966f56a4b8f6a9ee34fe24d5, type: 3} + - {fileID: 5129063431480463809, guid: c06842cb3c407c54699aaed3b4293c4e, type: 3} +--- !u!114 &1925243079 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1925243075} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4dea56a9eaadd1c439095de4f9a371cb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SerializedLibrary: {fileID: 11400000, guid: 0be731162aacf034589ae8160cfb24fb, + type: 2} + m_MaxNumberOfMovingImages: 3 + m_TrackedImagePrefab: {fileID: 0} diff --git a/AR/Assets/Scenes/AR Scene.unity.meta b/AR/Assets/Scenes/AR Scene.unity.meta new file mode 100644 index 0000000..1c8fa60 --- /dev/null +++ b/AR/Assets/Scenes/AR Scene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 63d620d70769e2c40bc69691c26f4621 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AR/Assets/Scenes/Vuforia test.unity b/AR/Assets/Scenes/Vuforia test.unity new file mode 100644 index 0000000..2f611e6 --- /dev/null +++ b/AR/Assets/Scenes/Vuforia test.unity @@ -0,0 +1,878 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.44657874, g: 0.49641258, b: 0.574817, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &108858455 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 108858460} + - component: {fileID: 108858459} + - component: {fileID: 108858458} + - component: {fileID: 108858457} + - component: {fileID: 108858456} + m_Layer: 0 + m_Name: ARCamera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &108858456 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 108858455} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c47f92041efbb4b429a4eafca855ebe3, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &108858457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 108858455} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1826476478, guid: 1e108ae5f2133934f948edded555f03e, type: 3} + m_Name: + m_EditorClassIdentifier: + mWorldCenterMode: 2 + mWorldCenter: {fileID: 0} +--- !u!81 &108858458 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 108858455} + m_Enabled: 1 +--- !u!20 &108858459 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 108858455} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.05 + far clip plane: 2000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &108858460 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 108858455} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1712626382} + - {fileID: 2016941986} + - {fileID: 881112810} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &153989141 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 881112810} + m_Modifications: + - target: {fileID: 5129063431480463809, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_Name + value: TrashPrefab + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_SizeDelta.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_SizeDelta.y + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_LocalPosition.z + value: 3.22 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_LocalRotation.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 90 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 677b677f966f56a4b8f6a9ee34fe24d5, type: 3} +--- !u!224 &153989142 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6889461186404486481, guid: 677b677f966f56a4b8f6a9ee34fe24d5, + type: 3} + m_PrefabInstance: {fileID: 153989141} + m_PrefabAsset: {fileID: 0} +--- !u!1 &566247938 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 566247940} + - component: {fileID: 566247939} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &566247939 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 566247938} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &566247940 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 566247938} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &881112809 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 881112810} + - component: {fileID: 881112813} + - component: {fileID: 881112812} + - component: {fileID: 881112814} + m_Layer: 0 + m_Name: Trash 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &881112810 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 881112809} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 11.55} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 153989142} + m_Father: {fileID: 108858460} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &881112812 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 881112809} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 886328de6a5c14cbb85854fdf1a5085b, type: 3} + m_Name: + m_EditorClassIdentifier: + StatusFilter: 1 + UsePoseSmoothing: 0 + AnimationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 3.3333333 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.3 + value: 1 + inSlope: 3.3333333 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + OnTargetFound: + m_PersistentCalls: + m_Calls: [] + OnTargetLost: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &881112813 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 881112809} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1631628248, guid: 1e108ae5f2133934f948edded555f03e, type: 3} + m_Name: + m_EditorClassIdentifier: + PreviewVisible: 1 + RuntimeOcclusion: 0 + RuntimeCollider: 0 + mTrackableName: Lhotse_Mountain_8-Bit_Grayscale + mInitializedInEditor: 1 + mDataSetPath: Vuforia/test.xml + mAspectRatio: 0.696 + mImageTargetType: 0 + mWidth: 5 + mHeight: 3.48 + mRuntimeTexture: {fileID: 0} + mMotionHint: 1 + mTrackingOptimization: 0 + mTrackingOptimizationNeedsUpgrade: 0 + mPreview: {fileID: 881112814} +--- !u!114 &881112814 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 881112809} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1778676317, guid: 1e108ae5f2133934f948edded555f03e, type: 3} + m_Name: + m_EditorClassIdentifier: + mObserverBehaviour: {fileID: 881112813} + mHiddenRoot: {fileID: 0} + mTargetName: Lhotse_Mountain_8-Bit_Grayscale + mDatasetName: Vuforia/test.xml + mCastedBehaviour: {fileID: 881112813} + mMeshFilter: {fileID: 0} + mMeshRenderer: {fileID: 0} +--- !u!1 &1712626381 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1712626382} + - component: {fileID: 1712626385} + - component: {fileID: 1712626384} + - component: {fileID: 1712626386} + m_Layer: 0 + m_Name: Trash 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1712626382 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1712626381} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 108858460} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1712626384 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1712626381} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 886328de6a5c14cbb85854fdf1a5085b, type: 3} + m_Name: + m_EditorClassIdentifier: + StatusFilter: 1 + UsePoseSmoothing: 0 + AnimationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 3.3333333 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.3 + value: 1 + inSlope: 3.3333333 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + OnTargetFound: + m_PersistentCalls: + m_Calls: [] + OnTargetLost: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1712626385 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1712626381} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1631628248, guid: 1e108ae5f2133934f948edded555f03e, type: 3} + m_Name: + m_EditorClassIdentifier: + PreviewVisible: 1 + RuntimeOcclusion: 0 + RuntimeCollider: 0 + mTrackableName: trash_1 + mInitializedInEditor: 1 + mDataSetPath: Vuforia/test.xml + mAspectRatio: 1 + mImageTargetType: 0 + mWidth: 5 + mHeight: 5 + mRuntimeTexture: {fileID: 0} + mMotionHint: 1 + mTrackingOptimization: 0 + mTrackingOptimizationNeedsUpgrade: 0 + mPreview: {fileID: 1712626386} +--- !u!114 &1712626386 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1712626381} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1778676317, guid: 1e108ae5f2133934f948edded555f03e, type: 3} + m_Name: + m_EditorClassIdentifier: + mObserverBehaviour: {fileID: 1712626385} + mHiddenRoot: {fileID: 0} + mTargetName: trash_1 + mDatasetName: Vuforia/test.xml + mCastedBehaviour: {fileID: 1712626385} + mMeshFilter: {fileID: 0} + mMeshRenderer: {fileID: 0} +--- !u!1 &2016941985 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2016941986} + - component: {fileID: 2016941989} + - component: {fileID: 2016941988} + - component: {fileID: 2016941990} + m_Layer: 0 + m_Name: Trash 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2016941986 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2016941985} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 5.81} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 108858460} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2016941988 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2016941985} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 886328de6a5c14cbb85854fdf1a5085b, type: 3} + m_Name: + m_EditorClassIdentifier: + StatusFilter: 1 + UsePoseSmoothing: 0 + AnimationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 3.3333333 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.3 + value: 1 + inSlope: 3.3333333 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + OnTargetFound: + m_PersistentCalls: + m_Calls: [] + OnTargetLost: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &2016941989 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2016941985} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1631628248, guid: 1e108ae5f2133934f948edded555f03e, type: 3} + m_Name: + m_EditorClassIdentifier: + PreviewVisible: 1 + RuntimeOcclusion: 0 + RuntimeCollider: 0 + mTrackableName: trash_2 + mInitializedInEditor: 1 + mDataSetPath: Vuforia/test.xml + mAspectRatio: 1 + mImageTargetType: 0 + mWidth: 5 + mHeight: 5 + mRuntimeTexture: {fileID: 0} + mMotionHint: 1 + mTrackingOptimization: 0 + mTrackingOptimizationNeedsUpgrade: 0 + mPreview: {fileID: 2016941990} +--- !u!114 &2016941990 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2016941985} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1778676317, guid: 1e108ae5f2133934f948edded555f03e, type: 3} + m_Name: + m_EditorClassIdentifier: + mObserverBehaviour: {fileID: 2016941989} + mHiddenRoot: {fileID: 0} + mTargetName: trash_2 + mDatasetName: Vuforia/test.xml + mCastedBehaviour: {fileID: 2016941989} + mMeshFilter: {fileID: 0} + mMeshRenderer: {fileID: 0} +--- !u!1 &2103254339 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2103254341} + - component: {fileID: 2103254340} + m_Layer: 0 + m_Name: PocketBaseDataProvider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2103254340 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2103254339} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5d109dd9f21341b3ad486eda9c3e70ff, type: 3} + m_Name: + m_EditorClassIdentifier: + userToken: + timeBetweenUpdate: 5 +--- !u!4 &2103254341 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2103254339} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.116306, y: 0.284, z: 5.623776} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/AR/Assets/Scenes/Vuforia test.unity.meta b/AR/Assets/Scenes/Vuforia test.unity.meta new file mode 100644 index 0000000..8a09bc4 --- /dev/null +++ b/AR/Assets/Scenes/Vuforia test.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 43487ec4eeee9a74f8a2e5f738259bc2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AR/Assets/StreamingAssets.meta b/AR/Assets/StreamingAssets.meta new file mode 100644 index 0000000..ff69b89 --- /dev/null +++ b/AR/Assets/StreamingAssets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 967aa6c2c0269a4489605f35d4c17ce1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AR/Assets/StreamingAssets/Vuforia.meta b/AR/Assets/StreamingAssets/Vuforia.meta new file mode 100644 index 0000000..c3e264c --- /dev/null +++ b/AR/Assets/StreamingAssets/Vuforia.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9ed754e9904a20e479cf10161b0e5f08 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AR/Assets/StreamingAssets/Vuforia/test.dat b/AR/Assets/StreamingAssets/Vuforia/test.dat new file mode 100644 index 0000000..29f4ac5 Binary files /dev/null and b/AR/Assets/StreamingAssets/Vuforia/test.dat differ diff --git a/AR/Assets/StreamingAssets/Vuforia/test.dat.meta b/AR/Assets/StreamingAssets/Vuforia/test.dat.meta new file mode 100644 index 0000000..9a9aeb6 --- /dev/null +++ b/AR/Assets/StreamingAssets/Vuforia/test.dat.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 4758c794622f43c58e676f11d1983f6e diff --git a/AR/Assets/StreamingAssets/Vuforia/test.xml b/AR/Assets/StreamingAssets/Vuforia/test.xml new file mode 100644 index 0000000..3801d01 --- /dev/null +++ b/AR/Assets/StreamingAssets/Vuforia/test.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/AR/Assets/StreamingAssets/Vuforia/test.xml.meta b/AR/Assets/StreamingAssets/Vuforia/test.xml.meta new file mode 100644 index 0000000..99ebf59 --- /dev/null +++ b/AR/Assets/StreamingAssets/Vuforia/test.xml.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 2eacf8f5987e446d866538c724f33906 diff --git a/AR/Assets/TrashDataExtractor.cs b/AR/Assets/TrashDataExtractor.cs new file mode 100644 index 0000000..7392fcb --- /dev/null +++ b/AR/Assets/TrashDataExtractor.cs @@ -0,0 +1,75 @@ +using System; +using System.Linq; +using models; +using TMPro; +using UnityEngine; + +public enum TrashType +{ + Temperature, // T/H + Distance, // D + Poids // W +} + +public class TrashDataExtractor : MonoBehaviour +{ + [SerializeField] public TrashType type = TrashType.Distance; + [SerializeField] public TextMeshPro valueText; + [SerializeField] public TextMeshPro dateText; + [SerializeField] public TextMeshPro trashText; + + [SerializeField] public float timeBetweenUpdate = 2f; + private float currentCountdown; + + void Start() + { + this.currentCountdown = this.timeBetweenUpdate; + } + + void UpdateText() + { + String unit = "T/H"; + if (this.type == TrashType.Distance) + { + unit = "D"; + } else if (this.type == TrashType.Poids) + { + unit = "W"; + } + if (PocketBaseDataProvider.trashes.Count <= 0 || PocketBaseDataProvider.trashes[0].data.Count <= 0) + { + return; + } + var trashesFiltered = PocketBaseDataProvider.trashes.Where((trash => trash.data.Count > 0 && trash.data[0].unit == unit)).ToList(); + if (trashesFiltered.Count <= 0 || trashesFiltered[0].data.Count <= 0) + { + return; // No trashes found + } + Data lastData = trashesFiltered[0].data[0]; + foreach (var data in trashesFiltered[0].data) + { + if (DateTime.Parse(lastData.updated) < DateTime.Parse(data.updated)) + { + lastData = data; + } + } + this.trashText.text = "Trash n° " + trashesFiltered[0].id; + this.dateText.text = "Mis à jour le " + DateTime.Parse(lastData.updated).ToString("G"); + this.valueText.text = lastData.value + " " + lastData.unit; + if (this.type == TrashType.Temperature) + { + String[] v = lastData.value.Split(";"); + this.valueText.text = v[0] + " °C - " + v[1] + "% d'humidité"; + } + } + + void Update() + { + this.currentCountdown -= Time.deltaTime; + if (this.currentCountdown <= 0) + { + this.currentCountdown = this.timeBetweenUpdate; + this.UpdateText(); + } + } +} diff --git a/AR/Assets/PocketBaseDataRepository.cs.meta b/AR/Assets/TrashDataExtractor.cs.meta similarity index 100% rename from AR/Assets/PocketBaseDataRepository.cs.meta rename to AR/Assets/TrashDataExtractor.cs.meta diff --git a/AR/Assets/TrashPrefab.prefab b/AR/Assets/TrashPrefab.prefab new file mode 100644 index 0000000..02b2da3 --- /dev/null +++ b/AR/Assets/TrashPrefab.prefab @@ -0,0 +1,675 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2330318410863980442 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5564622505428002350} + - component: {fileID: 3913286370707363092} + - component: {fileID: 9209312088537782796} + m_Layer: 0 + m_Name: Text (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5564622505428002350 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2330318410863980442} + m_LocalRotation: {x: -0, y: -0.7071068, z: -0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0.0092} + m_LocalScale: {x: 0.024999995, y: 0.05, z: 0.49999985} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5372390858040414447} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 1.42, y: -0.226} + m_SizeDelta: {x: 33.175, y: 5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &3913286370707363092 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2330318410863980442} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &9209312088537782796 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2330318410863980442} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Valeur + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: -0.059911728, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 3913286370707363092} + m_maskType: 0 +--- !u!1 &2606774767926802148 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3736559373457103841} + - component: {fileID: 3823117051908795808} + - component: {fileID: 1268601807478007134} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3736559373457103841 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2606774767926802148} + m_LocalRotation: {x: 0.0014850197, y: -0.7071053, z: -0.0014850365, w: 0.7071053} + m_LocalPosition: {x: 0, y: 0, z: -0.0187} + m_LocalScale: {x: 0.024999995, y: 0.05, z: 0.49999985} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5372390858040414447} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: -90, z: -0.241} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 1.4200026, y: 0.2994} + m_SizeDelta: {x: 30.938, y: 5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &3823117051908795808 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2606774767926802148} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &1268601807478007134 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2606774767926802148} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "Trash n\xB0 1" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: -0.059911728, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 3823117051908795808} + m_maskType: 0 +--- !u!1 &5106339144663151372 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5372390858040414447} + - component: {fileID: 6673302204551288243} + - component: {fileID: 3108883063290793039} + - component: {fileID: 1560653856305504418} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5372390858040414447 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5106339144663151372} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 20, z: 40} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3736559373457103841} + - {fileID: 1272978659607169466} + - {fileID: 5564622505428002350} + m_Father: {fileID: 6889461186404486481} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6673302204551288243 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5106339144663151372} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3108883063290793039 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5106339144663151372} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &1560653856305504418 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5106339144663151372} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &5129063431480463809 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6889461186404486481} + - component: {fileID: 7692855769418497485} + m_Layer: 0 + m_Name: TrashPrefab + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6889461186404486481 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5129063431480463809} + m_LocalRotation: {x: 0.5, y: 0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5372390858040414447} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &7692855769418497485 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5129063431480463809} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8a652d58e66666249a20951649c4ddcd, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 0 + valueText: {fileID: 9209312088537782796} + dateText: {fileID: 4595555074173856422} + trashText: {fileID: 1268601807478007134} + timeBetweenUpdate: 2 +--- !u!1 &6515507305487752798 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1272978659607169466} + - component: {fileID: 3116260282969843872} + - component: {fileID: 4595555074173856422} + m_Layer: 0 + m_Name: Text (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1272978659607169466 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6515507305487752798} + m_LocalRotation: {x: -0, y: -0.7071068, z: -0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0.0103} + m_LocalScale: {x: 0.024999995, y: 0.05, z: 0.49999985} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5372390858040414447} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 1.42, y: 0.141} + m_SizeDelta: {x: 33.264, y: 5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &3116260282969843872 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6515507305487752798} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &4595555074173856422 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6515507305487752798} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "Mis \xE0 jour:\n" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: -0.059911728, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 3116260282969843872} + m_maskType: 0 diff --git a/AR/Assets/chart.prefab.meta b/AR/Assets/TrashPrefab.prefab.meta similarity index 100% rename from AR/Assets/chart.prefab.meta rename to AR/Assets/TrashPrefab.prefab.meta diff --git a/AR/Assets/models/Data.cs b/AR/Assets/models/Data.cs index fa094f4..28944a6 100644 --- a/AR/Assets/models/Data.cs +++ b/AR/Assets/models/Data.cs @@ -9,9 +9,9 @@ namespace models public String id; public String collectionId; public String collectionName; - public DateTime created; - public DateTime updated; - public int value; + public String created; + public String updated; + public String value; public String trash_id; public String unit; public Boolean status; diff --git a/AR/Assets/trash_1.jpg b/AR/Assets/trash_1.jpg new file mode 100644 index 0000000..015a797 --- /dev/null +++ b/AR/Assets/trash_1.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70af98900986e5b980a067b68933eac9a0f22220a0de97e391f9443f7701eaaa +size 34888 diff --git a/AR/Assets/trash_1.jpg.meta b/AR/Assets/trash_1.jpg.meta new file mode 100644 index 0000000..95429f1 --- /dev/null +++ b/AR/Assets/trash_1.jpg.meta @@ -0,0 +1,147 @@ +fileFormatVersion: 2 +guid: 016e4aea5f903204bac204dbc9e6d829 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/AR/Assets/chart.prefab b/AR/Assets/trash_1.prefab similarity index 99% rename from AR/Assets/chart.prefab rename to AR/Assets/trash_1.prefab index 0b1bbeb..f872b70 100644 --- a/AR/Assets/chart.prefab +++ b/AR/Assets/trash_1.prefab @@ -183,7 +183,7 @@ GameObject: - component: {fileID: 6889461186404486481} - component: {fileID: 5156714047157019152} m_Layer: 0 - m_Name: chart + m_Name: trash_1 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -224,6 +224,6 @@ MonoBehaviour: m_EditorClassIdentifier: userToken: trashes: [] - type: 0 + type: 2 textToUpdate: {fileID: 1268601807478007134} timeBetweenUpdate: 20 diff --git a/AR/Assets/trash_1.prefab.meta b/AR/Assets/trash_1.prefab.meta new file mode 100644 index 0000000..e349062 --- /dev/null +++ b/AR/Assets/trash_1.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c06842cb3c407c54699aaed3b4293c4e +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AR/Packages/com.ptc.vuforia.engine-10.14.4.tgz b/AR/Packages/com.ptc.vuforia.engine-10.14.4.tgz new file mode 100644 index 0000000..6a6b3ea Binary files /dev/null and b/AR/Packages/com.ptc.vuforia.engine-10.14.4.tgz differ diff --git a/AR/Packages/manifest.json b/AR/Packages/manifest.json index 8a0d4df..3a349e3 100644 --- a/AR/Packages/manifest.json +++ b/AR/Packages/manifest.json @@ -1,5 +1,6 @@ { - "dependencies": { + "dependencies": { + "com.ptc.vuforia.engine": "file:com.ptc.vuforia.engine-10.14.4.tgz", "com.unity.collab-proxy": "2.0.0", "com.unity.feature.ar": "1.0.0", "com.unity.feature.development": "1.0.1", @@ -49,4 +50,4 @@ "com.unity.modules.wind": "1.0.0", "com.unity.modules.xr": "1.0.0" } -} +} \ No newline at end of file diff --git a/AR/Packages/packages-lock.json b/AR/Packages/packages-lock.json index 7b281c1..3c5f87a 100644 --- a/AR/Packages/packages-lock.json +++ b/AR/Packages/packages-lock.json @@ -1,5 +1,13 @@ { "dependencies": { + "com.ptc.vuforia.engine": { + "version": "file:com.ptc.vuforia.engine-10.14.4.tgz", + "depth": 0, + "source": "local-tarball", + "dependencies": { + "com.unity.ugui": "1.0.0" + } + }, "com.unity.collab-proxy": { "version": "2.0.0", "depth": 0, diff --git a/AR/ProjectSettings/EditorBuildSettings.asset b/AR/ProjectSettings/EditorBuildSettings.asset index bc5303f..54e64b7 100644 --- a/AR/ProjectSettings/EditorBuildSettings.asset +++ b/AR/ProjectSettings/EditorBuildSettings.asset @@ -5,9 +5,15 @@ EditorBuildSettings: m_ObjectHideFlags: 0 serializedVersion: 2 m_Scenes: - - enabled: 1 + - enabled: 0 path: Assets/ExampleAssets/Scenes/SampleScene.unity guid: 9fc0d4010bbf28b4594072e72b8655ab + - enabled: 0 + path: Assets/Scenes/AR Scene.unity + guid: 63d620d70769e2c40bc69691c26f4621 + - enabled: 1 + path: Assets/Scenes/Vuforia test.unity + guid: 43487ec4eeee9a74f8a2e5f738259bc2 m_configObjects: Unity.XR.WindowsMR.Settings: {fileID: 11400000, guid: 744b813df90924c169af73489b8325de, type: 2} diff --git a/AR/ProjectSettings/ProjectSettings.asset b/AR/ProjectSettings/ProjectSettings.asset index f287946..3d014fc 100644 --- a/AR/ProjectSettings/ProjectSettings.asset +++ b/AR/ProjectSettings/ProjectSettings.asset @@ -135,12 +135,7 @@ PlayerSettings: 16:9: 1 Others: 1 bundleVersion: 1.0 - preloadedAssets: - - {fileID: -274928316463721240, guid: 58f40b12bbc864f3c96c6505a9a1e1e3, type: 2} - - {fileID: 11400000, guid: 1eb95d77acb39444e8cf44313496a874, type: 2} - - {fileID: -816260072586540286, guid: 6bb381a8ba31f114d9724357633b4625, type: 2} - - {fileID: 11400000, guid: b700a43cd50f9c049864a67cfbdcafed, type: 2} - - {fileID: 4800000, guid: c9f956787b1d945e7b36e0516201fc76, type: 3} + preloadedAssets: [] metroInputSource: 0 wsaTransparentSwapchain: 0 m_HolographicPauseOnTrackingLoss: 1 @@ -167,7 +162,7 @@ PlayerSettings: tvOS: 0 overrideDefaultApplicationIdentifier: 1 AndroidBundleVersionCode: 1 - AndroidMinSdkVersion: 24 + AndroidMinSdkVersion: 26 AndroidTargetSdkVersion: 0 AndroidPreferredInstallLocation: 1 aotOptions: @@ -250,7 +245,7 @@ PlayerSettings: useCustomBaseGradleTemplate: 0 useCustomGradlePropertiesTemplate: 0 useCustomProguardFile: 0 - AndroidTargetArchitectures: 3 + AndroidTargetArchitectures: 2 AndroidTargetDevices: 0 AndroidSplashScreenScale: 0 androidSplashScreen: {fileID: 0} diff --git a/AR/QCAR/lh b/AR/QCAR/lh new file mode 100644 index 0000000..6a3d423 --- /dev/null +++ b/AR/QCAR/lh @@ -0,0 +1 @@ +SYa2q["b %SxYe. \ No newline at end of file diff --git a/AR/QCAR/somedata16 b/AR/QCAR/somedata16 new file mode 100644 index 0000000..8d915e5 --- /dev/null +++ b/AR/QCAR/somedata16 @@ -0,0 +1 @@ +AAABmQWapYRGu7Loo2wvgwZUGzXNOVLSaix1jbBp7+6hM1WFhjBkddUoLqWxkauNc7gcguqgEle3Gl3JhXdUv8TOSygVCeRnuokmoncR2/5V78p0F0Cfn5gBebVC39W8GQ6XkVyp75Y8d30EG+W8VKPfuse2cfavkxXpI2Nl3LSy0VRONL0XNPimQXCFL0ahAeUkOc37yrfYL9FrG7wg4Rw+k4YLs++CGJhpcKysknksOgQGrDLh9Hj9lfoKw+YWYwvTA55r6X388fA3hXuRGNehejMd4orrTqM65do7Uf0KR4eC/KXr5cmkSwN4FwRxWaGm16G0tXit+hD29lyZbT/XJ64= \ No newline at end of file